[hdf5] 02/08: Imported Upstream version 1.8.16+docs

Gilles Filippini pini at debian.org
Tue Nov 17 07:00:28 UTC 2015


This is an automated email from the git hooks/post-receive script.

pini pushed a commit to branch master
in repository hdf5.

commit 22ba6f791250d7cae1a097609942281d5c3c77a3
Author: Gilles Filippini <pini at debian.org>
Date:   Mon Nov 16 19:30:14 2015 +0100

    Imported Upstream version 1.8.16+docs
---
 CMakeFilters.cmake                                 |   34 +-
 CMakeInstallation.cmake                            |  133 +-
 CMakeLists.txt                                     |  490 +-
 CTestConfig.cmake                                  |    4 +-
 MANIFEST                                           |  171 +-
 README.txt                                         |   24 +-
 bin/h5vers                                         |   46 +-
 bin/snapshot                                       |    4 +-
 bin/trace                                          |    2 +-
 c++/CMakeLists.txt                                 |    9 -
 c++/examples/CMakeLists.txt                        |    8 +-
 c++/examples/Makefile.am                           |    4 +-
 c++/examples/Makefile.in                           |    4 +-
 c++/examples/run-c++-ex.sh.in                      |    2 +-
 c++/src/CMakeLists.txt                             |   40 +-
 c++/src/H5AbstractDs.cpp                           |   13 +-
 c++/src/H5ArrayType.cpp                            |    1 +
 c++/src/H5AtomType.cpp                             |    1 +
 c++/src/H5Attribute.cpp                            |    4 +
 c++/src/H5Attribute.h                              |    2 +
 c++/src/H5CommonFG.cpp                             |    7 +-
 c++/src/H5CompType.cpp                             |    1 +
 c++/src/H5Cpp.h                                    |    1 +
 c++/src/H5CppDoc.h                                 |    8 +-
 c++/src/H5DataSet.cpp                              |   27 +-
 c++/src/H5DataSpace.cpp                            |   54 +-
 c++/src/H5DataSpace.h                              |   23 +-
 c++/src/H5DataType.cpp                             |   26 +-
 c++/src/H5DcreatProp.cpp                           |   64 +-
 c++/src/H5DcreatProp.h                             |   19 +-
 c++/src/H5DxferProp.cpp                            |   65 +-
 c++/src/H5DxferProp.h                              |   16 +-
 c++/src/H5EnumType.cpp                             |    1 +
 c++/src/H5Exception.h                              |    8 +-
 c++/src/H5FaccProp.cpp                             |   57 +-
 c++/src/H5FaccProp.h                               |   17 +-
 c++/src/H5FcreatProp.cpp                           |   55 +-
 c++/src/H5FcreatProp.h                             |   18 +-
 c++/src/H5File.cpp                                 |   90 +-
 c++/src/H5File.h                                   |    3 +-
 c++/src/H5FloatType.cpp                            |    1 +
 c++/src/H5FloatType.h                              |    4 +-
 c++/src/H5Group.cpp                                |    1 +
 c++/src/H5IdComponent.cpp                          |   67 +-
 c++/src/H5IdComponent.h                            |   28 +-
 c++/src/H5IntType.cpp                              |    1 +
 c++/src/H5Library.cpp                              |  125 +-
 c++/src/H5Library.h                                |   29 +-
 c++/src/H5Location.cpp                             |    8 +-
 c++/src/H5Location.h                               |    3 -
 c++/src/H5Object.cpp                               |    3 +-
 c++/src/H5OcreatProp.cpp                           |  220 +
 c++/src/H5OcreatProp.h                             |   76 +
 c++/src/H5PredType.cpp                             | 1159 ++-
 c++/src/H5PredType.h                               |  503 +-
 c++/src/H5PropList.cpp                             |   54 +-
 c++/src/H5PropList.h                               |   20 +-
 c++/src/H5StrType.cpp                              |   17 +-
 c++/src/H5VarLenType.cpp                           |    1 +
 c++/src/Makefile.am                                |   20 +-
 c++/src/Makefile.in                                |   54 +-
 c++/src/cpp_doc_config                             |    8 +-
 html/ed_libs/Footer.htm => c++/src/footer.html     |    9 +-
 c++/test/CMakeLists.txt                            |    4 +-
 c++/test/dsets.cpp                                 |    4 +-
 c++/test/tattr.cpp                                 |  285 +-
 c++/test/tfile.cpp                                 |   12 +-
 c++/test/tfilter.cpp                               |   10 +-
 c++/test/tlinks.cpp                                |   61 -
 config/cmake/CPack.Info.plist.in                   |   26 +
 config/cmake/CTestCustom.cmake                     |    1 +
 config/cmake/ConfigureChecks.cmake                 |   70 -
 config/cmake/ConversionTests.c                     |   29 +-
 config/cmake/H5pubconf.h.in                        |   97 +-
 config/cmake/HDF518_Examples.cmake.in              |  105 +-
 config/cmake/HDF5Macros.cmake                      |   22 +-
 config/cmake/HDFCompilerFlags.cmake                |  274 +
 config/cmake/README.txt.cmake.in                   |   33 +-
 config/cmake/cacheinit.cmake                       |    8 +-
 config/cmake/hdf5-config.cmake.in                  |   65 +-
 config/cmake/libhdf5.settings.cmake.in             |   10 +-
 config/cmake/mccacheinit.cmake                     |    2 +-
 config/cmake/scripts/CTestScript.cmake             |  290 +
 config/cmake/scripts/HDF518config.cmake            |  261 +
 config/cmake/userblockTest.cmake                   |   16 +-
 config/cmake/vfdTest.cmake                         |    4 +-
 config/cmake_ext_mod/CPack.Info.plist.in           |   32 -
 config/cmake_ext_mod/ConfigureChecks.cmake         |  116 +-
 config/cmake_ext_mod/FindSZIP.cmake                |    7 -
 config/cmake_ext_mod/HDFLibMacros.cmake            |  127 +-
 config/cmake_ext_mod/HDFMacros.cmake               |   40 +-
 config/cmake_ext_mod/HDFTests.c                    |   22 +-
 config/cmake_ext_mod/HDFUseFortran.cmake           |   36 +-
 config/cmake_ext_mod/grepTest.cmake                |   12 +-
 config/cmake_ext_mod/prunTest.cmake                |   30 +-
 config/cmake_ext_mod/runTest.cmake                 |   62 +-
 config/craynv                                      |  198 -
 config/dec-flags                                   |  150 -
 config/gnu-flags                                   |  258 +-
 config/hpux11.23                                   |   96 -
 config/ia64-linux-gnu                              |  144 -
 config/ibm-flags                                   |    5 +-
 config/lt_vers.am                                  |   30 +-
 config/nec-superux14.1                             |  179 -
 config/powerpc-ibm-aix5.x                          |   21 -
 config/{solaris2.x => solaris}                     |    0
 config/sv1-cray                                    |  199 -
 config/x86_64-redstorm-linux-gnu                   |  164 -
 configure                                          |  745 +-
 configure.ac                                       |  474 +-
 examples/CMakeLists.txt                            |   22 +-
 examples/CMakeTests.cmake                          |   67 +
 examples/Makefile.am                               |    4 +-
 examples/Makefile.in                               |    4 +-
 examples/README                                    |    2 +-
 examples/h5_extend_write.c                         |    6 +-
 examples/run-c-ex.sh.in                            |    2 +-
 fortran/examples/CMakeLists.txt                    |   64 +-
 fortran/examples/CMakeTests.cmake                  |   45 +-
 fortran/examples/Makefile.am                       |    4 +-
 fortran/examples/Makefile.in                       |    4 +-
 fortran/examples/run-fortran-ex.sh.in              |    2 +-
 fortran/src/CMakeLists.txt                         |  194 +-
 fortran/src/H5Af.c                                 |  100 +-
 fortran/src/H5Df.c                                 |    4 +-
 fortran/src/H5Pf.c                                 |   16 +-
 fortran/src/H5Zf.c                                 |    2 -
 fortran/src/H5_f.c                                 |    4 +-
 fortran/src/H5f90global.f90                        |    2 +
 fortran/src/H5f90proto.h                           |    3 -
 fortran/src/Makefile.am                            |    2 +-
 fortran/src/Makefile.in                            |   26 +-
 fortran/test/CMakeLists.txt                        |  254 +-
 fortran/test/CMakeTests.cmake                      |   26 +
 fortran/test/t.h                                   |    2 +-
 fortran/testpar/CMakeLists.txt                     |    6 +-
 hl/CMakeLists.txt                                  |    8 -
 hl/c++/examples/CMakeLists.txt                     |    4 +-
 hl/c++/examples/Makefile.am                        |    4 +-
 hl/c++/examples/Makefile.in                        |    4 +-
 hl/c++/examples/run-hlc++-ex.sh.in                 |    2 +-
 hl/c++/src/CMakeLists.txt                          |   35 +-
 hl/c++/src/H5PacketTable.cpp                       |    6 +-
 hl/c++/src/H5PacketTable.h                         |    6 +-
 hl/c++/src/Makefile.am                             |    2 +-
 hl/c++/src/Makefile.in                             |   26 +-
 hl/c++/test/CMakeLists.txt                         |    4 +-
 hl/examples/CMakeLists.txt                         |    4 +-
 hl/examples/Makefile.am                            |    4 +-
 hl/examples/Makefile.in                            |    4 +-
 hl/examples/run-hlc-ex.sh.in                       |    2 +-
 hl/fortran/examples/CMakeLists.txt                 |    6 +-
 hl/fortran/examples/Makefile.am                    |    4 +-
 hl/fortran/examples/Makefile.in                    |    4 +-
 hl/fortran/examples/run-hlfortran-ex.sh.in         |    2 +-
 hl/fortran/src/CMakeLists.txt                      |  132 +-
 hl/fortran/src/Makefile.am                         |    2 +-
 hl/fortran/src/Makefile.in                         |   26 +-
 hl/fortran/test/CMakeLists.txt                     |   72 +-
 hl/fortran/test/CMakeTests.cmake                   |   33 +-
 hl/src/CMakeLists.txt                              |   37 +-
 hl/src/H5TB.c                                      |    2 +-
 hl/src/Makefile.am                                 |    2 +-
 hl/src/Makefile.in                                 |   26 +-
 hl/test/CMakeLists.txt                             |   20 +-
 hl/test/test_dset_opt.c                            |    8 +-
 hl/tools/CMakeLists.txt                            |   17 +-
 html/ADGuide.html                                  |    6 +-
 html/ADGuide/Changes.html                          |  349 +-
 html/ADGuide/Changes_1_4-1_6.html                  |    4 +-
 html/ADGuide/Changes_1_8_x.html                    |  332 +-
 html/ADGuide/CompatFormat180.html                  |    4 +-
 html/ADGuide/Compatibility_Report/CR_1.8.16.html   | 6684 +++++++++++++++
 html/ADGuide/ImageSpec.html                        |    4 +-
 html/ADGuide/WhatsNew180.html                      |   12 +-
 html/Advanced.html                                 |   20 +-
 html/Advanced/Chunking/index.html                  |  353 +-
 html/Advanced/DynamicallyLoadedFilters/index.html  |   94 +
 html/Advanced/HDF5_Metadata/index.html             |   16 +-
 html/Glossary.html                                 |    4 +-
 html/H5.format.html                                | 9052 +++++++++++---------
 html/H5.intro.html                                 |   16 +-
 html/H5.user.html                                  |   16 +-
 html/H5.user/Attributes.html                       |    6 +-
 html/H5.user/Caching.html                          |    4 +-
 html/H5.user/Chunking.html                         |    4 +-
 html/H5.user/Datasets.html                         |    4 +-
 html/H5.user/Dataspaces.html                       |    4 +-
 html/H5.user/Datatypes.html                        |    4 +-
 html/H5.user/Debugging.html                        |    4 +-
 html/H5.user/Environment.html                      |    4 +-
 html/H5.user/Errors.html                           |    4 +-
 html/H5.user/Files.html                            |    4 +-
 html/H5.user/Filters.html                          |    4 +-
 html/H5.user/Groups.html                           |    4 +-
 html/H5.user/MountingFiles.html                    |    4 +-
 html/H5.user/Performance.html                      |    4 +-
 html/H5.user/Properties.html                       |    4 +-
 html/H5.user/References.html                       |    4 +-
 html/HL/H5PT_UseCases.html                         |    2 +-
 html/HL/RM_H5DS.html                               |   10 +-
 html/HL/RM_H5IM.html                               |   14 +-
 html/HL/RM_H5LT.html                               |   12 +-
 html/HL/RM_H5PT.html                               |   10 +-
 html/HL/RM_H5PT_c++.html                           |    4 +-
 html/HL/RM_H5TB.html                               |    5 +-
 html/HL/RM_HDF5Optimized.html                      |    5 +-
 html/HL/index.html                                 |    6 +-
 html/Intro/IntroExamples.html                      |    4 +-
 html/RM/APICompatMacros.html                       |   14 +-
 html/RM/CollectiveCalls.html                       |   14 +-
 html/RM/H5/H5is_library_threadsafe.htm             |  105 +
 html/RM/H5A/H5Aread.htm                            |    4 +-
 html/RM/H5A/H5Awrite.htm                           |    4 +-
 html/RM/H5D/H5Dread.htm                            |    4 +-
 html/RM/H5D/H5Dwrite.htm                           |    4 +-
 html/RM/H5F/H5Fget_access_plist.htm                |    4 +-
 html/RM/H5F/H5Fget_create_plist.htm                |    4 +-
 html/RM/H5O/H5Odecr_refcount.htm                   |    4 +-
 html/RM/H5O/H5Oexists_by_name.htm                  |    4 +-
 html/RM/H5O/H5Oincr_refcount.htm                   |    4 +-
 html/RM/H5O/H5Oopen_by_addr.htm                    |    2 +-
 html/RM/H5P/H5Pset_chunk.htm                       |   91 +-
 html/RM/H5P/H5Pset_mdc_config.htm                  |    4 +-
 html/RM/H5PL/H5PLget_loading_state.htm             |  138 +
 html/RM/H5PL/H5PLset_loading_state.htm             |  170 +
 html/RM/PredefDTypes.html                          |   14 +-
 html/RM/RM_H5.html                                 |   29 +-
 html/RM/RM_H5A.html                                |   18 +-
 html/RM/RM_H5D.html                                |   14 +-
 html/RM/RM_H5E.html                                |   15 +-
 html/RM/RM_H5F.html                                |   16 +-
 html/RM/RM_H5Front.html                            |   19 +-
 html/RM/RM_H5G.html                                |   14 +-
 html/RM/RM_H5I.html                                |   14 +-
 html/RM/RM_H5L.html                                |   14 +-
 html/RM/RM_H5O.html                                |   14 +-
 html/RM/RM_H5P.html                                |   16 +-
 html/RM/{RM_H5R.html => RM_H5PL.html}              |  108 +-
 html/RM/RM_H5R.html                                |   14 +-
 html/RM/RM_H5S.html                                |   14 +-
 html/RM/RM_H5T.html                                |   18 +-
 html/RM/RM_H5Z.html                                |   16 +-
 html/RM/Tools.html                                 |   25 +-
 html/RM/Tools/h5check.htm                          |    4 +-
 html/RM/Tools/h5fix_swapped_ids.htm                |    4 +-
 html/RM/Tools/h5import.htm                         |    2 +-
 html/Supplements/dtype_conversion/Overflow.html    |    6 +-
 html/TechNotes.html                                |    4 +-
 html/UG/FmSource/AdditionalResources.fm            |  Bin 0 -> 123904 bytes
 html/UG/FmSource/Attributes.fm                     |  Bin 0 -> 167936 bytes
 html/UG/FmSource/Copyrights.fm                     |  Bin 0 -> 76800 bytes
 html/UG/FmSource/DataModelAndFileStructure.fm      |  Bin 0 -> 169984 bytes
 html/UG/FmSource/Datasets.fm                       |  Bin 0 -> 376832 bytes
 html/UG/FmSource/Dataspaces.fm                     |  Bin 0 -> 245760 bytes
 html/UG/FmSource/Datatypes.fm                      |  Bin 0 -> 436224 bytes
 html/UG/FmSource/ErrorHandling.fm                  |  Bin 0 -> 169984 bytes
 html/UG/FmSource/Groups.fm                         |  Bin 0 -> 211968 bytes
 html/UG/FmSource/HDF5_UG_LOCE.fm                   |  Bin 0 -> 225280 bytes
 html/UG/FmSource/HDF5_UG_LOF.fm                    |  Bin 0 -> 220160 bytes
 html/UG/FmSource/HDF5_UG_LOFL.fm                   |  Bin 0 -> 211968 bytes
 html/UG/FmSource/HDF5_UG_LOT.fm                    |  Bin 0 -> 212992 bytes
 html/UG/FmSource/HDF5_UG_TOC.fm                    |  Bin 0 -> 140288 bytes
 html/UG/FmSource/HDF5_UG_Title.fm                  |  Bin 0 -> 207872 bytes
 html/UG/FmSource/HDF5_Users_Guide.book             |  Bin 0 -> 36864 bytes
 html/UG/FmSource/HDF5_Users_GuideIX.fm             |  Bin 0 -> 367616 bytes
 html/UG/FmSource/HDF_favicon_16x16.png             |  Bin 0 -> 3209 bytes
 html/UG/FmSource/LibraryAndProgrammingModel.fm     |  Bin 0 -> 195584 bytes
 html/UG/FmSource/PropertyLists.fm                  |  Bin 0 -> 191488 bytes
 html/UG/FmSource/TheFile.fm                        |  Bin 0 -> 253952 bytes
 html/UG/FmSource/ThgUgTemplate.fm                  |  Bin 0 -> 151552 bytes
 html/UG/FmSource/UpdateStatus.fm                   |  Bin 0 -> 121856 bytes
 html/UG/FmSource/back.png                          |  Bin 0 -> 790 bytes
 html/UG/FmSource/forward.png                       |  Bin 0 -> 793 bytes
 html/UG/FmSource/html_and_xml_tags.fm              |  Bin 0 -> 40960 bytes
 html/UG/Images/Dmodel_fig11_b.jpg                  |  Bin 0 -> 19118 bytes
 html/UG/Images/Dmodel_fig4_b.JPG                   |  Bin 0 -> 23653 bytes
 html/UG/Images/Dmodel_fig8.JPG                     |  Bin 0 -> 15646 bytes
 html/UG/Images/Dsets_NbitFloating1.JPG             |  Bin 0 -> 12680 bytes
 html/UG/Images/Dsets_NbitFloating2.JPG             |  Bin 0 -> 14527 bytes
 html/UG/Images/Dsets_NbitInteger1.JPG              |  Bin 0 -> 12481 bytes
 html/UG/Images/Dsets_NbitInteger2.JPG              |  Bin 0 -> 14772 bytes
 html/UG/Images/Dspace_fig1new.JPG                  |  Bin 0 -> 14595 bytes
 html/UG/Images/Dspace_fig2a.JPG                    |  Bin 0 -> 14033 bytes
 html/UG/Images/Dspace_fig2b.JPG                    |  Bin 0 -> 13757 bytes
 html/UG/Images/Dspace_fig2c.JPG                    |  Bin 0 -> 13992 bytes
 html/UG/Images/Dspace_fig2d.JPG                    |  Bin 0 -> 15144 bytes
 html/UG/Images/Dtypes_fig10.JPG                    |  Bin 0 -> 40694 bytes
 html/UG/Images/Dtypes_fig11.JPG                    |  Bin 0 -> 71840 bytes
 html/UG/Images/Dtypes_fig16a.JPG                   |  Bin 0 -> 17255 bytes
 html/UG/Images/Dtypes_fig16b.JPG                   |  Bin 0 -> 13096 bytes
 html/UG/Images/Dtypes_fig16c.JPG                   |  Bin 0 -> 12907 bytes
 html/UG/Images/Dtypes_fig16d.JPG                   |  Bin 0 -> 15799 bytes
 html/UG/Images/Dtypes_fig17a.JPG                   |  Bin 0 -> 18893 bytes
 html/UG/Images/Dtypes_fig17b.JPG                   |  Bin 0 -> 32479 bytes
 html/UG/Images/Dtypes_fig20a.JPG                   |  Bin 0 -> 37492 bytes
 html/UG/Images/Dtypes_fig20b.JPG                   |  Bin 0 -> 24569 bytes
 html/UG/Images/Dtypes_fig20c.JPG                   |  Bin 0 -> 33698 bytes
 html/UG/Images/Dtypes_fig20d.JPG                   |  Bin 0 -> 24543 bytes
 html/UG/Images/Dtypes_fig5.JPG                     |  Bin 0 -> 21714 bytes
 html/UG/Images/Dtypes_fig57a.JPG                   |  Bin 0 -> 23832 bytes
 html/UG/Images/Dtypes_fig57b.JPG                   |  Bin 0 -> 24393 bytes
 html/UG/Images/Dtypes_fig58.JPG                    |  Bin 0 -> 17196 bytes
 html/UG/Images/Dtypes_fig6.JPG                     |  Bin 0 -> 47774 bytes
 html/UG/Images/Dtypes_fig7.JPG                     |  Bin 0 -> 49643 bytes
 html/UG/Images/Dtypes_fig8.JPG                     |  Bin 0 -> 25196 bytes
 html/UG/Images/Dtypes_fig9.JPG                     |  Bin 0 -> 26011 bytes
 html/UG/Images/Groups_fig6.JPG                     |  Bin 0 -> 16657 bytes
 html/UG/Images/Pmodel_fig2.JPG                     |  Bin 0 -> 11039 bytes
 html/UG/Images/Pmodel_fig3.JPG                     |  Bin 0 -> 36902 bytes
 html/UG/Images/dtypes_fig51new.JPG                 |  Bin 0 -> 32119 bytes
 html/UG/Images/dtypes_fig57_arrowWithText.JPG      |  Bin 0 -> 11881 bytes
 html/UG/Images/logo_bluegreen_txt.jpg              |  Bin 0 -> 413520 bytes
 html/UG/{ => OldHtmlSource}/03_DataModel.html      |    0
 html/UG/{ => OldHtmlSource}/04_ProgModel.html      |    0
 html/UG/{ => OldHtmlSource}/08_TheFile.html        |    0
 html/UG/{ => OldHtmlSource}/09_Groups.html         |    0
 html/UG/{ => OldHtmlSource}/10_Datasets.html       |    0
 html/UG/{ => OldHtmlSource}/11_Datatypes.html      |    0
 html/UG/{ => OldHtmlSource}/12_Dataspaces.html     |    0
 html/UG/{ => OldHtmlSource}/13_Attributes.html     |    0
 html/UG/{ => OldHtmlSource}/13_ErrorHandling.html  |    0
 html/UG/{ => OldHtmlSource}/14_PropertyLists.html  |    0
 html/UG/{ => OldHtmlSource}/17_Additional.html     |    0
 .../{ => OldHtmlSource}/99_SelectedPassages.html   |    0
 html/UG/{ => OldHtmlSource}/H5_newUG.book          |    0
 html/UG/{ => OldHtmlSource}/H5_newUG_Front.book    |    0
 html/UG/{ => OldHtmlSource}/H5_newUG_TOC.html      |    0
 html/UG/{ => OldHtmlSource}/H5_newUG_Title.html    |    0
 .../UG/{ => OldHtmlSource}/ObjectsIdentifiers.html |    0
 .../OldHtmlSource}/UG_nav11Datatypes.html          |    0
 html/UG/{ => OldHtmlSource}/Part1SplitterPg.html   |    0
 html/UG/{ => OldHtmlSource}/Part2SplitterPg.html   |    0
 html/UG/{ => OldHtmlSource}/Part3SplitterPg.html   |    0
 html/UG/OldHtmlSource/UG_UpdateStatus.html         |   46 +
 html/UG/{ => OldHtmlSource}/UG_UseWith18.html      |    0
 html/UG/{ => OldHtmlSource}/UG_feedback.html       |    0
 html/UG/{ => OldHtmlSource}/UG_frame.html          |    0
 .../{ => OldHtmlSource}/UG_frame03DataModel.html   |    0
 .../{ => OldHtmlSource}/UG_frame04ProgModel.html   |    0
 html/UG/{ => OldHtmlSource}/UG_frame08TheFile.html |    0
 html/UG/{ => OldHtmlSource}/UG_frame09Groups.html  |    0
 .../UG/{ => OldHtmlSource}/UG_frame10Datasets.html |    0
 .../{ => OldHtmlSource}/UG_frame11Datatypes.html   |    0
 .../{ => OldHtmlSource}/UG_frame12Dataspaces.html  |    0
 .../{ => OldHtmlSource}/UG_frame13Attributes.html  |    0
 .../UG_frame13ErrorHandling.html                   |    0
 .../UG_frame14PropertyLists.html                   |    0
 .../UG_frame17SpecialTopics.html                   |    0
 .../UG_frameObjectsIdentifiers.html                |    0
 html/UG/{ => OldHtmlSource}/UG_front.html          |    4 +-
 html/UG/{ => OldHtmlSource}/UG_nav00.html          |    2 +-
 html/UG/{ => OldHtmlSource}/UG_nav03DataModel.html |    0
 html/UG/{ => OldHtmlSource}/UG_nav04ProgModel.html |    0
 html/UG/{ => OldHtmlSource}/UG_nav08TheFile.html   |    0
 html/UG/{ => OldHtmlSource}/UG_nav09Groups.html    |    0
 html/UG/{ => OldHtmlSource}/UG_nav10Datasets.html  |    0
 html/UG/{ => OldHtmlSource}/UG_nav11Datatypes.html |    0
 .../UG/{ => OldHtmlSource}/UG_nav12Dataspaces.html |    0
 .../UG/{ => OldHtmlSource}/UG_nav13Attributes.html |    0
 .../{ => OldHtmlSource}/UG_nav13ErrorHandling.html |    0
 .../{ => OldHtmlSource}/UG_nav14PropertyLists.html |    0
 .../{ => OldHtmlSource}/UG_nav17SpecialTopics.html |    0
 .../UG_navObjectsIdentifiers.html                  |    2 +-
 html/UG/{ => OldHtmlSource}/index.html             |    0
 html/UG/{ => OldHtmlSource}/process.txt            |    0
 html/UG/UG_UpdateStatus.html                       |   25 -
 html/_topic/loc_id+name_obj.htm                    |    6 +-
 html/ddl.html                                      |    4 +-
 html/doc-info.html                                 |   79 +-
 html/ed_libs/Footer-THGonly.htm                    |    2 +-
 html/ed_libs/Footer-THGonly2.htm                   |    2 +-
 html/ed_libs/Footer-THGonly3.htm                   |    2 +-
 html/ed_libs/Footer.htm                            |    2 +-
 html/ed_libs/Footer2.htm                           |    2 +-
 html/ed_libs/Footer3.htm                           |    2 +-
 html/ed_libs/NavBar_RM.lbi                         |    5 +-
 html/ed_libs/NavBar_RMHL.lbi                       |    3 +-
 html/fortran/FortranFlags.html                     |    6 +-
 html/fortran/index.html                            |    4 +-
 html/index.html                                    |   38 +-
 release_docs/HISTORY-1_8.txt                       |  979 +++
 release_docs/INSTALL                               |   49 +
 release_docs/INSTALL_CMake.txt                     |  552 +-
 release_docs/INSTALL_Cygwin.txt                    |    2 +-
 release_docs/RELEASE.txt                           |  931 +-
 release_docs/USING_CMake_Examples.txt              |   88 +-
 release_docs/USING_HDF5_CMake.txt                  |  436 +-
 release_docs/USING_HDF5_VS.txt                     |   75 +-
 src/CMakeLists.txt                                 |   50 +-
 src/H5.c                                           |   81 +-
 src/H5A.c                                          |   42 +-
 src/H5AC.c                                         |  135 +-
 src/H5ACprivate.h                                  |   10 -
 src/H5Abtree2.c                                    |   18 +-
 src/H5Adense.c                                     |    4 +-
 src/H5Aint.c                                       |   86 +-
 src/H5Apkg.h                                       |    6 +-
 src/H5Aprivate.h                                   |    3 +
 src/H5B.c                                          |  147 +-
 src/H5B2.c                                         |  154 +-
 src/H5B2cache.c                                    |   87 +-
 src/H5B2hdr.c                                      |   54 +-
 src/H5B2int.c                                      |  182 +-
 src/H5B2pkg.h                                      |   32 +-
 src/H5B2stat.c                                     |   25 +-
 src/H5B2test.c                                     |    6 +-
 src/H5Bcache.c                                     |    6 +-
 src/H5C.c                                          |   46 +-
 src/H5D.c                                          |   24 +-
 src/H5Dbtree.c                                     |   26 +-
 src/H5Dchunk.c                                     |  224 +-
 src/H5Dcompact.c                                   |   10 +-
 src/H5Dcontig.c                                    |   44 +-
 src/H5Ddbg.c                                       |    2 +-
 src/H5Ddeprec.c                                    |    2 +-
 src/H5Defl.c                                       |   10 +-
 src/H5Dfill.c                                      |    2 +-
 src/H5Dint.c                                       |   82 +-
 src/H5Dio.c                                        |   14 +-
 src/H5Dmpio.c                                      |   28 +-
 src/H5Dpkg.h                                       |    4 +-
 src/H5Eint.c                                       |   12 +-
 src/H5F.c                                          |   10 +-
 src/H5FD.c                                         |    6 +-
 src/H5FDcore.c                                     |   38 +-
 src/H5FDdirect.c                                   |   31 +-
 src/H5FDfamily.c                                   |   10 +-
 src/H5FDlog.c                                      |   38 +-
 src/H5FDmpio.c                                     |   16 +-
 src/H5FDmulti.c                                    |   47 +-
 src/H5FDprivate.h                                  |    2 +-
 src/H5FDsec2.c                                     |   36 +-
 src/H5FDstdio.c                                    |   21 +-
 src/H5FLprivate.h                                  |    6 +-
 src/H5FS.c                                         |    4 +-
 src/H5FScache.c                                    |   26 +-
 src/H5FSdbg.c                                      |    2 +-
 src/H5FSsection.c                                  |    4 +-
 src/H5Faccum.c                                     |   16 +-
 src/H5Fcwfs.c                                      |    8 +-
 src/H5Fint.c                                       |   33 +-
 src/H5Fmount.c                                     |    2 +-
 src/H5Fpublic.h                                    |   14 +-
 src/H5Fsuper.c                                     |    2 +-
 src/H5Fsuper_cache.c                               |   12 +-
 src/H5G.c                                          |    2 +-
 src/H5Gbtree2.c                                    |   18 +-
 src/H5Gcache.c                                     |    4 +-
 src/H5Gcompact.c                                   |    6 +-
 src/H5Gdense.c                                     |   10 +-
 src/H5Gdeprec.c                                    |    6 +-
 src/H5Gint.c                                       |    2 +-
 src/H5Glink.c                                      |    2 +-
 src/H5Gloc.c                                       |   18 +-
 src/H5Gnode.c                                      |   36 +-
 src/H5Gobj.c                                       |    2 +-
 src/H5Goh.c                                        |    2 +-
 src/H5Gtest.c                                      |   76 +-
 src/H5Gtraverse.c                                  |    4 +-
 src/H5HF.c                                         |    2 +-
 src/H5HFbtree2.c                                   |   18 +-
 src/H5HFcache.c                                    |   18 +-
 src/H5HFdbg.c                                      |    6 +-
 src/H5HFdblock.c                                   |    4 +-
 src/H5HFdtable.c                                   |    4 +-
 src/H5HFhdr.c                                      |    2 +-
 src/H5HFhuge.c                                     |    6 +-
 src/H5HFsection.c                                  |   16 +-
 src/H5HFspace.c                                    |    2 +-
 src/H5HGcache.c                                    |    6 +-
 src/H5HL.c                                         |   10 +-
 src/H5HLcache.c                                    |   14 +-
 src/H5I.c                                          |  224 +-
 src/H5L.c                                          |   34 +-
 src/H5Lexternal.c                                  |   14 +-
 src/H5MFaggr.c                                     |   14 +-
 src/H5MFsection.c                                  |   14 +-
 src/H5O.c                                          |   21 +-
 src/H5Oainfo.c                                     |   22 +-
 src/H5Oalloc.c                                     |    8 +-
 src/H5Oattr.c                                      |   16 +-
 src/H5Oattribute.c                                 |   18 +-
 src/H5Obogus.c                                     |   10 +-
 src/H5Obtreek.c                                    |   10 +-
 src/H5Ocache.c                                     |   14 +-
 src/H5Ocont.c                                      |   10 +-
 src/H5Ocopy.c                                      |   20 +-
 src/H5Odrvinfo.c                                   |   10 +-
 src/H5Odtype.c                                     |   16 +-
 src/H5Oefl.c                                       |   16 +-
 src/H5Ofill.c                                      |   20 +-
 src/H5Oginfo.c                                     |   10 +-
 src/H5Olayout.c                                    |   12 +-
 src/H5Olinfo.c                                     |   18 +-
 src/H5Olink.c                                      |   24 +-
 src/H5Omessage.c                                   |    4 +-
 src/H5Omtime.c                                     |   32 +-
 src/H5Oname.c                                      |   10 +-
 src/H5Opline.c                                     |   14 +-
 src/H5Orefcount.c                                  |   16 +-
 src/H5Osdspace.c                                   |   10 +-
 src/H5Oshared.c                                    |    4 +-
 src/H5Oshared.h                                    |   16 +-
 src/H5Oshmesg.c                                    |   10 +-
 src/H5Ostab.c                                      |   18 +-
 src/H5Pdcpl.c                                      |   10 +-
 src/H5Pdxpl.c                                      |    8 +-
 src/H5Pfapl.c                                      |   14 +-
 src/H5Pgcpl.c                                      |    2 +-
 src/H5Pint.c                                       |    6 +-
 src/H5Plapl.c                                      |   16 +-
 src/H5Pocpl.c                                      |   10 +-
 src/H5Pocpypl.c                                    |    6 +-
 src/H5R.c                                          |    4 +-
 src/H5S.c                                          |    4 +-
 src/H5SL.c                                         |  606 +-
 src/H5SLprivate.h                                  |    6 +
 src/H5SM.c                                         |    2 +-
 src/H5SMbtree2.c                                   |    6 +-
 src/H5SMcache.c                                    |   10 +-
 src/H5SMmessage.c                                  |    2 +-
 src/H5Sall.c                                       |   30 +-
 src/H5Shyper.c                                     |   22 +-
 src/H5Smpio.c                                      |    6 +-
 src/H5Snone.c                                      |   46 +-
 src/H5Spoint.c                                     |    4 +-
 src/H5Sprivate.h                                   |   28 +-
 src/H5Sselect.c                                    |   34 +-
 src/H5T.c                                          |  534 +-
 src/H5Tarray.c                                     |    6 +-
 src/H5Tcommit.c                                    |    2 +-
 src/H5Tconv.c                                      |  711 +-
 src/H5Tdbg.c                                       |    2 +-
 src/H5Tdeprec.c                                    |    2 +-
 src/H5Tfloat.c                                     |    2 +-
 src/H5Tnative.c                                    |    6 +-
 src/H5Toh.c                                        |    2 +-
 src/H5Tpkg.h                                       |   24 +-
 src/H5Tvlen.c                                      |   24 +-
 src/H5VM.c                                         |    2 +-
 src/H5VMprivate.h                                  |   51 +-
 src/H5Z.c                                          |   11 +-
 src/H5Zdeflate.c                                   |    6 +-
 src/H5Zfletcher32.c                                |    2 +-
 src/H5Znbit.c                                      |    4 +-
 src/H5Zscaleoffset.c                               |    4 +-
 src/H5Zshuffle.c                                   |    2 +-
 src/H5Zszip.c                                      |   14 +-
 src/H5api_adpt.h                                   |   41 +-
 src/H5config.h.in                                  |   44 +-
 src/H5detect.c                                     |    8 +-
 src/H5private.h                                    |   93 +-
 src/H5public.h                                     |   10 +-
 src/H5system.c                                     |   62 +-
 src/H5win32defs.h                                  |    8 +-
 src/Makefile.in                                    |   24 +-
 test/CMakeLists.txt                                |  183 +-
 test/CMakeTests.cmake                              |  561 +-
 test/H5srcdir.h                                    |   16 -
 test/app_ref.c                                     |    2 +-
 test/cache.c                                       |   14 +-
 test/cache_common.c                                |   22 +-
 test/dsets.c                                       |   42 +-
 test/dt_arith.c                                    |  334 +-
 test/dtypes.c                                      |   16 +-
 test/error_test.c                                  |    2 +-
 test/fheap.c                                       |   16 +-
 test/fillval.c                                     |    2 +-
 test/filter_fail.c                                 |    4 +-
 test/flush2.c                                      |    4 -
 test/freespace.c                                   |    8 +-
 test/gen_cross.c                                   |    4 +
 test/gen_filters.c                                 |    6 +-
 test/getname.c                                     |   61 +-
 test/h5test.c                                      |  164 +-
 test/h5test.h                                      |    2 +-
 test/lheap.c                                       |    4 -
 test/links.c                                       |  101 +-
 test/links_env.c                                   |    4 -
 test/mf.c                                          |   70 +-
 test/objcopy.c                                     |    4 +-
 test/stab.c                                        |    2 -
 test/tattr.c                                       |    6 +-
 test/tcheck_version.c                              |    4 +-
 test/tconfig.c                                     |    9 -
 test/tfile.c                                       |   14 +-
 test/tgenprop.c                                    |    4 +-
 test/th5o.c                                        |    6 +-
 test/th5s.c                                        |   43 +
 test/tid.c                                         |  201 +-
 test/titerate.c                                    |    6 +-
 test/tmisc.c                                       |    4 +-
 test/trefer.c                                      |    8 +-
 test/tselect.c                                     |   12 +-
 test/tskiplist.c                                   |  207 +-
 test/tsohm.c                                       |    3 -
 test/ttsafe.c                                      |   43 +-
 test/ttsafe.h                                      |   10 +-
 test/ttsafe_cancel.c                               |    6 +-
 test/ttsafe_error.c                                |    7 +-
 test/tunicode.c                                    |    6 +-
 test/unregister.c                                  |    6 +-
 testpar/CMakeLists.txt                             |    9 +-
 testpar/Makefile.am                                |    5 +-
 testpar/Makefile.in                                |   24 +-
 testpar/t_cache.c                                  |   24 +-
 testpar/t_file_image.c                             |    3 +
 testpar/t_init_term.c                              |   76 +
 tools/h5copy/CMakeLists.txt                        |   13 +-
 tools/h5diff/CMakeLists.txt                        |   22 +-
 tools/h5diff/CMakeTests.cmake                      |   92 +-
 tools/h5diff/h5diffgentest.c                       |    4 +-
 tools/h5dump/CMakeLists.txt                        |   13 +-
 tools/h5dump/CMakeTestsPBITS.cmake                 |  146 +-
 tools/h5dump/h5dump_ddl.c                          |   24 +-
 tools/h5dump/h5dump_ddl.h                          |    8 +-
 tools/h5dump/h5dump_defines.h                      |   31 +-
 tools/h5dump/h5dump_xml.c                          |   10 +-
 tools/h5dump/h5dumpgentest.c                       | 1183 ++-
 tools/h5dump/testh5dumppbits.sh.in                 |  128 +-
 tools/h5import/CMakeLists.txt                      |   13 +-
 tools/h5jam/CMakeLists.txt                         |   29 +-
 tools/h5jam/h5jamgentest.c                         |    4 +-
 tools/h5jam/testh5jam.sh.in                        |    4 +-
 tools/h5ls/CMakeLists.txt                          |    9 +-
 tools/h5ls/h5ls.c                                  |  431 +-
 tools/h5repack/CMakeLists.txt                      |   69 +-
 tools/h5repack/CMakeTests.cmake                    |   12 +-
 tools/h5repack/h5repack_copy.c                     |    2 +-
 tools/h5repack/h5repack_main.c                     |    2 +-
 tools/h5repack/h5repack_parse.c                    |  956 +--
 tools/h5stat/CMakeLists.txt                        |   13 +-
 tools/h5stat/h5stat.c                              |    2 +-
 tools/lib/CMakeLists.txt                           |   41 +-
 tools/lib/h5diff_array.c                           |   22 -
 tools/lib/h5tools.c                                |   14 +-
 tools/lib/h5tools.h                                |    8 +-
 tools/lib/h5tools_dump.c                           |    4 -
 tools/lib/h5tools_ref.c                            |    4 +-
 tools/lib/h5tools_str.c                            |   33 +-
 tools/lib/h5tools_utils.c                          |    3 +-
 tools/lib/h5trav.c                                 |    8 +-
 tools/misc/CMakeLists.txt                          |   25 +-
 tools/perform/CMakeLists.txt                       |   36 +-
 tools/perform/chunk.c                              |   16 +-
 tools/perform/overhead.c                           |    9 +-
 tools/perform/perf.c                               |    2 +-
 tools/perform/sio_standalone.h                     |   11 -
 tools/perform/zip_perf.c                           |    9 -
 .../{ => pbits}/tnofilename-with-packed-bits.ddl   |    0
 tools/testfiles/{ => pbits}/tpbitsArray.ddl        |    0
 .../{ => pbits}/tpbitsCharLengthExceeded.ddl       |    0
 .../{ => pbits}/tpbitsCharOffsetExceeded.ddl       |    0
 tools/testfiles/{ => pbits}/tpbitsCompound.ddl     |    0
 tools/testfiles/{ => pbits}/tpbitsIncomplete.ddl   |    0
 .../{ => pbits}/tpbitsIntLengthExceeded.ddl        |    0
 .../{ => pbits}/tpbitsIntOffsetExceeded.ddl        |    0
 .../testfiles/{ => pbits}/tpbitsLengthExceeded.ddl |    0
 .../testfiles/{ => pbits}/tpbitsLengthPositive.ddl |    0
 .../{ => pbits}/tpbitsLongLengthExceeded.ddl       |    0
 .../{ => pbits}/tpbitsLongOffsetExceeded.ddl       |    0
 tools/testfiles/{ => pbits}/tpbitsMax.ddl          |    0
 tools/testfiles/{ => pbits}/tpbitsMaxExceeded.ddl  |    0
 .../testfiles/{ => pbits}/tpbitsOffsetExceeded.ddl |    0
 .../testfiles/{ => pbits}/tpbitsOffsetNegative.ddl |    0
 tools/testfiles/{ => pbits}/tpbitsOverlapped.ddl   |    0
 tools/testfiles/{ => pbits}/tpbitsSigned.ddl       |    0
 tools/testfiles/{ => pbits}/tpbitsSigned2.ddl      |    0
 tools/testfiles/{ => pbits}/tpbitsSigned4.ddl      |    0
 tools/testfiles/{ => pbits}/tpbitsSignedInt.ddl    |    0
 tools/testfiles/{ => pbits}/tpbitsSignedInt4.ddl   |    0
 tools/testfiles/{ => pbits}/tpbitsSignedInt8.ddl   |    0
 .../testfiles/{ => pbits}/tpbitsSignedIntWhole.ddl |    0
 tools/testfiles/{ => pbits}/tpbitsSignedLong.ddl   |    0
 tools/testfiles/{ => pbits}/tpbitsSignedLong16.ddl |    0
 tools/testfiles/{ => pbits}/tpbitsSignedLong8.ddl  |    0
 .../testfiles/{ => pbits}/tpbitsSignedLongLong.ddl |    0
 .../{ => pbits}/tpbitsSignedLongLong16.ddl         |    0
 .../{ => pbits}/tpbitsSignedLongLong32.ddl         |    0
 .../{ => pbits}/tpbitsSignedLongLongWhole.ddl      |    0
 .../{ => pbits}/tpbitsSignedLongLongWhole1.ddl     |    0
 .../{ => pbits}/tpbitsSignedLongLongWhole63.ddl    |    0
 .../{ => pbits}/tpbitsSignedLongWhole.ddl          |    0
 tools/testfiles/{ => pbits}/tpbitsSignedWhole.ddl  |    0
 tools/testfiles/{ => pbits}/tpbitsUnsigned.ddl     |    0
 tools/testfiles/{ => pbits}/tpbitsUnsigned2.ddl    |    0
 tools/testfiles/{ => pbits}/tpbitsUnsigned4.ddl    |    0
 tools/testfiles/{ => pbits}/tpbitsUnsignedInt.ddl  |    0
 tools/testfiles/{ => pbits}/tpbitsUnsignedInt4.ddl |    0
 tools/testfiles/{ => pbits}/tpbitsUnsignedInt8.ddl |    0
 .../{ => pbits}/tpbitsUnsignedIntWhole.ddl         |    0
 tools/testfiles/{ => pbits}/tpbitsUnsignedLong.ddl |    0
 .../testfiles/{ => pbits}/tpbitsUnsignedLong16.ddl |    0
 .../testfiles/{ => pbits}/tpbitsUnsignedLong8.ddl  |    0
 .../{ => pbits}/tpbitsUnsignedLongLong.ddl         |    0
 .../{ => pbits}/tpbitsUnsignedLongLong16.ddl       |    0
 .../{ => pbits}/tpbitsUnsignedLongLong32.ddl       |    0
 .../{ => pbits}/tpbitsUnsignedLongLongWhole.ddl    |    0
 .../{ => pbits}/tpbitsUnsignedLongLongWhole1.ddl   |    0
 .../{ => pbits}/tpbitsUnsignedLongLongWhole63.ddl  |    0
 .../{ => pbits}/tpbitsUnsignedLongWhole.ddl        |    0
 .../testfiles/{ => pbits}/tpbitsUnsignedWhole.ddl  |    0
 tools/testfiles/tldouble.h5                        |  Bin 2096 -> 2192 bytes
 704 files changed, 28743 insertions(+), 14362 deletions(-)

diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake
index 14e3d33..c2b81dc 100644
--- a/CMakeFilters.cmake
+++ b/CMakeFilters.cmake
@@ -1,16 +1,4 @@
 
-#-----------------------------------------------------------------------------
-# Options for HDF5 Filters
-#-----------------------------------------------------------------------------
-MACRO (HDF5_SETUP_FILTERS FILTER)
-  option (HDF5_USE_FILTER_${FILTER} "Use the ${FILTER} Filter" ON)
-  if (HDF5_USE_FILTER_${FILTER})
-    set (H5_HAVE_FILTER_${FILTER} 1)
-    set (FILTERS "${FILTERS} ${FILTER}")
-  endif (HDF5_USE_FILTER_${FILTER})
-  # message (STATUS "Filter ${FILTER} is ${HDF5_USE_FILTER_${FILTER}}")
-ENDMACRO (HDF5_SETUP_FILTERS)
-
 include (ExternalProject)
 #option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO SVN TGZ)" "NO")
 set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)")
@@ -40,11 +28,12 @@ option (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" OFF)
 if (HDF5_ENABLE_Z_LIB_SUPPORT)
   if (NOT H5_ZLIB_HEADER)
     if (NOT ZLIB_USE_EXTERNAL)
-      find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT})
+      find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
       if (NOT ZLIB_FOUND)
         find_package (ZLIB) # Legacy find
         if (ZLIB_FOUND)
           set (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES})
+          set (LINK_SHARED_LIBS ${LINK_SHARED_LIBS} ${ZLIB_LIBRARIES})
         endif (ZLIB_FOUND)
       endif (NOT ZLIB_FOUND)
     endif (NOT ZLIB_USE_EXTERNAL)
@@ -57,7 +46,7 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT)
       set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR})
     else (ZLIB_FOUND)
       if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
-        EXTERNAL_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
+        EXTERNAL_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT})
         set (H5_HAVE_FILTER_DEFLATE 1)
         set (H5_HAVE_ZLIB_H 1)
         set (H5_HAVE_LIBZ 1)
@@ -75,7 +64,10 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT)
   if (H5_HAVE_FILTER_DEFLATE)
     set (EXTERNAL_FILTERS "${EXTERNAL_FILTERS} DEFLATE")
   endif (H5_HAVE_FILTER_DEFLATE)
-  set (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES})
+  if (BUILD_SHARED_LIBS) 
+    set (LINK_SHARED_LIBS ${LINK_SHARED_LIBS} ${ZLIB_SHARED_LIBRARY})
+  endif (BUILD_SHARED_LIBS) 
+  set (LINK_LIBS ${LINK_LIBS} ${ZLIB_STATIC_LIBRARY})
   INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIRS})
   message (STATUS "Filter ZLIB is ON")
 endif (HDF5_ENABLE_Z_LIB_SUPPORT)
@@ -87,11 +79,12 @@ option (HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF)
 if (HDF5_ENABLE_SZIP_SUPPORT)
   option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF)
   if (NOT SZIP_USE_EXTERNAL)
-    find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT})
+    find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
     if (NOT SZIP_FOUND)
       find_package (SZIP) # Legacy find
       if (SZIP_FOUND)
         set (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES})
+        set (LINK_SHARED_LIBS ${LINK_SHARED_LIBS} ${SZIP_LIBRARIES})
       endif (SZIP_FOUND)
     endif (NOT SZIP_FOUND)
   endif (NOT SZIP_USE_EXTERNAL)
@@ -100,10 +93,10 @@ if (HDF5_ENABLE_SZIP_SUPPORT)
     set (H5_HAVE_SZLIB_H 1)
     set (H5_HAVE_LIBSZ 1)
     set (SZIP_INCLUDE_DIR_GEN ${SZIP_INCLUDE_DIR})
-    set (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR})
+    set (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIRS} ${SZIP_INCLUDE_DIR})
   else (SZIP_FOUND)
     if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
-      EXTERNAL_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE} ${HDF5_ENABLE_SZIP_ENCODING})
+      EXTERNAL_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${HDF5_ENABLE_SZIP_ENCODING})
       set (H5_HAVE_FILTER_SZIP 1)
       set (H5_HAVE_SZLIB_H 1)
       set (H5_HAVE_LIBSZ 1)
@@ -112,7 +105,10 @@ if (HDF5_ENABLE_SZIP_SUPPORT)
       message (FATAL_ERROR "SZIP is Required for SZIP support in HDF5")
     endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
   endif (SZIP_FOUND)
-  set (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES})
+  if (BUILD_SHARED_LIBS) 
+    set (LINK_SHARED_LIBS ${LINK_SHARED_LIBS} ${SZIP_SHARED_LIBRARY})
+  endif (BUILD_SHARED_LIBS) 
+  set (LINK_LIBS ${LINK_LIBS} ${SZIP_STATIC_LIBRARY})
   INCLUDE_DIRECTORIES (${SZIP_INCLUDE_DIRS})
   message (STATUS "Filter SZIP is ON")
   if (H5_HAVE_FILTER_SZIP)
diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake
index ad570ae..4798c7d 100644
--- a/CMakeInstallation.cmake
+++ b/CMakeInstallation.cmake
@@ -79,7 +79,7 @@ configure_package_config_file (
 #-----------------------------------------------------------------------------
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
   configure_file (
-      ${HDF_RESOURCES_DIR}/FindHDF5.cmake.in 
+      ${HDF_RESOURCES_DIR}/FindHDF5.cmake.in
       ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindHDF5${HDF_PACKAGE_EXT}.cmake @ONLY
   )
   install (
@@ -134,7 +134,7 @@ else (H5_WORDS_BIGENDIAN)
   set (BYTESEX little-endian)
 endif (H5_WORDS_BIGENDIAN)
 configure_file (
-    ${HDF_RESOURCES_DIR}/libhdf5.settings.cmake.in 
+    ${HDF_RESOURCES_DIR}/libhdf5.settings.cmake.in
     ${HDF5_BINARY_DIR}/libhdf5.settings @ONLY
 )
 install (
@@ -149,7 +149,7 @@ install (
 option (HDF5_PACK_EXAMPLES  "Package the HDF5 Library Examples Compressed File" OFF)
 if (HDF5_PACK_EXAMPLES)
   configure_file (
-      ${HDF_RESOURCES_DIR}/HDF518_Examples.cmake.in 
+      ${HDF_RESOURCES_DIR}/HDF518_Examples.cmake.in
       ${HDF5_BINARY_DIR}/HDF518_Examples.cmake @ONLY
   )
   install (
@@ -162,9 +162,9 @@ if (HDF5_PACK_EXAMPLES)
         COMMAND ${CMAKE_COMMAND} -E tar xzf ${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}
     )
     install (
-      DIRECTORY ${HDF5_BINARY_DIR}/HDF5Examples-0.1.1-Source
+      DIRECTORY ${HDF5_BINARY_DIR}/HDF5Examples
       DESTINATION ${HDF5_INSTALL_DATA_DIR}
-      USE_SOURCE_PERMISSIONS 
+      USE_SOURCE_PERMISSIONS
       COMPONENT hdfdocuments
     )
     install (
@@ -280,13 +280,13 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
   set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}")
   set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.bmp")
 
-  set (CPACK_GENERATOR "TGZ") 
+  set (CPACK_GENERATOR "TGZ")
   if (WIN32)
-    set (CPACK_GENERATOR "ZIP") 
+    set (CPACK_GENERATOR "ZIP")
 
-    if (NSIS_EXECUTABLE)    
-      list (APPEND CPACK_GENERATOR "NSIS") 
-    endif (NSIS_EXECUTABLE)    
+    if (NSIS_EXECUTABLE)
+      list (APPEND CPACK_GENERATOR "NSIS")
+    endif (NSIS_EXECUTABLE)
     # Installers for 32- vs. 64-bit CMake:
     #  - Root install directory (displayed to end user at installer-run time)
     #  - "NSIS package/display name" (text used in the installer GUI)
@@ -309,10 +309,10 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
     set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_NAME}\\\\${CPACK_PACKAGE_VERSION}")
     set (CPACK_NSIS_CONTACT "${HDF5_PACKAGE_BUGREPORT}")
     set (CPACK_NSIS_MODIFY_PATH ON)
-    
-    if (WIX_EXECUTABLE)    
-      list (APPEND CPACK_GENERATOR "WIX") 
-    endif (WIX_EXECUTABLE)    
+
+    if (WIX_EXECUTABLE)
+      list (APPEND CPACK_GENERATOR "WIX")
+    endif (WIX_EXECUTABLE)
 #WiX variables
     set (CPACK_WIX_UNINSTALL "1")
 # .. variable:: CPACK_WIX_LICENSE_RTF
@@ -357,30 +357,24 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
       set(CPACK_WIX_PATCH_FILE "${HDF_RESOURCES_DIR}/patch.xml")
     endif (BUILD_SHARED_LIBS)
   elseif (APPLE)
-    list (APPEND CPACK_GENERATOR "DragNDrop") 
+    list (APPEND CPACK_GENERATOR "DragNDrop")
     set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
     set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
     set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns")
 
-    option (HDF5_PACK_MACOSX_BUNDLE  "Package the HDF5 Library in a Bundle" OFF)
-    if (HDF5_PACK_MACOSX_BUNDLE)
-      list (APPEND CPACK_GENERATOR "Bundle")
+    option (HDF5_PACK_MACOSX_FRAMEWORK  "Package the HDF5 Library in a Frameworks" OFF)
+    if (HDF5_PACK_MACOSX_FRAMEWORK AND HDF5_BUILD_FRAMEWORKS)
       set (CPACK_BUNDLE_NAME "${HDF5_PACKAGE_STRING}")
       set (CPACK_BUNDLE_LOCATION "/")    # make sure CMAKE_INSTALL_PREFIX ends in /
       set (CMAKE_INSTALL_PREFIX "/${CPACK_BUNDLE_NAME}.framework/Versions/${CPACK_PACKAGE_VERSION}/${CPACK_PACKAGE_NAME}/")
       set (CPACK_BUNDLE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns")
       set (CPACK_BUNDLE_PLIST "${HDF5_BINARY_DIR}/CMakeFiles/Info.plist")
-      set (CPACK_APPLE_GUI_INFO_STRING "HDF5 (Hierarchical Data Format 5) Software Library and Utilities")
-      set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2015 by The HDF Group. All rights reserved.")
       set (CPACK_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}")
-      set (CPACK_APPLE_GUI_BUNDLE_NAME "${HDF5_PACKAGE_STRING}")
-      set (CPACK_APPLE_GUI_VERSION_STRING "${CPACK_PACKAGE_VERSION_STRING}")
-      set (CPACK_APPLE_GUI_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}")
       #-----------------------------------------------------------------------------
       # Configure the Info.plist file for the install bundle
       #-----------------------------------------------------------------------------
       configure_file (
-          ${HDF_RESOURCES_EXT_DIR}/CPack.Info.plist.in
+          ${HDF_RESOURCES_DIR}/CPack.Info.plist.in
           ${HDF5_BINARY_DIR}/CMakeFiles/Info.plist @ONLY
       )
       configure_file (
@@ -393,19 +387,18 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
       )
       install (
           FILES ${HDF5_BINARY_DIR}/CMakeFiles/PkgInfo
-                ${HDF5_BINARY_DIR}/CMakeFiles/version.plist
           DESTINATION ..
       )
-    endif (HDF5_PACK_MACOSX_BUNDLE)
+    endif (HDF5_PACK_MACOSX_FRAMEWORK AND HDF5_BUILD_FRAMEWORKS)
   else (WIN32)
-    list (APPEND CPACK_GENERATOR "STGZ") 
+    list (APPEND CPACK_GENERATOR "STGZ")
     set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
     set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
 
     set (CPACK_DEBIAN_PACKAGE_SECTION "Libraries")
     set (CPACK_DEBIAN_PACKAGE_MAINTAINER "${HDF5_PACKAGE_BUGREPORT}")
 
-#    list (APPEND CPACK_GENERATOR "RPM") 
+#    list (APPEND CPACK_GENERATOR "RPM")
     set (CPACK_RPM_PACKAGE_RELEASE "1")
     set (CPACK_RPM_COMPONENT_INSTALL ON)
     set (CPACK_RPM_PACKAGE_RELOCATABLE ON)
@@ -413,7 +406,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
     set (CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
     set (CPACK_RPM_PACKAGE_URL "${HDF5_PACKAGE_URL}")
     set (CPACK_RPM_PACKAGE_SUMMARY "HDF5 is a unique technology suite that makes possible the management of extremely large and complex data collections.")
-    set (CPACK_RPM_PACKAGE_DESCRIPTION 
+    set (CPACK_RPM_PACKAGE_DESCRIPTION
         "The HDF5 technology suite includes:
 
     * A versatile data model that can represent very complex data objects and a wide variety of metadata.
@@ -429,14 +422,14 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
 The HDF5 data model, file format, API, library, and tools are open and distributed without charge.
 "
     )
-    
+
     #-----------------------------------------------------------------------------
     # Configure the spec file for the install RPM
     #-----------------------------------------------------------------------------
 #    configure_file ("${HDF5_RESOURCES_DIR}/hdf5.spec.in" "${CMAKE_CURRENT_BINARY_DIR}/${HDF5_PACKAGE_NAME}.spec" @ONLY IMMEDIATE)
 #    set (CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_BINARY_DIR}/${HDF5_PACKAGE_NAME}.spec")
   endif (WIN32)
-  
+
   # By default, do not warn when built on machines using only VS Express:
   if (NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
     set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
@@ -444,7 +437,7 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
   include (InstallRequiredSystemLibraries)
 
   set (CPACK_INSTALL_CMAKE_PROJECTS "${HDF5_BINARY_DIR};HDF5;ALL;/")
-  
+
   if (HDF5_PACKAGE_EXTLIBS)
     if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
       if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
@@ -467,7 +460,7 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
       endif (SZIP_FOUND AND SZIP_USE_EXTERNAL)
     endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
   endif (HDF5_PACKAGE_EXTLIBS)
-  
+
   include (CPack)
 
   cpack_add_install_type(Full DISPLAY_NAME "Everything")
@@ -493,121 +486,121 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
   #---------------------------------------------------------------------------
   # Now list the cpack commands
   #---------------------------------------------------------------------------
-  CPACK_ADD_COMPONENT (libraries 
+  cpack_add_component (libraries
       DISPLAY_NAME "HDF5 Libraries"
       GROUP Runtime
       INSTALL_TYPES Full Developer User
   )
-  CPACK_ADD_COMPONENT (headers 
-      DISPLAY_NAME "HDF5 Headers" 
+  cpack_add_component (headers
+      DISPLAY_NAME "HDF5 Headers"
       DEPENDS libraries
       GROUP Development
       INSTALL_TYPES Full Developer
   )
-  CPACK_ADD_COMPONENT (hdfdocuments 
+  cpack_add_component (hdfdocuments
       DISPLAY_NAME "HDF5 Documents"
       GROUP Documents
       INSTALL_TYPES Full Developer
   )
-  CPACK_ADD_COMPONENT (configinstall 
-      DISPLAY_NAME "HDF5 CMake files" 
+  cpack_add_component (configinstall
+      DISPLAY_NAME "HDF5 CMake files"
       DEPENDS libraries
       GROUP Development
       INSTALL_TYPES Full Developer User
   )
-  
+
   if (HDF5_BUILD_FORTRAN)
-    CPACK_ADD_COMPONENT (fortlibraries 
-        DISPLAY_NAME "HDF5 Fortran Libraries" 
+    cpack_add_component (fortlibraries
+        DISPLAY_NAME "HDF5 Fortran Libraries"
         DEPENDS libraries
         GROUP Runtime
         INSTALL_TYPES Full Developer User
     )
-    CPACK_ADD_COMPONENT (fortheaders 
-        DISPLAY_NAME "HDF5 Fortran Headers" 
+    cpack_add_component (fortheaders
+        DISPLAY_NAME "HDF5 Fortran Headers"
         DEPENDS fortlibraries
         GROUP Development
         INSTALL_TYPES Full Developer
     )
   endif (HDF5_BUILD_FORTRAN)
-  
+
   if (HDF5_BUILD_CPP_LIB)
-    CPACK_ADD_COMPONENT (cpplibraries 
-        DISPLAY_NAME "HDF5 C++ Libraries" 
+    cpack_add_component (cpplibraries
+        DISPLAY_NAME "HDF5 C++ Libraries"
         DEPENDS libraries
         GROUP Runtime
         INSTALL_TYPES Full Developer User
     )
-    CPACK_ADD_COMPONENT (cppheaders 
-        DISPLAY_NAME "HDF5 C++ Headers" 
+    cpack_add_component (cppheaders
+        DISPLAY_NAME "HDF5 C++ Headers"
         DEPENDS cpplibraries
         GROUP Development
         INSTALL_TYPES Full Developer
     )
   endif (HDF5_BUILD_CPP_LIB)
-  
+
   if (HDF5_BUILD_TOOLS)
-    CPACK_ADD_COMPONENT (toolsapplications 
-        DISPLAY_NAME "HDF5 Tools Applications" 
+    cpack_add_component (toolsapplications
+        DISPLAY_NAME "HDF5 Tools Applications"
         DEPENDS toolslibraries
         GROUP Applications
         INSTALL_TYPES Full Developer User
     )
-    CPACK_ADD_COMPONENT (toolslibraries 
-        DISPLAY_NAME "HDF5 Tools Libraries" 
+    cpack_add_component (toolslibraries
+        DISPLAY_NAME "HDF5 Tools Libraries"
         DEPENDS libraries
         GROUP Runtime
         INSTALL_TYPES Full Developer User
     )
-    CPACK_ADD_COMPONENT (toolsheaders 
-        DISPLAY_NAME "HDF5 Tools Headers" 
+    cpack_add_component (toolsheaders
+        DISPLAY_NAME "HDF5 Tools Headers"
         DEPENDS toolslibraries
         GROUP Development
         INSTALL_TYPES Full Developer
     )
   endif (HDF5_BUILD_TOOLS)
-  
+
   if (HDF5_BUILD_HL_LIB)
-    CPACK_ADD_COMPONENT (hllibraries 
-        DISPLAY_NAME "HDF5 HL Libraries" 
+    cpack_add_component (hllibraries
+        DISPLAY_NAME "HDF5 HL Libraries"
         DEPENDS libraries
         GROUP Runtime
         INSTALL_TYPES Full Developer User
     )
-    CPACK_ADD_COMPONENT (hlheaders 
-        DISPLAY_NAME "HDF5 HL Headers" 
+    cpack_add_component (hlheaders
+        DISPLAY_NAME "HDF5 HL Headers"
         DEPENDS hllibraries
         GROUP Development
         INSTALL_TYPES Full Developer
     )
-    CPACK_ADD_COMPONENT (hltoolsapplications 
-        DISPLAY_NAME "HDF5 HL Tools Applications" 
+    cpack_add_component (hltoolsapplications
+        DISPLAY_NAME "HDF5 HL Tools Applications"
         DEPENDS hllibraries
         GROUP Applications
         INSTALL_TYPES Full Developer User
     )
     if (HDF5_BUILD_CPP_LIB)
-      CPACK_ADD_COMPONENT (hlcpplibraries 
-          DISPLAY_NAME "HDF5 HL C++ Libraries" 
+      cpack_add_component (hlcpplibraries
+          DISPLAY_NAME "HDF5 HL C++ Libraries"
           DEPENDS hllibraries
           GROUP Runtime
           INSTALL_TYPES Full Developer User
       )
-      CPACK_ADD_COMPONENT (hlcppheaders 
-          DISPLAY_NAME "HDF5 HL C++ Headers" 
+      cpack_add_component (hlcppheaders
+          DISPLAY_NAME "HDF5 HL C++ Headers"
           DEPENDS hlcpplibraries
           GROUP Development
           INSTALL_TYPES Full Developer
       )
     endif (HDF5_BUILD_CPP_LIB)
     if (HDF5_BUILD_FORTRAN)
-      CPACK_ADD_COMPONENT (hlfortlibraries 
-          DISPLAY_NAME "HDF5 HL Fortran Libraries" 
+      cpack_add_component (hlfortlibraries
+          DISPLAY_NAME "HDF5 HL Fortran Libraries"
           DEPENDS fortlibraries
           GROUP Runtime
           INSTALL_TYPES Full Developer User
       )
     endif (HDF5_BUILD_FORTRAN)
   endif (HDF5_BUILD_HL_LIB)
-  
+
 endif (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eb04332..fa3c971 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,6 +10,24 @@ PROJECT (HDF5 C CXX)
 # set CMAKE_INSTALL_PREFIX to the required install path.
 # Make install can be used to install all components for system-wide use.
 #
+if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
+    MESSAGE(FATAL_ERROR "\nERROR! ${PROJECT_NAME} DOES NOT SUPPORT IN SOURCE BUILDS!\n"
+      "CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
+      " == CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}\n"
+      "NEXT STEPS:\n"
+      "(1) Delete the CMakeCache.txt file and the CMakeFiles/ directory\n"
+      "     under the source directory for ${PROJECT_NAME}, otherwise you\n"
+      "     will not be able to configure ${PROJECT_NAME} correctly!\n"
+      "      * For example, on linux machines do:\n"
+      "        $ rm -r CMakeCache.txt CMakeFiles/\n"
+      "(2) Create a different directory and configure ${PROJECT_NAME} in that directory.\n"
+      "      * For example, on linux machines do:\n"
+      "        $ mkdir MY_BUILD\n"
+      "        $ cd MY_BUILD\n"
+      "        $ cmake [OPTIONS] ..\n"
+      )
+endif ()
+
 #-----------------------------------------------------------------------------
 # Instructions for use : Sub-Project Build
 #
@@ -29,7 +47,7 @@ PROJECT (HDF5 C CXX)
 #   dependencies to this variable so that external projects pick them up
 #
 # HDF5_EXTERNAL_LIB_PREFIX :
-#   If the parent project needs to install hdf libraries, but avoid 
+#   If the parent project needs to install hdf libraries, but avoid
 #   name conflicts with system versions, then a prefix may be added
 #   to ensure that the correct versions configured are used.
 #
@@ -53,8 +71,8 @@ PROJECT (HDF5 C CXX)
 #   # Setup all necessary overrides for zlib so that HDF5 uses our
 #   # internally compiled zlib rather than any other version
 #   if (HDF5_ENABLE_Z_LIB_SUPPORT)
-#     # We must tell the main HDF5 library that it depends on our zlib 
-#     set (HDF5_LIB_DEPENDENCIES vtkzlib)    
+#     # We must tell the main HDF5 library that it depends on our zlib
+#     set (HDF5_LIB_DEPENDENCIES vtkzlib)
 #     # Override the zlib header file
 #     if (VTK_USE_SYSTEM_ZLIB)
 #       set (H5_ZLIB_HEADER "zlib.h")
@@ -65,10 +83,11 @@ PROJECT (HDF5 C CXX)
 #       set (ZLIB_LIBRARIES vtkzlib)
 #     endif (VTK_USE_SYSTEM_ZLIB)
 #   endif (HDF5_ENABLE_Z_LIB_SUPPORT)
-# 
+#
 #   # Add the sub project
 #   add_subdirectory (Utilities/hdf5-1.8)
 #-----------------------------------------------------------------------------
+string(TIMESTAMP CONFIG_DATE "%Y-%m-%d")
 
 #-----------------------------------------------------------------------------
 # Allow Visual Studio solution directories
@@ -84,6 +103,8 @@ if (HDF5_USE_FOLDERS)
 endif (HDF5_USE_FOLDERS)
 option (HDF5_NO_PACKAGES "CPACK - Disable packaging" OFF)
 mark_as_advanced (HDF5_NO_PACKAGES)
+option (ALLOW_UNSUPPORTED "Allow unsupported combinations of configure options" OFF)
+mark_as_advanced (ALLOW_UNSUPPORTED)
 
 #-----------------------------------------------------------------------------
 # Set the core names of all the libraries
@@ -120,18 +141,30 @@ set (HDF5_HL_F90_C_LIB_NAME     "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_F90_C_LIB_
 #-----------------------------------------------------------------------------
 # Set the target names of all the libraries
 #-----------------------------------------------------------------------------
-set (HDF5_LIB_TARGET              ${HDF5_LIB_CORENAME})
-set (HDF5_TEST_LIB_TARGET         ${HDF5_TEST_LIB_CORENAME})
-set (HDF5_CPP_LIB_TARGET          ${HDF5_CPP_LIB_CORENAME})
-set (HDF5_HL_LIB_TARGET           ${HDF5_HL_LIB_CORENAME})
-set (HDF5_HL_CPP_LIB_TARGET       ${HDF5_HL_CPP_LIB_CORENAME})
-set (HDF5_TOOLS_LIB_TARGET        ${HDF5_TOOLS_LIB_CORENAME})
-set (HDF5_F90_LIB_TARGET          ${HDF5_F90_LIB_CORENAME})
-set (HDF5_F90_C_LIB_TARGET        ${HDF5_F90_C_LIB_CORENAME})
-set (HDF5_F90_TEST_LIB_TARGET     ${HDF5_F90_TEST_LIB_CORENAME})
-set (HDF5_F90_C_TEST_LIB_TARGET   ${HDF5_F90_C_TEST_LIB_CORENAME})
-set (HDF5_HL_F90_LIB_TARGET       ${HDF5_HL_F90_LIB_CORENAME})
-set (HDF5_HL_F90_C_LIB_TARGET     ${HDF5_HL_F90_C_LIB_CORENAME})
+set (HDF5_LIB_TARGET              "${HDF5_LIB_CORENAME}-static")
+set (HDF5_TEST_LIB_TARGET         "${HDF5_TEST_LIB_CORENAME}-static")
+set (HDF5_CPP_LIB_TARGET          "${HDF5_CPP_LIB_CORENAME}-static")
+set (HDF5_HL_LIB_TARGET           "${HDF5_HL_LIB_CORENAME}-static")
+set (HDF5_HL_CPP_LIB_TARGET       "${HDF5_HL_CPP_LIB_CORENAME}-static")
+set (HDF5_TOOLS_LIB_TARGET        "${HDF5_TOOLS_LIB_CORENAME}-static")
+set (HDF5_F90_LIB_TARGET          "${HDF5_F90_LIB_CORENAME}-static")
+set (HDF5_F90_C_LIB_TARGET        "${HDF5_F90_C_LIB_CORENAME}-static")
+set (HDF5_F90_TEST_LIB_TARGET     "${HDF5_F90_TEST_LIB_CORENAME}-static")
+set (HDF5_F90_C_TEST_LIB_TARGET   "${HDF5_F90_C_TEST_LIB_CORENAME}-static")
+set (HDF5_HL_F90_LIB_TARGET       "${HDF5_HL_F90_LIB_CORENAME}-static")
+set (HDF5_HL_F90_C_LIB_TARGET     "${HDF5_HL_F90_C_LIB_CORENAME}-static")
+set (HDF5_LIBSH_TARGET            "${HDF5_LIB_CORENAME}-shared")
+set (HDF5_TEST_LIBSH_TARGET       "${HDF5_TEST_LIB_CORENAME}-shared")
+set (HDF5_CPP_LIBSH_TARGET        "${HDF5_CPP_LIB_CORENAME}-shared")
+set (HDF5_HL_LIBSH_TARGET         "${HDF5_HL_LIB_CORENAME}-shared")
+set (HDF5_HL_CPP_LIBSH_TARGET     "${HDF5_HL_CPP_LIB_CORENAME}-shared")
+set (HDF5_TOOLS_LIBSH_TARGET      "${HDF5_TOOLS_LIB_CORENAME}-shared")
+set (HDF5_F90_LIBSH_TARGET        "${HDF5_F90_LIB_CORENAME}-shared")
+set (HDF5_F90_C_LIBSH_TARGET      "${HDF5_F90_C_LIB_CORENAME}-shared")
+set (HDF5_F90_TEST_LIBSH_TARGET   "${HDF5_F90_TEST_LIB_CORENAME}-shared")
+set (HDF5_F90_C_TEST_LIBSH_TARGET "${HDF5_F90_C_TEST_LIB_CORENAME}-shared")
+set (HDF5_HL_F90_LIBSH_TARGET     "${HDF5_HL_F90_LIB_CORENAME}-shared")
+set (HDF5_HL_F90_C_LIBSH_TARGET   "${HDF5_HL_F90_C_LIB_CORENAME}-shared")
 
 #-----------------------------------------------------------------------------
 # Define some CMake variables for use later in the project
@@ -152,13 +185,25 @@ if (NOT HDF5_INSTALL_BIN_DIR)
   set (HDF5_INSTALL_BIN_DIR bin)
 endif (NOT HDF5_INSTALL_BIN_DIR)
 if (NOT HDF5_INSTALL_LIB_DIR)
+  if (APPLE)
+    set (HDF5_INSTALL_FMWK_DIR ${CMAKE_INSTALL_FRAMEWORK_PREFIX})
+  endif (APPLE)
   set (HDF5_INSTALL_LIB_DIR lib)
 endif (NOT HDF5_INSTALL_LIB_DIR)
 if (NOT HDF5_INSTALL_INCLUDE_DIR)
   set (HDF5_INSTALL_INCLUDE_DIR include)
 endif (NOT HDF5_INSTALL_INCLUDE_DIR)
+option (HDF5_BUILD_FRAMEWORKS "TRUE to build as frameworks libraries, FALSE to build according to BUILD_SHARED_LIBS" FALSE)
 if (NOT HDF5_INSTALL_DATA_DIR)
   if (NOT WIN32)
+    if (APPLE)
+      if (HDF5_BUILD_FRAMEWORKS)
+        set (HDF5_INSTALL_EXTRA_DIR ../SharedSupport)
+      else (HDF5_BUILD_FRAMEWORKS)
+        set (HDF5_INSTALL_EXTRA_DIR share)
+      endif (HDF5_BUILD_FRAMEWORKS)
+      set (HDF5_INSTALL_FWRK_DIR ${CMAKE_INSTALL_FRAMEWORK_PREFIX})
+    endif (APPLE)
     set (HDF5_INSTALL_DATA_DIR share)
     set (HDF5_INSTALL_CMAKE_DIR share/cmake)
   else (NOT WIN32)
@@ -193,6 +238,54 @@ string (REGEX REPLACE ".*LT_VERS_AGE[ \t]+=[ \t]+([0-9]*).*$"
     "\\1" H5_SOVERS_RELEASE ${_lt_vers_am_contents})
 MATH (EXPR H5_SOVERS_MAJOR ${H5_SOVERS_INTERFACE}-${H5_SOVERS_RELEASE})
 message (STATUS "SOVERSION: ${H5_SOVERS_MAJOR}.${H5_SOVERS_RELEASE}.${H5_SOVERS_MINOR}")
+string (REGEX REPLACE ".*LT_TOOLS_VERS_INTERFACE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_TOOLS_SOVERS_INTERFACE ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_TOOLS_VERS_REVISION[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_TOOLS_SOVERS_MINOR ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_TOOLS_VERS_AGE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_TOOLS_SOVERS_RELEASE ${_lt_vers_am_contents})
+MATH (EXPR H5_TOOLS_SOVERS_MAJOR ${H5_TOOLS_SOVERS_INTERFACE}-${H5_TOOLS_SOVERS_RELEASE})
+message (STATUS "SOVERSION_TOOLS: ${H5_TOOLS_SOVERS_MAJOR}.${H5_TOOLS_SOVERS_RELEASE}.${H5_TOOLS_SOVERS_MINOR}")
+string (REGEX REPLACE ".*LT_CXX_VERS_INTERFACE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_CXX_SOVERS_INTERFACE ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_CXX_VERS_REVISION[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_CXX_SOVERS_MINOR ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_CXX_VERS_AGE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_CXX_SOVERS_RELEASE ${_lt_vers_am_contents})
+MATH (EXPR H5_CXX_SOVERS_MAJOR ${H5_CXX_SOVERS_INTERFACE}-${H5_CXX_SOVERS_RELEASE})
+message (STATUS "SOVERSION_CXX: ${H5_CXX_SOVERS_MAJOR}.${H5_CXX_SOVERS_RELEASE}.${H5_CXX_SOVERS_MINOR}")
+string (REGEX REPLACE ".*LT_F_VERS_INTERFACE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_F_SOVERS_INTERFACE ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_F_VERS_REVISION[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_F_SOVERS_MINOR ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_F_VERS_AGE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_F_SOVERS_RELEASE ${_lt_vers_am_contents})
+MATH (EXPR H5_F_SOVERS_MAJOR ${H5_F_SOVERS_INTERFACE}-${H5_F_SOVERS_RELEASE})
+message (STATUS "SOVERSION_F: ${H5_F_SOVERS_MAJOR}.${H5_F_SOVERS_RELEASE}.${H5_F_SOVERS_MINOR}")
+string (REGEX REPLACE ".*LT_HL_VERS_INTERFACE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_SOVERS_INTERFACE ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_HL_VERS_REVISION[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_SOVERS_MINOR ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_HL_VERS_AGE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_SOVERS_RELEASE ${_lt_vers_am_contents})
+MATH (EXPR H5_HL_SOVERS_MAJOR ${H5_HL_SOVERS_INTERFACE}-${H5_HL_SOVERS_RELEASE})
+message (STATUS "SOVERSION_HL: ${H5_HL_SOVERS_MAJOR}.${H5_HL_SOVERS_RELEASE}.${H5_HL_SOVERS_MINOR}")
+string (REGEX REPLACE ".*LT_HL_CXX_VERS_INTERFACE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_CXX_SOVERS_INTERFACE ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_HL_CXX_VERS_REVISION[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_CXX_SOVERS_MINOR ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_HL_CXX_VERS_AGE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_CXX_SOVERS_RELEASE ${_lt_vers_am_contents})
+MATH (EXPR H5_HL_CXX_SOVERS_MAJOR ${H5_HL_CXX_SOVERS_INTERFACE}-${H5_HL_CXX_SOVERS_RELEASE})
+message (STATUS "SOVERSION_HL_CXX: ${H5_HL_CXX_SOVERS_MAJOR}.${H5_HL_CXX_SOVERS_RELEASE}.${H5_HL_CXX_SOVERS_MINOR}")
+string (REGEX REPLACE ".*LT_HL_F_VERS_INTERFACE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_F_SOVERS_INTERFACE ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_HL_F_VERS_REVISION[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_F_SOVERS_MINOR ${_lt_vers_am_contents})
+string (REGEX REPLACE ".*LT_HL_F_VERS_AGE[ \t]+=[ \t]+([0-9]*).*$"
+    "\\1" H5_HL_F_SOVERS_RELEASE ${_lt_vers_am_contents})
+MATH (EXPR H5_HL_F_SOVERS_MAJOR ${H5_HL_F_SOVERS_INTERFACE}-${H5_HL_F_SOVERS_RELEASE})
+message (STATUS "SOVERSION_HL_F: ${H5_HL_F_SOVERS_MAJOR}.${H5_HL_F_SOVERS_RELEASE}.${H5_HL_F_SOVERS_MINOR}")
 
 #-----------------------------------------------------------------------------
 # Basic HDF5 stuff here
@@ -208,6 +301,12 @@ else (NOT "${H5_VERS_SUBRELEASE}" STREQUAL "")
   set (HDF5_PACKAGE_VERSION_STRING "${HDF5_PACKAGE_VERSION}")
 endif (NOT "${H5_VERS_SUBRELEASE}" STREQUAL "")
 set (HDF5_PACKAGE_SOVERSION "${H5_SOVERS_MAJOR}.${H5_SOVERS_RELEASE}.${H5_SOVERS_MINOR}")
+set (HDF5_TOOLS_PACKAGE_SOVERSION "${H5_TOOLS_SOVERS_MAJOR}.${H5_TOOLS_SOVERS_RELEASE}.${H5_TOOLS_SOVERS_MINOR}")
+set (HDF5_CXX_PACKAGE_SOVERSION "${H5_CXX_SOVERS_MAJOR}.${H5_CXX_SOVERS_RELEASE}.${H5_CXX_SOVERS_MINOR}")
+set (HDF5_F_PACKAGE_SOVERSION "${H5_F_SOVERS_MAJOR}.${H5_F_SOVERS_RELEASE}.${H5_F_SOVERS_MINOR}")
+set (HDF5_HL_PACKAGE_SOVERSION "${H5_HL_SOVERS_MAJOR}.${H5_HL_SOVERS_RELEASE}.${H5_HL_SOVERS_MINOR}")
+set (HDF5_HL_CXX_PACKAGE_SOVERSION "${H5_HL_CXX_SOVERS_MAJOR}.${H5_HL_CXX_SOVERS_RELEASE}.${H5_HL_CXX_SOVERS_MINOR}")
+set (HDF5_HL_F_PACKAGE_SOVERSION "${H5_HL_F_SOVERS_MAJOR}.${H5_HL_F_SOVERS_RELEASE}.${H5_HL_F_SOVERS_MINOR}")
 set (HDF5_PACKAGE_STRING "${HDF5_PACKAGE_NAME} ${HDF5_PACKAGE_VERSION_STRING}")
 set (HDF5_PACKAGE_TARNAME "${HDF5_PACKAGE}${HDF_PACKAGE_EXT}")
 set (HDF5_PACKAGE_URL "http://www.hdfgroup.org")
@@ -246,7 +345,7 @@ endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 
 #-----------------------------------------------------------------------------
 # Targets built within this project are exported at Install time for use
-# by other projects using FindHDF5. 
+# by other projects using FindHDF5.
 #-----------------------------------------------------------------------------
 if (NOT HDF5_EXPORTED_TARGETS)
   set (HDF5_EXPORTED_TARGETS "hdf5-targets")
@@ -270,20 +369,22 @@ include (${HDF_RESOURCES_DIR}/ConfigureChecks.cmake)
 set (CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
 
 #-----------------------------------------------------------------------------
-# Option to Build Shared/Static libs, default is static
+# Mac OS X Options
+#-----------------------------------------------------------------------------
+if (HDF5_BUILD_FRAMEWORKS AND NOT BUILD_SHARED_LIBS)
+  set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries")
+endif (HDF5_BUILD_FRAMEWORKS AND NOT BUILD_SHARED_LIBS)
+
 #-----------------------------------------------------------------------------
-option (BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
-set (LIB_TYPE STATIC)
+# Option to Build Shared and Static libs, default is static
+#-----------------------------------------------------------------------------
+option (BUILD_SHARED_LIBS "Build Shared Libraries" ON)
 set (H5_ENABLE_SHARED_LIB NO)
-set (H5_ENABLE_STATIC_LIB NO)
 if (BUILD_SHARED_LIBS)
-  set (LIB_TYPE SHARED)
-  set (H5_BUILT_AS_DYNAMIC_LIB 1)
   set (H5_ENABLE_SHARED_LIB YES)
-else (BUILD_SHARED_LIBS)
-  set (H5_BUILT_AS_STATIC_LIB 1)
-  set (H5_ENABLE_STATIC_LIB YES)
+  set (LINK_SHARED_LIBS ${LINK_LIBS})
 endif (BUILD_SHARED_LIBS)
+set (H5_ENABLE_STATIC_LIB YES)
 set (CMAKE_POSITION_INDEPENDENT_CODE ON)
 
 #-----------------------------------------------------------------------------
@@ -304,7 +405,7 @@ option (HDF5_ENABLE_COVERAGE "Enable code coverage for Libraries and Programs" O
 if (HDF5_ENABLE_COVERAGE)
   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
   set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
-  set (LDFLAGS "${LDFLAGS} -fprofile-arcs -ftest-coverage")   
+  set (LDFLAGS "${LDFLAGS} -fprofile-arcs -ftest-coverage")
 endif (HDF5_ENABLE_COVERAGE)
 
 #-----------------------------------------------------------------------------
@@ -313,7 +414,7 @@ endif (HDF5_ENABLE_COVERAGE)
 # option (HDF5_ENABLE_USING_DMALLOC "Indicate that dmalloc is used" OFF)
 # if (HDF5_ENABLE_USING_DMALLOC)
 #   find_package (DMALLOC)
-#   set (H5_HAVE_DMALLOC DMALLOC_FOUND)   
+#   set (H5_HAVE_DMALLOC DMALLOC_FOUND)
 # endif (HDF5_ENABLE_USING_DMALLOC)
 
 #-----------------------------------------------------------------------------
@@ -321,7 +422,7 @@ endif (HDF5_ENABLE_COVERAGE)
 #-----------------------------------------------------------------------------
 option (HDF5_ENABLE_USING_MEMCHECKER "Indicate that a memory checker is used" OFF)
 if (HDF5_ENABLE_USING_MEMCHECKER)
-  set (H5_USING_MEMCHECKER 1)   
+  set (H5_USING_MEMCHECKER 1)
 endif (HDF5_ENABLE_USING_MEMCHECKER)
 
 #-----------------------------------------------------------------------------
@@ -329,9 +430,9 @@ endif (HDF5_ENABLE_USING_MEMCHECKER)
 #-----------------------------------------------------------------------------
 option (HDF5_ENABLE_DEPRECATED_SYMBOLS "Enable deprecated public API symbols" ON)
 if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
-  set (H5_NO_DEPRECATED_SYMBOLS 0)   
+  set (H5_NO_DEPRECATED_SYMBOLS 0)
 else (HDF5_ENABLE_DEPRECATED_SYMBOLS)
-  set (H5_NO_DEPRECATED_SYMBOLS 1)   
+  set (H5_NO_DEPRECATED_SYMBOLS 1)
 endif (HDF5_ENABLE_DEPRECATED_SYMBOLS)
 
 #-----------------------------------------------------------------------------
@@ -395,24 +496,6 @@ else (CMAKE_BUILD_TYPE MATCHES Debug)
 endif (CMAKE_BUILD_TYPE MATCHES Debug)
 
 #-----------------------------------------------------------------------------
-# Compiler specific flags : Shouldn't there be compiler tests for these
-#-----------------------------------------------------------------------------
-if (CMAKE_COMPILER_IS_GNUCC)
-  if (CMAKE_BUILD_TYPE MATCHES Debug)
-    set (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -finline-functions -fno-common")
-  else (CMAKE_BUILD_TYPE MATCHES Debug)
-    set (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -fomit-frame-pointer -finline-functions -fno-common")
-  endif (CMAKE_BUILD_TYPE MATCHES Debug)
-endif (CMAKE_COMPILER_IS_GNUCC)
-if (CMAKE_COMPILER_IS_GNUCXX)
-  if (CMAKE_BUILD_TYPE MATCHES Debug)
-    set (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS} -finline-functions -fno-common")
-  else (CMAKE_BUILD_TYPE MATCHES Debug)
-    set (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS} -fomit-frame-pointer -finline-functions -fno-common")
-  endif (CMAKE_BUILD_TYPE MATCHES Debug)
-endif (CMAKE_COMPILER_IS_GNUCXX)
-
-#-----------------------------------------------------------------------------
 # Option to embed library info into executables
 #-----------------------------------------------------------------------------
 option (HDF5_ENABLE_EMBEDDED_LIBINFO "embed library info into executables" ON)
@@ -420,210 +503,7 @@ if (HDF5_ENABLE_EMBEDDED_LIBINFO)
   set (H5_HAVE_EMBEDDED_LIBINFO 1)
 endif (HDF5_ENABLE_EMBEDDED_LIBINFO)
 
-#-----------------------------------------------------------------------------
-# Option to allow the user to disable compiler warnings
-#-----------------------------------------------------------------------------
-option (HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF)
-if (HDF5_DISABLE_COMPILER_WARNINGS)
-  # MSVC uses /w to suppress warnings.  It also complains if another
-  # warning level is given, so remove it.
-  if (MSVC)
-    set (HDF5_WARNINGS_BLOCKED 1)
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w")
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w")
-  endif (MSVC)
-  if (WIN32)
-    add_definitions (-D_CRT_SECURE_NO_WARNINGS)
-  endif (WIN32)
-  # Borland uses -w- to suppress warnings.
-  if (BORLAND)
-    set (HDF5_WARNINGS_BLOCKED 1)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-")
-  endif (BORLAND)
-
-  # Most compilers use -w to suppress warnings.
-  if (NOT HDF5_WARNINGS_BLOCKED)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
-  endif (NOT HDF5_WARNINGS_BLOCKED)
-endif (HDF5_DISABLE_COMPILER_WARNINGS)
-
-#-----------------------------------------------------------------------------
-# CDash is configured to only allow 3000 warnings, so
-# break into groups (from the config/gnu-flags file)
-#-----------------------------------------------------------------------------
-if (NOT MSVC)
-  if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline")
-  else (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -erroff=%none -DBSD_COMP")
-  endif (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
-    # Append warning flags
-    # Don't use the '-Wtraditional' flag, we're way past having K&R C code
-    # set (H5_CFLAGS "${H5_CFLAGS} -Wtraditional")
-    # Don't use the '-Wtraditional-conversion' flag, there's too many warnings
-    #  from GCC's assert macro
-    # set (H5_CFLAGS "${H5_CFLAGS} -Wtraditional-conversion")
-
-    # Append warning flags from gcc-3* case
-    # (don't use -Wpadded flag for normal builds, many of the warnings its
-    #   issuing can't be fixed and they are making it hard to detect other,
-    #   more important warnings)
-    #set (H5_CFLAGS "${H5_CFLAGS} -Wfloat-equal -Wmissing-format-attribute -Wpadded")
-    set (H5_CFLAGS1 "${H5_CFLAGS1} -Wfloat-equal -Wmissing-format-attribute")
-
-    # Append warning flags from gcc-3.2* case
-    set (H5_CFLAGS1 "${H5_CFLAGS1} -Wmissing-noreturn -Wpacked -Wdisabled-optimization")
-
-    # Enable more format checking flags, beyond the basic -Wformat included
-    # in -Wall
-    set (H5_CFLAGS1 "${H5_CFLAGS1} -Wformat=2")
-
-    # The "unreachable code" warning appears to be reliable now...
-    # (this warning was removed in gcc 4.5+)
-    #set (H5_CFLAGS "${H5_CFLAGS} -Wunreachable-code")
-
-    # Append warning flags from gcc-3.3* case
-    set (H5_CFLAGS1 "${H5_CFLAGS1} -Wendif-labels")
-
-    # Append warning flags from gcc-3.4* case
-    set (H5_CFLAGS2 "${H5_CFLAGS2} -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch")
-
-    # Append more extra warning flags that only gcc4.0+ know about
-    set (H5_CFLAGS2 "${H5_CFLAGS2} -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros")
-
-    # Append more extra warning flags that only gcc 4.1+ know about
-    set (H5_CFLAGS3 "${H5_CFLAGS3} -Wunsafe-loop-optimizations -Wc++-compat")
-
-    # Append more extra warning flags that only gcc 4.2+ know about
-    set (H5_CFLAGS3 "${H5_CFLAGS3} -Wstrict-overflow")
-
-    # Append more extra warning flags that only gcc 4.3+ know about
-    #
-    # Technically, variable-length arrays are part of the C99 standard, but
-    #   we should approach them a bit cautiously... -QAK
-    set (H5_CFLAGS3 "${H5_CFLAGS3} -Wlogical-op -Wlarger-than=2048 -Wvla")
-
-    # Append more extra warning flags that only gcc 4.4+ know about
-    set (H5_CFLAGS4 "${H5_CFLAGS4} -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat")
-
-    # Append more extra warning flags that only gcc 4.5+ know about
-    set (H5_CFLAGS4 "${H5_CFLAGS4} -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants")
-
-    # Append more extra warning flags that only gcc 4.6+ know about
-    set (H5_CFLAGS5 "${H5_CFLAGS5} -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines")
-
-    # Append more extra warning flags that only gcc 4.7+ know about
-    set (H5_CFLAGS5 "${H5_CFLAGS5} -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn")
-endif (NOT MSVC)
-  
-#-----------------------------------------------------------------------------
-# Option to allow the user to enable all warnings
-#-----------------------------------------------------------------------------
-option (HDF5_ENABLE_ALL_WARNINGS "Enable all warnings" OFF)
-if (HDF5_ENABLE_ALL_WARNINGS)
-  if (MSVC)
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Wall")
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wall")
-  else (MSVC)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic ${H5_CFLAGS1} ${H5_CFLAGS2} ${H5_CFLAGS3} ${H5_CFLAGS4}")
-  endif (MSVC)
-endif (HDF5_ENABLE_ALL_WARNINGS)
-
-#-----------------------------------------------------------------------------
-# Option to allow the user to enable warnings by groups
-#-----------------------------------------------------------------------------
-option (HDF5_ENABLE_GROUPZERO_WARNINGS "Enable group zero warnings" OFF)
-if (HDF5_ENABLE_GROUPZERO_WARNINGS)
-  if (MSVC)
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W1")
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W1")
-  else (MSVC)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic")
-  endif (MSVC)
-endif (HDF5_ENABLE_GROUPZERO_WARNINGS)
-
-#-----------------------------------------------------------------------------
-# Option to allow the user to enable warnings by groups
-#-----------------------------------------------------------------------------
-option (HDF5_ENABLE_GROUPONE_WARNINGS "Enable group one warnings" OFF)
-if (HDF5_ENABLE_GROUPONE_WARNINGS)
-  if (MSVC)
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W2")
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W2")
-  else (MSVC)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS1}")
-  endif (MSVC)
-endif (HDF5_ENABLE_GROUPONE_WARNINGS)
-
-#-----------------------------------------------------------------------------
-# Option to allow the user to enable warnings by groups
-#-----------------------------------------------------------------------------
-option (HDF5_ENABLE_GROUPTWO_WARNINGS "Enable group two warnings" OFF)
-if (HDF5_ENABLE_GROUPTWO_WARNINGS)
-  if (MSVC)
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
-  else (MSVC)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS2}")
-  endif (MSVC)
-endif (HDF5_ENABLE_GROUPTWO_WARNINGS)
-
-#-----------------------------------------------------------------------------
-# Option to allow the user to enable warnings by groups
-#-----------------------------------------------------------------------------
-option (HDF5_ENABLE_GROUPTHREE_WARNINGS "Enable group three warnings" OFF)
-if (HDF5_ENABLE_GROUPTHREE_WARNINGS)
-  if (MSVC)
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
-    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
-  else (MSVC)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS3}")
-  endif (MSVC)
-endif (HDF5_ENABLE_GROUPTHREE_WARNINGS)
-
-#-----------------------------------------------------------------------------
-# Option to allow the user to enable warnings by groups
-#-----------------------------------------------------------------------------
-option (HDF5_ENABLE_GROUPFOUR_WARNINGS "Enable group four warnings" OFF)
-if (HDF5_ENABLE_GROUPFOUR_WARNINGS)
-  if (NOT MSVC)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS4}")
-  endif (NOT MSVC)
-endif (HDF5_ENABLE_GROUPFOUR_WARNINGS)
-
-#-----------------------------------------------------------------------------
-# Option to allow the user to enable warnings by groups
-#-----------------------------------------------------------------------------
-option (HDF5_ENABLE_GROUPFIVE_WARNINGS "Enable group five warnings" OFF)
-if (HDF5_ENABLE_GROUPFIVE_WARNINGS)
-  if (NOT MSVC)
-    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS5}")
-  endif (NOT MSVC)
-endif (HDF5_ENABLE_GROUPFIVE_WARNINGS)
-
-#-----------------------------------------------------------------------------
-# This is in here to help some of the GCC based IDES like Eclipse
-# and code blocks parse the compiler errors and warnings better.
-#-----------------------------------------------------------------------------
-if (CMAKE_COMPILER_IS_GNUCC)
-  set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0")
-endif (CMAKE_COMPILER_IS_GNUCC)
-if (CMAKE_COMPILER_IS_GNUCXX)
-  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0")
-endif (CMAKE_COMPILER_IS_GNUCXX)
+include (${HDF_RESOURCES_DIR}/HDFCompilerFlags.cmake)
 
 #-----------------------------------------------------------------------------
 # All libs/tests/examples need the main include directories
@@ -654,6 +534,7 @@ endif (HDF5_ENABLE_PARALLEL)
 # Parallel IO usage requires MPI to be Linked and Included
 if (H5_HAVE_PARALLEL)
   set (LINK_LIBS ${LINK_LIBS} ${MPI_C_LIBRARIES})
+  set (LINK_SHARED_LIBS ${LINK_SHARED_LIBS} ${MPI_C_LIBRARIES})
   if (MPI_C_LINK_FLAGS)
     set (CMAKE_EXE_LINKER_FLAGS "${MPI_C_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
   endif (MPI_C_LINK_FLAGS)
@@ -690,7 +571,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
     if (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
       PACKAGE_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT})
     endif (HDF5_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND)
-    
+
     if (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
       PACKAGE_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT})
     endif (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
@@ -698,32 +579,48 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
 endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 #-----------------------------------------------------------------------------
 # Option to use threadsafe
-# Note: Currently CMake only allows configuring of threadsafe on 
+# Note: Currently CMake only allows configuring of threadsafe on
 # non-Cygwin WINDOWS.
 #-----------------------------------------------------------------------------
 if (WIN32)
   option (HDF5_ENABLE_THREADSAFE "Enable thread-safety" OFF)
   if (HDF5_ENABLE_THREADSAFE)
     # check for unsupported options
-    if (H5_BUILT_AS_STATIC_LIB)
-      message (FATAL_ERROR " **** thread-safety option not supported with static library **** ")
-    endif (H5_BUILT_AS_STATIC_LIB)
+    message (STATUS " **** thread-safety option not supported with static library **** ")
+    message (STATUS " **** thread-safety option will not be used building static library **** ")
     if (HDF5_ENABLE_PARALLEL)
-      message (FATAL_ERROR " **** parallel and thread-safety options are not supported **** ")
+      if (NOT ALLOW_UNSUPPORTED)
+        message (FATAL_ERROR " **** parallel and thread-safety options are not supported **** ")
+      else (NOT ALLOW_UNSUPPORTED)
+        message (STATUS " **** Allowing unsupported parallel and thread-safety options **** ")
+      endif (NOT ALLOW_UNSUPPORTED)
     endif (HDF5_ENABLE_PARALLEL)
     if (HDF5_BUILD_FORTRAN)
-      message (FATAL_ERROR " **** Fortran and thread-safety options are not supported **** ")
+      if (NOT ALLOW_UNSUPPORTED)
+        message (FATAL_ERROR " **** Fortran and thread-safety options are not supported **** ")
+      else (NOT ALLOW_UNSUPPORTED)
+        message (STATUS " **** Allowing unsupported Fortran and thread-safety options **** ")
+      endif (NOT ALLOW_UNSUPPORTED)
     endif (HDF5_BUILD_FORTRAN)
     if (HDF5_BUILD_CPP_LIB)
-      message (FATAL_ERROR " **** C++ and thread-safety options are not supported **** ")
+      if (NOT ALLOW_UNSUPPORTED)
+        message (FATAL_ERROR " **** C++ and thread-safety options are not supported **** ")
+      else (NOT ALLOW_UNSUPPORTED)
+        message (STATUS " **** Allowing unsupported C++ and thread-safety options **** ")
+      endif (NOT ALLOW_UNSUPPORTED)
     endif (HDF5_BUILD_CPP_LIB)
-    set (H5_HAVE_THREADSAFE 1)
+    if (HDF5_BUILD_HL_LIB)
+      if (NOT ALLOW_UNSUPPORTED)
+        message (FATAL_ERROR " **** HL and thread-safety options are not supported **** ")
+      else (NOT ALLOW_UNSUPPORTED)
+        message (STATUS " **** Allowing unsupported HL and thread-safety options **** ")
+      endif (NOT ALLOW_UNSUPPORTED)
+    endif (HDF5_BUILD_HL_LIB)
     if (H5_HAVE_IOEO)
       message (STATUS " **** Win32 threads requires WINVER>=0x600 (Windows Vista/7/8) **** ")
       set (H5_HAVE_WIN_THREADS 1)
     else (H5_HAVE_IOEO)
       if (NOT H5_HAVE_PTHREAD_H)
-        set (H5_HAVE_THREADSAFE 0)
         message (FATAL_ERROR " **** thread-safe option requires Win32 threads or Pthreads **** ")
       endif (NOT H5_HAVE_PTHREAD_H)
     endif (H5_HAVE_IOEO)
@@ -738,9 +635,15 @@ add_subdirectory (${HDF5_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src)
 if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
   if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
     ADD_DEPENDENCIES (${HDF5_LIB_TARGET} ZLIB)
+    if (BUILD_SHARED_LIBS)
+      add_dependencies (${HDF5_LIBSH_TARGET} ZLIB)
+    endif (BUILD_SHARED_LIBS)
   endif (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
   if (SZIP_FOUND AND SZIP_USE_EXTERNAL)
     ADD_DEPENDENCIES (${HDF5_LIB_TARGET} SZIP)
+    if (BUILD_SHARED_LIBS)
+      add_dependencies (${HDF5_LIBSH_TARGET} SZIP)
+    endif (BUILD_SHARED_LIBS)
   endif (SZIP_FOUND AND SZIP_USE_EXTERNAL)
 endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
 
@@ -753,8 +656,23 @@ if (BUILD_TESTING)
       CACHE INTEGER
       "Timeout in seconds for each test (default 1200=20minutes)"
   )
+
+  option (HDF5_TEST_VFD "Execute tests with different VFDs" OFF)
+  mark_as_advanced (HDF5_TEST_VFD)
+  if (HDF5_TEST_VFD)
+    option (HDF5_TEST_FHEAP_VFD "Execute tests with different VFDs" ON)
+    mark_as_advanced (HDF5_TEST_FHEAP_VFD)
+  endif (HDF5_TEST_VFD)
+
+  option (HDF_TEST_EXPRESS "Control testing framework (0-3)" "0")
+  mark_as_advanced (HDF_TEST_EXPRESS)
+
+  include (${HDF5_SOURCE_DIR}/CTestConfig.cmake)
+  configure_file (${HDF_RESOURCES_DIR}/CTestCustom.cmake ${HDF5_BINARY_DIR}/CTestCustom.ctest @ONLY)
+
   enable_testing ()
   include (CTest)
+
   if (NOT HDF5_EXTERNALLY_CONFIGURED)
     if (EXISTS "${HDF5_SOURCE_DIR}/test" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/test")
       add_subdirectory (${HDF5_SOURCE_DIR}/tools/lib ${PROJECT_BINARY_DIR}/tools/lib)
@@ -766,19 +684,19 @@ if (BUILD_TESTING)
       endif (EXISTS "${HDF5_SOURCE_DIR}/testpar" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/testpar")
     endif (H5_HAVE_PARALLEL)
   endif (NOT HDF5_EXTERNALLY_CONFIGURED)
-
-  option (HDF5_TEST_VFD "Execute tests with different VFDs" OFF)
-  mark_as_advanced (HDF5_TEST_VFD)
-  if (HDF5_TEST_VFD)
-    option (HDF5_TEST_FHEAP_VFD "Execute tests with different VFDs" ON)
-    mark_as_advanced (HDF5_TEST_FHEAP_VFD)
-  endif (HDF5_TEST_VFD)
-  
-  include (${HDF5_SOURCE_DIR}/CTestConfig.cmake)
-  configure_file (${HDF_RESOURCES_DIR}/CTestCustom.cmake ${HDF5_BINARY_DIR}/CTestCustom.ctest @ONLY)
 endif (BUILD_TESTING)
 
 #-----------------------------------------------------------------------------
+# Option to build HDF5 Tools
+#-----------------------------------------------------------------------------
+if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools")
+  option (HDF5_BUILD_TOOLS  "Build HDF5 Tools" ON)
+  if (HDF5_BUILD_TOOLS)
+    add_subdirectory (${HDF5_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools)
+  endif (HDF5_BUILD_TOOLS)
+endif (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools")
+
+#-----------------------------------------------------------------------------
 # Option to build examples
 #-----------------------------------------------------------------------------
 if (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples")
@@ -809,9 +727,15 @@ set (H5_FC_FUNC  "H5_FC_FUNC(name,NAME) name ## _")
 set (H5_FC_FUNC_ "H5_FC_FUNC_(name,NAME) name ## _")
 if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/fortran")
   option (HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF)
+  option (SKIP_HDF5_FORTRAN_SHARED "Do not build the fortran shared libraries" OFF)
   if (HDF5_BUILD_FORTRAN)
     if (BUILD_SHARED_LIBS AND APPLE)
-      message (FATAL_ERROR " **** Shared FORTRAN libraries are unsupported **** ")
+      if (NOT ALLOW_UNSUPPORTED)
+        message (STATUS " **** Shared FORTRAN libraries are unsupported **** ")
+        set (SKIP_HDF5_FORTRAN_SHARED ON)
+      else (NOT ALLOW_UNSUPPORTED)
+        message (STATUS " **** Allowing unsupported Fortran shared libraries **** ")
+      endif (NOT ALLOW_UNSUPPORTED)
     endif (BUILD_SHARED_LIBS AND APPLE)
     option (HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" ON)
     include (${HDF_RESOURCES_EXT_DIR}/HDFUseFortran.cmake)
@@ -839,7 +763,11 @@ if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
   if (HDF5_BUILD_CPP_LIB)
     # check for unsupported options
     if (HDF5_ENABLE_PARALLEL)
-      message (FATAL_ERROR " **** Parallel and C++ options are mutually exclusive **** ")
+      if (NOT ALLOW_UNSUPPORTED)
+        message (FATAL_ERROR " **** Parallel and C++ options are mutually exclusive **** ")
+      else (NOT ALLOW_UNSUPPORTED)
+        message (STATUS " **** Allowing unsupported Parallel and C++ options **** ")
+      endif (NOT ALLOW_UNSUPPORTED)
     endif (HDF5_ENABLE_PARALLEL)
     if (CMAKE_NO_STD_NAMESPACE)
       set (H5_NO_STD 1)
@@ -855,17 +783,7 @@ if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
 endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
 
 #-----------------------------------------------------------------------------
-# Option to build HDF5 Tools
-#-----------------------------------------------------------------------------
-if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools")
-  option (HDF5_BUILD_TOOLS  "Build HDF5 Tools" ON)
-  if (HDF5_BUILD_TOOLS)
-    add_subdirectory (${HDF5_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools)
-  endif (HDF5_BUILD_TOOLS)
-endif (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools")
-
-#-----------------------------------------------------------------------------
-# Check if Fortran's default real is double precision. If it is and HL is 
+# Check if Fortran's default real is double precision. If it is and HL is
 # being built then configure should fail due to bug HDFFV-889.
 #-----------------------------------------------------------------------------
  if (HDF5_BUILD_FORTRAN AND HDF5_BUILD_HL_LIB )
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
index a0e2a67..0410953 100644
--- a/CTestConfig.cmake
+++ b/CTestConfig.cmake
@@ -9,10 +9,10 @@ set (CTEST_NIGHTLY_START_TIME "18:00:00 CST")
 
 set (CTEST_DROP_METHOD "http")
 if (CDASH_LOCAL)
-  set (CTEST_DROP_SITE "72.36.68.252")
+  set (CTEST_DROP_SITE "10.10.10.82")
   set (CTEST_DROP_LOCATION "/submit.php?project=HDF5.1.8")
 else (CDASH_LOCAL)
-  set (CTEST_DROP_SITE "cdash.hdfgroup.uiuc.edu")
+  set (CTEST_DROP_SITE "cdash.hdfgroup.org")
   set (CTEST_DROP_LOCATION "/submit.php?project=HDF518")
 endif (CDASH_LOCAL)
 set (CTEST_DROP_SITE_CDASH TRUE)
diff --git a/MANIFEST b/MANIFEST
index ad7d68d..955f30b 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -13,7 +13,7 @@
 # access to either file, you may request a copy from help at hdfgroup.org.
 #
 #------------------------------------------------------------------------------
-# This is the list of files that are part of HDF5 source distribution. 
+# This is the list of files that are part of HDF5 source distribution.
 # All files have a `./' prefix and appear in lexicographic order.
 # Lines that end with _DO_NOT_DISTRIBUTE_ will not be included in a
 # release.  Blank lines and comments are ignored.  Comments must start
@@ -42,8 +42,9 @@
 ./configure.ac
 
 ./bin/COPYING
+./bin/bbrelease       _DO_NOT_DISTRIBUTE_
 ./bin/buildhdf5
-./bin/build_and_package_hdf5_binaries.sh  _DO_NOT_DISTRIBUTE_
+./bin/pkgscrpts/build_and_package_hdf5_binaries.sh  _DO_NOT_DISTRIBUTE_
 ./bin/checkapi        _DO_NOT_DISTRIBUTE_
 ./bin/checkposix      _DO_NOT_DISTRIBUTE_
 ./bin/chkconfigure      _DO_NOT_DISTRIBUTE_
@@ -53,14 +54,14 @@
 ./bin/compile
 ./bin/config.guess
 ./bin/config.sub
-./bin/debug-ohdr      _DO_NOT_DISTRIBUTE_
+./bin/debug-ohdr             _DO_NOT_DISTRIBUTE_
 ./bin/dependencies
 ./bin/depcomp
 ./bin/deploy
 ./bin/distdep
-./bin/errors              _DO_NOT_DISTRIBUTE_
+./bin/errors                 _DO_NOT_DISTRIBUTE_
 ./bin/gcov_script            _DO_NOT_DISTRIBUTE_
-./bin/genltanalyze      _DO_NOT_DISTRIBUTE_
+./bin/genltanalyze           _DO_NOT_DISTRIBUTE_
 ./bin/h5vers
 ./bin/install-sh
 ./bin/iostats
@@ -70,22 +71,23 @@
 ./bin/make_overflow
 ./bin/make_vers
 ./bin/makehelp
-./bin/make1814TarFiles.pl       _DO_NOT_DISTRIBUTE_
-./bin/makeInternal1814README.pl _DO_NOT_DISTRIBUTE_
-./bin/makeOuter1814README.pl    _DO_NOT_DISTRIBUTE_
+./bin/pkgscrpts/make1816TarFiles.pl       _DO_NOT_DISTRIBUTE_
+./bin/pkgscrpts/makeInternal1816README.pl _DO_NOT_DISTRIBUTE_
+./bin/pkgscrpts/makeOuter1816README.pl    _DO_NOT_DISTRIBUTE_
+./bin/pkgscrpts/h5rmflags                 _DO_NOT_DISTRIBUTE_
 ./bin/missing
 ./bin/mkdirs
 ./bin/mkinstalldirs
 ./bin/newer
-./bin/reconfigure      _DO_NOT_DISTRIBUTE_
+./bin/reconfigure                   _DO_NOT_DISTRIBUTE_
 ./bin/output_filter.sh
 ./bin/release
-./bin/runtest        _DO_NOT_DISTRIBUTE_
+./bin/runtest                       _DO_NOT_DISTRIBUTE_
 ./bin/snapshot
-./bin/snapshot_version      _DO_NOT_DISTRIBUTE_
+./bin/snapshot_version              _DO_NOT_DISTRIBUTE_
 ./bin/test-driver
-./bin/testh51814binary.sh       _DO_NOT_DISTRIBUTE_
-./bin/timekeeper      _DO_NOT_DISTRIBUTE_
+./bin/pkgscrpts/testbinaries.sh     _DO_NOT_DISTRIBUTE_
+./bin/timekeeper                    _DO_NOT_DISTRIBUTE_
 ./bin/trace
 ./bin/yodconfigure
 
@@ -96,16 +98,12 @@
 ./config/cce-flags
 ./config/commence.am
 ./config/conclude.am
-./config/craynv
-./config/dec-flags
 ./config/examples.am
 ./config/freebsd
 ./config/gnu-fflags
 ./config/gnu-flags
-./config/hpux11.23
 ./config/i386-pc-cygwin32
 ./config/i686-pc-cygwin
-./config/ia64-linux-gnu
 ./config/ibm-aix
 ./config/ibm-flags
 ./config/intel-fflags
@@ -115,15 +113,11 @@
 ./config/linux-gnulibc1
 ./config/linux-gnulibc2
 ./config/lt_vers.am
-./config/nec-superux14.1
 ./config/Makefile.am.blank
 ./config/pgi-fflags
 ./config/pgi-flags
-./config/powerpc-ibm-aix5.x
-./config/solaris2.x
-./config/sv1-cray
+./config/solaris
 ./config/x86_64-pc-cygwin
-./config/x86_64-redstorm-linux-gnu
 
 ./config/site-specific/BlankForm
 
@@ -403,6 +397,8 @@
 ./c++/src/H5Location.h
 ./c++/src/H5Object.cpp
 ./c++/src/H5Object.h
+./c++/src/H5OcreatProp.cpp
+./c++/src/H5OcreatProp.h
 ./c++/src/H5PredType.cpp
 ./c++/src/H5PredType.h
 ./c++/src/H5PropList.cpp
@@ -415,6 +411,7 @@
 ./c++/src/Makefile.in
 ./c++/src/RM_stylesheet.css
 ./c++/src/cpp_doc_config
+./c++/src/footer.html
 ./c++/src/h5c++.in
 ./c++/src/header.html
 ./c++/src/header_files/filelist.xml
@@ -501,7 +498,7 @@
 ./src/H5Bdbg.c
 ./src/H5Bpkg.h
 ./src/H5Bprivate.h
-./src/H5Bpublic.h      
+./src/H5Bpublic.h
 ./src/H5B2.c
 ./src/H5B2cache.c
 ./src/H5B2dbg.c
@@ -509,7 +506,7 @@
 ./src/H5B2int.c
 ./src/H5B2pkg.h
 ./src/H5B2private.h
-./src/H5B2public.h    
+./src/H5B2public.h
 ./src/H5B2stat.c
 ./src/H5B2test.c
 ./src/H5C.c
@@ -639,7 +636,7 @@
 ./src/H5HFman.c
 ./src/H5HFpkg.h
 ./src/H5HFprivate.h
-./src/H5HFpublic.h  
+./src/H5HFpublic.h
 ./src/H5HFsection.c
 ./src/H5HFspace.c
 ./src/H5HFstat.c
@@ -877,7 +874,6 @@
 ./test/fixed_idx.h5
 ./test/flush1.c
 ./test/flush2.c
-# ====distribute this for now. See HDFFV-8236====
 ./test/gen_bad_ohdr.c
 ./test/gen_bad_compound.c
 ./test/gen_bogus.c
@@ -899,7 +895,6 @@
 ./test/gen_old_mtime.c
 ./test/gen_sizes_lheap.c
 ./test/gen_udlinks.c
-# ====end distribute this for now. See HDFFV-8236====
 ./test/getname.c
 ./test/gheap.c
 ./test/group_old.h5
@@ -1011,6 +1006,7 @@
 ./testpar/t_pshutdown.c
 ./testpar/t_prestart.c
 ./testpar/t_span_tree.c
+./testpar/t_init_term.c
 ./testpar/testpar.h
 ./testpar/testphdf5.c
 ./testpar/testphdf5.h
@@ -1293,8 +1289,8 @@
 ./tools/testfiles/tattrintsize.ddl
 ./tools/testfiles/tattrintsize.h5
 ./tools/testfiles/tattrreg.h5
-./tools/testfiles/tattrreg.ddl 
-./tools/testfiles/tattrregR.ddl 
+./tools/testfiles/tattrreg.ddl
+./tools/testfiles/tattrregR.ddl
 ./tools/testfiles/tbigdims.ddl
 ./tools/testfiles/tbigdims.h5
 ./tools/testfiles/tbinary.h5
@@ -1333,8 +1329,8 @@
 ./tools/testfiles/tcompound2.h5
 ./tools/testfiles/tcompound_complex.h5
 ./tools/testfiles/tdatareg.h5
-./tools/testfiles/tdatareg.ddl 
-./tools/testfiles/tdataregR.ddl 
+./tools/testfiles/tdatareg.ddl
+./tools/testfiles/tdataregR.ddl
 ./tools/testfiles/tdeflate.ddl
 ./tools/testfiles/tdset-1.ddl
 ./tools/testfiles/tdset-2.ddl
@@ -1541,60 +1537,60 @@
 ./tools/h5dump/errfiles/tslink-D.err
 
 # h5dump packed bits validation
-./tools/testfiles/tnofilename-with-packed-bits.ddl
-./tools/testfiles/tpbitsLengthPositive.ddl
-./tools/testfiles/tpbitsMaxExceeded.ddl
-./tools/testfiles/tpbitsSigned.ddl
-./tools/testfiles/tpbitsSigned2.ddl
-./tools/testfiles/tpbitsSigned4.ddl
-./tools/testfiles/tpbitsSignedWhole.ddl
-./tools/testfiles/tpbitsSignedInt.ddl
-./tools/testfiles/tpbitsSignedInt4.ddl
-./tools/testfiles/tpbitsSignedInt8.ddl
-./tools/testfiles/tpbitsSignedIntWhole.ddl
-./tools/testfiles/tpbitsSignedLong.ddl
-./tools/testfiles/tpbitsSignedLong8.ddl
-./tools/testfiles/tpbitsSignedLong16.ddl
-./tools/testfiles/tpbitsSignedLongWhole.ddl
-./tools/testfiles/tpbitsSignedLongLong.ddl
-./tools/testfiles/tpbitsSignedLongLong16.ddl
-./tools/testfiles/tpbitsSignedLongLong32.ddl
-./tools/testfiles/tpbitsSignedLongLongWhole.ddl
-./tools/testfiles/tpbitsSignedLongLongWhole1.ddl
-./tools/testfiles/tpbitsSignedLongLongWhole63.ddl
-./tools/testfiles/tpbitsOffsetNegative.ddl
-./tools/testfiles/tpbitsUnsigned.ddl
-./tools/testfiles/tpbitsUnsigned2.ddl
-./tools/testfiles/tpbitsUnsigned4.ddl
-./tools/testfiles/tpbitsUnsignedWhole.ddl
-./tools/testfiles/tpbitsUnsignedInt.ddl
-./tools/testfiles/tpbitsUnsignedInt4.ddl
-./tools/testfiles/tpbitsUnsignedInt8.ddl
-./tools/testfiles/tpbitsUnsignedIntWhole.ddl
-./tools/testfiles/tpbitsUnsignedLong.ddl
-./tools/testfiles/tpbitsUnsignedLong8.ddl
-./tools/testfiles/tpbitsUnsignedLong16.ddl
-./tools/testfiles/tpbitsUnsignedLongWhole.ddl
-./tools/testfiles/tpbitsUnsignedLongLong.ddl
-./tools/testfiles/tpbitsUnsignedLongLong16.ddl
-./tools/testfiles/tpbitsUnsignedLongLong32.ddl
-./tools/testfiles/tpbitsUnsignedLongLongWhole.ddl
-./tools/testfiles/tpbitsUnsignedLongLongWhole1.ddl
-./tools/testfiles/tpbitsUnsignedLongLongWhole63.ddl
-./tools/testfiles/tpbitsMax.ddl
+./tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
+./tools/testfiles/pbits/tpbitsLengthPositive.ddl
+./tools/testfiles/pbits/tpbitsMaxExceeded.ddl
+./tools/testfiles/pbits/tpbitsSigned.ddl
+./tools/testfiles/pbits/tpbitsSigned2.ddl
+./tools/testfiles/pbits/tpbitsSigned4.ddl
+./tools/testfiles/pbits/tpbitsSignedWhole.ddl
+./tools/testfiles/pbits/tpbitsSignedInt.ddl
+./tools/testfiles/pbits/tpbitsSignedInt4.ddl
+./tools/testfiles/pbits/tpbitsSignedInt8.ddl
+./tools/testfiles/pbits/tpbitsSignedIntWhole.ddl
+./tools/testfiles/pbits/tpbitsSignedLong.ddl
+./tools/testfiles/pbits/tpbitsSignedLong8.ddl
+./tools/testfiles/pbits/tpbitsSignedLong16.ddl
+./tools/testfiles/pbits/tpbitsSignedLongWhole.ddl
+./tools/testfiles/pbits/tpbitsSignedLongLong.ddl
+./tools/testfiles/pbits/tpbitsSignedLongLong16.ddl
+./tools/testfiles/pbits/tpbitsSignedLongLong32.ddl
+./tools/testfiles/pbits/tpbitsSignedLongLongWhole.ddl
+./tools/testfiles/pbits/tpbitsSignedLongLongWhole1.ddl
+./tools/testfiles/pbits/tpbitsSignedLongLongWhole63.ddl
+./tools/testfiles/pbits/tpbitsOffsetNegative.ddl
+./tools/testfiles/pbits/tpbitsUnsigned.ddl
+./tools/testfiles/pbits/tpbitsUnsigned2.ddl
+./tools/testfiles/pbits/tpbitsUnsigned4.ddl
+./tools/testfiles/pbits/tpbitsUnsignedWhole.ddl
+./tools/testfiles/pbits/tpbitsUnsignedInt.ddl
+./tools/testfiles/pbits/tpbitsUnsignedInt4.ddl
+./tools/testfiles/pbits/tpbitsUnsignedInt8.ddl
+./tools/testfiles/pbits/tpbitsUnsignedIntWhole.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLong.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLong8.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLong16.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLongWhole.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLongLong.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLongLong16.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLongLong32.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLongLongWhole.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLongLongWhole1.ddl
+./tools/testfiles/pbits/tpbitsUnsignedLongLongWhole63.ddl
+./tools/testfiles/pbits/tpbitsMax.ddl
+./tools/testfiles/pbits/tpbitsArray.ddl
+./tools/testfiles/pbits/tpbitsCompound.ddl
+./tools/testfiles/pbits/tpbitsIncomplete.ddl
+./tools/testfiles/pbits/tpbitsLengthExceeded.ddl
+./tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl
+./tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl
+./tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl
+./tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
+./tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl
+./tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl
+./tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl
+./tools/testfiles/pbits/tpbitsOverlapped.ddl
 ./tools/testfiles/packedbits.h5
-./tools/testfiles/tpbitsArray.ddl
-./tools/testfiles/tpbitsCompound.ddl
-./tools/testfiles/tpbitsIncomplete.ddl
-./tools/testfiles/tpbitsLengthExceeded.ddl
-./tools/testfiles/tpbitsCharLengthExceeded.ddl
-./tools/testfiles/tpbitsIntLengthExceeded.ddl
-./tools/testfiles/tpbitsLongLengthExceeded.ddl
-./tools/testfiles/tpbitsOffsetExceeded.ddl
-./tools/testfiles/tpbitsCharOffsetExceeded.ddl
-./tools/testfiles/tpbitsIntOffsetExceeded.ddl
-./tools/testfiles/tpbitsLongOffsetExceeded.ddl
-./tools/testfiles/tpbitsOverlapped.ddl
 
 # h5dump h5import validation
 ./tools/testfiles/out3.h5import
@@ -2254,12 +2250,14 @@
 ./config/cmake/cacheinit.cmake
 ./config/cmake/ConversionTests.c
 ./config/cmake/ConfigureChecks.cmake
+./config/cmake/CPack.Info.plist.in
 ./config/cmake/CTestCustom.cmake
 ./config/cmake/FindHDF5.cmake.in
 ./config/cmake/H5cxx_config.h.in
 ./config/cmake/H5pubconf.h.in
 ./config/cmake/hdf5-config.cmake.in
 ./config/cmake/hdf5-config-version.cmake.in
+./config/cmake/HDFCompilerFlags.cmake
 ./config/cmake/HDF5Macros.cmake
 ./config/cmake/libhdf5.settings.cmake.in
 ./config/cmake/mccacheinit.cmake
@@ -2271,7 +2269,6 @@
 
 ./config/cmake_ext_mod/CheckTypeSize.cmake
 ./config/cmake_ext_mod/ConfigureChecks.cmake
-./config/cmake_ext_mod/CPack.Info.plist.in
 ./config/cmake_ext_mod/CTestCustom.cmake
 ./config/cmake_ext_mod/FindMPI.cmake
 ./config/cmake_ext_mod/FindSZIP.cmake
@@ -2370,3 +2367,7 @@
 ./tools/misc/CMakeTests.cmake
 ./tools/perform/CMakeLists.txt
 ./tools/perform/CMakeTests.cmake
+
+# CMake-specific User Scripts
+./config/cmake/scripts/CTestScript.cmake
+./config/cmake/scripts/HDF518config.cmake
diff --git a/README.txt b/README.txt
index be8dc16..31646fb 100644
--- a/README.txt
+++ b/README.txt
@@ -1,22 +1,16 @@
-HDF5 version 1.8.15-patch1 released on 2015-05-28
+HDF5 version 1.8.16 released on 2015-11-10
 Please refer to the release_docs/INSTALL file for installation instructions.
 ------------------------------------------------------------------------------
 
 This release is fully functional for the API described in the documentation. 
-
 See the RELEASE.txt file in the release_docs/ directory for information 
-specific to this release of the library.  
-
-Several INSTALL* files can also be found in the release_docs/ directory:  
- - INSTALL contains instructions for compiling and installing the HDF5 library  
- - INSTALL_parallel contains instructions for installing the parallel HDF5
-   library
- - Similarly-named files contain instructions for building with CMake on 
-   Windows and UNIX systems. 
-
-The HDF5 website is located at http://hdfgroup.org/HDF5/
+specific to this release of the library.  Several INSTALL* files can also be 
+found in the release_docs/ directory:  INSTALL contains instructions for 
+compiling and installing the library;  INSTALL_parallel contains instructions 
+for installing the parallel version of the library;  similarly-named files
+contain instructions for several environments on MS Windows systems. 
 
-Documentation for HDF5 can be found at the following URL:
+Documentation for this release can be found at the following URL:
     http://www.hdfgroup.org/HDF5/doc/.
 
 The following  mailing lists are currently set up for HDF5 Library users:
@@ -39,4 +33,6 @@ Periodic code snapshots are provided at the following URL:
 Please read the README.txt file in that directory before working with a 
 library snapshot.
 
-Bugs and requests should be sent to help at hdfgroup.org.
+The HDF5 website is located at http://hdfgroup.org/HDF5/
+
+Bugs should be reported to help at hdfgroup.org.
diff --git a/bin/h5vers b/bin/h5vers
index 2aa8023..169f89b 100755
--- a/bin/h5vers
+++ b/bin/h5vers
@@ -243,6 +243,14 @@ if ($set) {
   @newver = @curver;
 }
 
+# Note if the new version is for an official release.
+# if the fourth version field is empty or contains "patch",
+# "currently under development" shouldn't be printed as 
+# part of the version string.
+my $is_official_release="";
+if ($newver[3] eq "" || $newver[3] =~ /patch\d/) {
+    $is_official_release="true";
+}
 # Note if the version increased or decreased
 my $version_increased="";
 # Print a warning if the version got smaller (don't check annot field)
@@ -276,25 +284,29 @@ if ($LT_VERS && $version_increased) {
   close FILE;
 
   local($_) = $contentsy;
-
-  my ($lt_revision) = /^LT_VERS_REVISION\s*=\s*(\d+)/m;
-  my $new_lt_revision = $lt_revision+1;
-  ($contentsy) =~ s/^(LT_VERS_REVISION\s*=\s*)\d+/$1$new_lt_revision/m;
-
-  open FILE, ">$LT_VERS" or die "$LT_VERS: $!\n";
-  print FILE $contentsy;
-  close FILE;
+  
+  # As of the HDF5 v1.8.16 release, h5vers should not increment
+  # the LT_VERS numbers, so the next 6 lines are commented out.
+  # A future version may copy the numbers to H5public.h, so this
+  # section is retained for future reference.
+  #my ($lt_revision) = /^LT_VERS_REVISION\s*=\s*(\d+)/m;
+  #my $new_lt_revision = $lt_revision+1;
+  #($contentsy) =~ s/^(LT_VERS_REVISION\s*=\s*)\d+/$1$new_lt_revision/m;
+
+  #open FILE, ">$LT_VERS" or die "$LT_VERS: $!\n";
+  #print FILE $contentsy;
+  #close FILE;
 }
 
+
 # Update the README.txt file
 if ($README) {
   open FILE, $README or die "$README: $!\n";
   my @contents = <FILE>;
   close FILE;
-  $contents[0] = sprintf("HDF5 version %d.%d.%d%s %s",
+  $contents[0] = sprintf("HDF5 version %d.%d.%d%s\n",
 			 @newver[0,1,2],
-			 $newver[3] eq "" ? "" : "-".$newver[3],
-			 "currently under development\n");
+			 $is_official_release ? $newver[3] eq "" ? "" : "-".$newver[3] : "-".$newver[3]." currently under development");
   open FILE, ">$README" or die "$README: $!\n";
   print FILE @contents;
   close FILE;
@@ -305,10 +317,9 @@ if ($RELEASE) {
   open FILE, $RELEASE or die "$RELEASE: $!\n";
   my @contents = <FILE>;
   close FILE;
-  $contents[0] = sprintf("HDF5 version %d.%d.%d%s %s",
+  $contents[0] = sprintf("HDF5 version %d.%d.%d%s\n",
 			 @newver[0,1,2],
-			 $newver[3] eq "" ? "" : "-".$newver[3],
-			 "currently under development\n");
+                         $is_official_release ? $newver[3] eq "" ? "" : "-".$newver[3] : "-".$newver[3]." currently under development");
   open FILE, ">$RELEASE" or die "$RELEASE: $!\n";
   print FILE @contents;
   close FILE;
@@ -317,10 +328,9 @@ if ($RELEASE) {
 # Update the c++/src/cpp_doc_config file
 if ($CPP_DOC_CONFIG) {
   my $data = read_file($CPP_DOC_CONFIG);
-  my $version_string = sprintf("HDF5 version %d.%d.%d%s %s",
-                               @newver[0,1,2],
-                               $newver[3] eq "" ? "" : "-".$newver[3],
-                               "currently under development");
+  my $version_string = sprintf("\"%d.%d.%d%s\"",
+                           @newver[0,1,2],
+                           $is_official_release ? $newver[3] eq "" ? "" : "-".$newver[3] : "-".$newver[3]." currently under development");
 
   $data =~ s/PROJECT_NUMBER\s*=.*/PROJECT_NUMBER         = $version_string/;
 
diff --git a/bin/snapshot b/bin/snapshot
index b4adf5e..a496edd 100755
--- a/bin/snapshot
+++ b/bin/snapshot
@@ -67,8 +67,8 @@ ReleaseDir_default=release_dir
 ZLIB_default=
 ZLIB=$ZLIB_default
 
-# What compression methods to use? (md5 does checksum).
-METHODS="gzip zip bzip2 md5 doc"
+# What compression methods to use? 
+METHODS="gzip zip bzip2 doc"
 
 # Use User's MAKE if set.  Else use generic make.
 MAKE=${MAKE:-make}
diff --git a/bin/trace b/bin/trace
index f2eaf3b..3f23a26 100755
--- a/bin/trace
+++ b/bin/trace
@@ -176,7 +176,7 @@ sub argstring ($$$) {
   # Normalize the data type by removing redundant white space,
   # certain type qualifiers, and indirection.
   $atype =~ s/^\bconst\b//;
-  $atype =~ s/\bUNUSED\b//g;
+  $atype =~ s/\bH5_ATTR_UNUSED\b//g;
   $atype =~ s/\s+/ /g;
   $ptr = length $1 if  $atype =~ s/(\*+)//;
   $atype =~ s/^\s+//;
diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt
index 39280e8..6f288a0 100644
--- a/c++/CMakeLists.txt
+++ b/c++/CMakeLists.txt
@@ -7,15 +7,6 @@ PROJECT (HDF5_CPP)
 add_definitions (${HDF_EXTRA_C_FLAGS})
 
 #-----------------------------------------------------------------------------
-# Shared/Static Libs
-#-----------------------------------------------------------------------------
-if (BUILD_SHARED_LIBS)
-  set (CPP_BUILT_AS_DYNAMIC_LIB 1)
-else (BUILD_SHARED_LIBS)
-  set (CPP_BUILT_AS_STATIC_LIB 1)
-endif (BUILD_SHARED_LIBS)
-
-#-----------------------------------------------------------------------------
 # Generate configure file
 #-----------------------------------------------------------------------------
 configure_file (${HDF_RESOURCES_DIR}/H5cxx_config.h.in
diff --git a/c++/examples/CMakeLists.txt b/c++/examples/CMakeLists.txt
index ff375f3..cfcdd8d 100644
--- a/c++/examples/CMakeLists.txt
+++ b/c++/examples/CMakeLists.txt
@@ -34,16 +34,16 @@ set (tutr_examples
 
 foreach (example ${examples})
   add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
-  TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (cpp_ex_${example} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (cpp_ex_${example} STATIC)
+  TARGET_C_PROPERTIES (cpp_ex_${example} STATIC " " " ")
   target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
 endforeach (example ${examples})
 
 foreach (example ${tutr_examples})
   add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
-  TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (cpp_ex_${example} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (cpp_ex_${example} STATIC)
+  TARGET_C_PROPERTIES (cpp_ex_${example} STATIC " " " ")
   target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
 endforeach (example ${tutr_examples})
diff --git a/c++/examples/Makefile.am b/c++/examples/Makefile.am
index 2408217..61b72ce 100644
--- a/c++/examples/Makefile.am
+++ b/c++/examples/Makefile.am
@@ -51,8 +51,8 @@ CXX_API=yes
 
 # Where to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++
-EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples
+EXAMPLEDIR=${DESTDIR}$(datarootdir)/hdf5_examples/c++
+EXAMPLETOPDIR=${DESTDIR}$(datarootdir)/hdf5_examples
 
 # How to build programs using h5c++
 $(EXTRA_PROG): $(H5CPP)
diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in
index 03bd135..698ad4b 100644
--- a/c++/examples/Makefile.in
+++ b/c++/examples/Makefile.in
@@ -626,8 +626,8 @@ CXX_API = yes
 
 # Where to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++
-EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples
+EXAMPLEDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/c++
+EXAMPLETOPDIR = ${DESTDIR}$(datarootdir)/hdf5_examples
 
 # Assume that all tests in this directory are examples, and tell
 # conclude.am when to build them.
diff --git a/c++/examples/run-c++-ex.sh.in b/c++/examples/run-c++-ex.sh.in
index 77ac36a..c291bb2 100644
--- a/c++/examples/run-c++-ex.sh.in
+++ b/c++/examples/run-c++-ex.sh.in
@@ -34,7 +34,7 @@ EXIT_FAILURE=1
 
 # Where the tool is installed.
 # default is relative path to installed location of the tools
-prefix="${prefix:-../../../}"
+prefix="${prefix:-../../..}"
 AR="@AR@"
 RANLIB="@RANLIB@"
 H5TOOL="h5c++"                  # The tool name
diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt
index 2f3a0c4..1a182e3 100644
--- a/c++/src/CMakeLists.txt
+++ b/c++/src/CMakeLists.txt
@@ -2,13 +2,6 @@ cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_CPP_SRC)
 
 #-----------------------------------------------------------------------------
-# Shared/Static Libs
-#-----------------------------------------------------------------------------
-if (BUILD_SHARED_LIBS)
-  set (CPP_BUILT_AS_DYNAMIC_LIB 1)
-endif (BUILD_SHARED_LIBS)
-
-#-----------------------------------------------------------------------------
 # Generate configure file
 #-----------------------------------------------------------------------------
 configure_file (${HDF_RESOURCES_DIR}/H5cxx_config.h.in
@@ -42,6 +35,7 @@ set (CPP_SRCS
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5Library.cpp
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5Location.cpp
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5Object.cpp
+    ${HDF5_CPP_SRC_SOURCE_DIR}/H5OcreatProp.cpp
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5PredType.cpp
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5PropList.cpp
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5StrType.cpp
@@ -77,24 +71,41 @@ set (CPP_HDRS
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5Library.h
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5Location.h
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5Object.h
+    ${HDF5_CPP_SRC_SOURCE_DIR}/H5OcreatProp.h
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5PredType.h
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5PropList.h
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5StrType.h
     ${HDF5_CPP_SRC_SOURCE_DIR}/H5VarLenType.h
 )
 
-add_library (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} ${CPP_SRCS} ${CPP_HDRS})
-TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} " " " ")
+add_library (${HDF5_CPP_LIB_TARGET} STATIC ${CPP_SRCS} ${CPP_HDRS})
+TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} STATIC)
 set_target_properties (${HDF5_CPP_LIB_TARGET} PROPERTIES
     FOLDER libraries/cpp
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
+set (install_targets ${HDF5_CPP_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS)
+  add_library (${HDF5_CPP_LIBSH_TARGET} SHARED ${CPP_SRCS} ${CPP_HDRS})
+  TARGET_C_PROPERTIES (${HDF5_CPP_LIBSH_TARGET} SHARED " " " ")
+  target_link_libraries (${HDF5_CPP_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIBSH_TARGET}")
+  H5_SET_LIB_OPTIONS (${HDF5_CPP_LIBSH_TARGET} ${HDF5_CPP_LIB_NAME} SHARED ${HDF5_CXX_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_CPP_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/cpp
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+  set (install_targets ${install_targets} ${HDF5_CPP_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS)
 
 #-----------------------------------------------------------------------------
-# Add file(s) to CMake Install 
+# Add file(s) to CMake Install
 #-----------------------------------------------------------------------------
 install (
     FILES
@@ -110,16 +121,17 @@ install (
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries)
+    INSTALL_TARGET_PDB (${HDF5_CPP_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries)
   endif (BUILD_SHARED_LIBS)
-  
+
   install (
       TARGETS
-          ${HDF5_CPP_LIB_TARGET}
+          ${install_targets}
       EXPORT
           ${HDF5_EXPORTED_TARGETS}
       LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
       ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
       RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT cpplibraries
+      FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT cpplibraries
   )
 endif (HDF5_EXPORTED_TARGETS)
diff --git a/c++/src/H5AbstractDs.cpp b/c++/src/H5AbstractDs.cpp
index d59c1eb..06b3e22 100644
--- a/c++/src/H5AbstractDs.cpp
+++ b/c++/src/H5AbstractDs.cpp
@@ -22,6 +22,7 @@
 #include "H5Object.h"
 #include "H5AbstractDs.h"
 #include "H5DataSpace.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5Alltypes.h"
@@ -51,18 +52,6 @@ AbstractDs::AbstractDs(){}
 AbstractDs::AbstractDs(const hid_t ds_id){}
 
 //--------------------------------------------------------------------------
-// Function:	AbstractDs copy constructor
-///\brief	Copy constructor: makes a copy of the original AbstractDs object.
-// Programmer	Binh-Minh Ribler - 2000
-// *** Deprecation warning ***
-// This constructor is no longer appropriate because the data member "id" had
-// been moved to the sub-classes.  It is removed from 1.8.15 because it is
-// a noop and it can be generated by the compiler if needed.
-//--------------------------------------------------------------------------
-//--------------------------------------------------------------------------
-// AbstractDs::AbstractDs(const AbstractDs& original){}
-
-//--------------------------------------------------------------------------
 // Function:	AbstractDs::getTypeClass
 ///\brief	Returns the class of the datatype that is used by this
 ///		object, which can be a dataset or an attribute.
diff --git a/c++/src/H5ArrayType.cpp b/c++/src/H5ArrayType.cpp
index 8807dca..85340f8 100644
--- a/c++/src/H5ArrayType.cpp
+++ b/c++/src/H5ArrayType.cpp
@@ -20,6 +20,7 @@
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
diff --git a/c++/src/H5AtomType.cpp b/c++/src/H5AtomType.cpp
index 09f762f..90c2ae3 100644
--- a/c++/src/H5AtomType.cpp
+++ b/c++/src/H5AtomType.cpp
@@ -20,6 +20,7 @@
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp
index 71cd431..6705739 100644
--- a/c++/src/H5Attribute.cpp
+++ b/c++/src/H5Attribute.cpp
@@ -28,6 +28,7 @@
 #include "H5AbstractDs.h"
 #include "H5FaccProp.h"
 #include "H5FcreatProp.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
@@ -45,6 +46,7 @@ namespace H5 {
 #endif
 
 class H5_DLLCPP H5Object;  // forward declaration for UserData4Aiterate
+
 //--------------------------------------------------------------------------
 // Function:	Attribute default constructor
 ///\brief	Default constructor: Creates a stub attribute
@@ -610,6 +612,7 @@ void Attribute::p_read_variable_len(const DataType& mem_type, H5std_string& strg
     HDfree(strg_C);
 }
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
 //--------------------------------------------------------------------------
 // Function:    Attribute::p_setId
 ///\brief       Sets the identifier of this object to a new value.
@@ -634,6 +637,7 @@ void Attribute::p_setId(const hid_t new_id)
    // reset object's id to the given id
    id = new_id;
 }
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
 // Function:	Attribute::close
diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h
index f936f04..f5ee4a9 100644
--- a/c++/src/H5Attribute.h
+++ b/c++/src/H5Attribute.h
@@ -86,9 +86,11 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
 	// Destructor: properly terminates access to this attribute.
 	virtual ~Attribute();
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
    protected:
 	// Sets the attribute id.
 	virtual void p_setId(const hid_t new_id);
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
    private:
 	hid_t id;	// HDF5 attribute id
diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp
index 42a8ffd..a482fc2 100644
--- a/c++/src/H5CommonFG.cpp
+++ b/c++/src/H5CommonFG.cpp
@@ -22,6 +22,7 @@
 #include "H5Object.h"
 #include "H5FaccProp.h"
 #include "H5FcreatProp.h"
+#include "H5OcreatProp.h"
 #include "H5DxferProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
@@ -1128,7 +1129,7 @@ H5O_type_t CommonFG::childObjType(hsize_t index, H5_index_t index_type, H5_iter_
 unsigned CommonFG::childObjVersion(const char* objname) const
 {
     H5O_info_t objinfo;
-    unsigned version = -1;
+    unsigned version = 0;
 
     // Use C API to get information of the object
     herr_t ret_value = H5Oget_info_by_name(getLocId(), objname, &objinfo, H5P_DEFAULT);
@@ -1266,7 +1267,7 @@ CommonFG::~CommonFG() {}
 //--------------------------------------------------------------------------
 void f_DataType_setId(DataType* dtype, hid_t new_id)
 {
-    dtype->id = new_id;
+    dtype->p_setId(new_id);
 }
 
 //--------------------------------------------------------------------------
@@ -1281,7 +1282,7 @@ void f_DataType_setId(DataType* dtype, hid_t new_id)
 //--------------------------------------------------------------------------
 void f_DataSet_setId(DataSet* dset, hid_t new_id)
 {
-    dset->id = new_id;
+    dset->p_setId(new_id);
 }
 
 #endif // DOXYGEN_SHOULD_SKIP_THIS
diff --git a/c++/src/H5CompType.cpp b/c++/src/H5CompType.cpp
index 393aafc..6d31a68 100644
--- a/c++/src/H5CompType.cpp
+++ b/c++/src/H5CompType.cpp
@@ -20,6 +20,7 @@
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5Alltypes.h"
diff --git a/c++/src/H5Cpp.h b/c++/src/H5Cpp.h
index 044108b..4e82ee3 100644
--- a/c++/src/H5Cpp.h
+++ b/c++/src/H5Cpp.h
@@ -26,6 +26,7 @@
 #include "H5Object.h"
 #include "H5AbstractDs.h"
 #include "H5Attribute.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
diff --git a/c++/src/H5CppDoc.h b/c++/src/H5CppDoc.h
index 388fc25..2420586 100644
--- a/c++/src/H5CppDoc.h
+++ b/c++/src/H5CppDoc.h
@@ -29,10 +29,10 @@
  * The C++ API provides C++ wrappers for the HDF5 C Library.
  * 
  * It is assumed that the user has knowledge of the 
- * <a href="http://www.hdfgroup.org/HDF5/doc/H5.format.html">
+ * <a href="https://www.hdfgroup.org/HDF5/doc/H5.format.html">
  * HDF5 file format</a> and its components. 
  * For more information on the HDF5 C Library, see the 
- * <a href="http://www.hdfgroup.org/HDF5/doc/index.html"> 
+ * <a href="https://www.hdfgroup.org/HDF5/doc/index.html"> 
  * HDF5 Software Documentation</a> page.
  *
  * Because the HDF5 C Library maps very well to
@@ -57,8 +57,8 @@
  *
  * The HDF5 C++ API is included with the HDF5 source code and can 
  * be obtained from 
- * <a href="http://www.hdfgroup.org/HDF5/release/obtainsrc.html">
- * http://www.hdfgroup.org/HDF5/release/obtainsrc.html</a>.
+ * <a href="https://www.hdfgroup.org/HDF5/release/obtainsrc.html">
+ * https://www.hdfgroup.org/HDF5/release/obtainsrc.html</a>.
  * 
  * Please refer to the release_docs/INSTALL file under the top directory 
  * of the HDF5 source code for information about installing, building, 
diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp
index b134d39..af1277a 100644
--- a/c++/src/H5DataSet.cpp
+++ b/c++/src/H5DataSet.cpp
@@ -26,6 +26,7 @@
 #include "H5PropList.h"
 #include "H5Object.h"
 #include "H5PropList.h"
+#include "H5OcreatProp.h"
 #include "H5DxferProp.h"
 #include "H5DcreatProp.h"
 #include "H5FaccProp.h"
@@ -59,6 +60,12 @@ DataSet::DataSet() : H5Object(), AbstractDs(), id(H5I_INVALID_HID) {}
 ///\brief	Creates an DataSet object using the id of an existing dataset.
 ///\param	existing_id - IN: Id of an existing dataset
 // Programmer	Binh-Minh Ribler - 2000
+// Description
+//		incRefCount() is needed here to prevent the id from being closed
+//		prematurely.  That is, when application uses the id of an
+//		existing DataSet object to create another DataSet object.  So,
+//		when one of those objects is deleted, the id will be closed if
+//		the reference counter is only 1.
 //--------------------------------------------------------------------------
 DataSet::DataSet(const hid_t existing_id) : H5Object(), AbstractDs()
 {
@@ -169,8 +176,10 @@ DSetCreatPropList DataSet::getCreatePlist() const
    {
       throw DataSetIException("DataSet::getCreatePlist", "H5Dget_create_plist failed");
    }
+
    // create and return the DSetCreatPropList object
-   DSetCreatPropList create_plist(create_plist_id); // ok to use existing id const
+   DSetCreatPropList create_plist;
+   f_PropList_setId(&create_plist, create_plist_id);
    return(create_plist);
 }
 
@@ -769,6 +778,22 @@ void DataSet::p_setId(const hid_t new_id)
    // reset object's id to the given id
    id = new_id;
 }
+
+//--------------------------------------------------------------------------
+// Function:    f_PropList_setId - friend
+// Purpose:     This function is friend to class H5::PropList so that it
+//              can set PropList::id in order to work around a problem
+//              described in the JIRA issue HDFFV-7947.
+//              Applications shouldn't need to use it.
+// param        dset   - IN/OUT: DataSet object to be changed
+// param        new_id - IN: New id to set
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void f_PropList_setId(PropList* plist, hid_t new_id)
+{
+    plist->p_setId(new_id);
+}
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
diff --git a/c++/src/H5DataSpace.cpp b/c++/src/H5DataSpace.cpp
index d9c262d..311180f 100644
--- a/c++/src/H5DataSpace.cpp
+++ b/c++/src/H5DataSpace.cpp
@@ -33,10 +33,60 @@ namespace H5 {
 #endif  // H5_NO_STD
 #endif
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// This DOXYGEN_SHOULD_SKIP_THIS block is a work-around approach to control
+// the order of creation and deletion of the global constants.  See Design Notes
+// in "H5PredType.cpp" for information.
+
+// Initialize a pointer for the constant
+DataSpace* DataSpace::ALL_ = 0;
+
 //--------------------------------------------------------------------------
-///\brief	Constant for default dataspace.
+// Function:	DataSpace::getConstant
+//		Creates a DataSpace object representing the HDF5 constant
+//		H5S_ALL, pointed to by DataSpace::ALL_
+// Exception	H5::DataSpaceIException
+// Description
+//		If DataSpace::ALL_ already points to an allocated object, throw
+//		a DataSpaceIException.  This scenario should not happen.
+// Programmer	Binh-Minh Ribler - 2015
 //--------------------------------------------------------------------------
-const DataSpace DataSpace::ALL( H5S_ALL );
+DataSpace* DataSpace::getConstant()
+{
+    // Tell the C library not to clean up, H5Library::termH5cpp will call
+    // H5close - more dependency if use H5Library::dontAtExit()
+    if (!IdComponent::H5dontAtexit_called)
+    {
+        (void) H5dont_atexit();
+        IdComponent::H5dontAtexit_called = true;
+    }
+
+    // If the constant pointer is not allocated, allocate it. Otherwise,
+    // throw because it shouldn't be.
+    if (ALL_ == 0)
+        ALL_ = new DataSpace(H5S_ALL);
+    else
+        throw DataSpaceIException("DataSpace::getConstant", "DataSpace::getConstant is being invoked on an allocated ALL_");
+    return(ALL_);
+}
+
+//--------------------------------------------------------------------------
+// Function:    DataSpace::deleteConstants
+// Purpose:     Deletes the constant object that DataSpace::ALL_ points to
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void DataSpace::deleteConstants()
+{
+    if (ALL_ != 0)
+        delete ALL_;
+}
+
+//--------------------------------------------------------------------------
+// Purpose	Constant for default dataspace.
+//--------------------------------------------------------------------------
+const DataSpace& DataSpace::ALL = *getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
 // Function:	DataSpace constructor
diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h
index 48575a1..4cbe62c 100644
--- a/c++/src/H5DataSpace.h
+++ b/c++/src/H5DataSpace.h
@@ -24,8 +24,8 @@ namespace H5 {
 //! Class DataSpace operates on HDF5 dataspaces.
 class H5_DLLCPP DataSpace : public IdComponent {
    public:
-	// Default DataSpace objects
-	static const DataSpace ALL;
+	///\brief Default DataSpace objects
+	static const DataSpace& ALL;
 
 	// Creates a dataspace object given the space type
 	DataSpace(H5S_class_t type = H5S_SCALAR);
@@ -118,21 +118,34 @@ class H5_DLLCPP DataSpace : public IdComponent {
 	// Gets the dataspace id.
 	virtual hid_t getId() const;
 
+	// Deletes the global constant
+	static void deleteConstants();
+
 	// Destructor: properly terminates access to this dataspace.
 	virtual ~DataSpace();
 
-   private:
-	hid_t id;       // HDF5 dataspace id
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
 
    protected:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
 	// Sets the dataspace id.
 	virtual void p_setId(const hid_t new_id);
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
+   private:
+	hid_t id;       // HDF5 dataspace id
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+	static DataSpace* ALL_;
+
+	// Creates the global constant
+	static DataSpace* getConstant();
 
 	// Friend function to set DataSpace id.  For library use only.
 	friend void f_DataSpace_setId(DataSpace *dspace, hid_t new_id);
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 };
 #ifndef H5_NO_NAMESPACE
 }
diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp
index 714f55f..d98a0cf 100644
--- a/c++/src/H5DataType.cpp
+++ b/c++/src/H5DataType.cpp
@@ -28,6 +28,7 @@
 #include "H5Object.h"
 #include "H5FaccProp.h"
 #include "H5FcreatProp.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5DxferProp.h"
 #include "H5CommonFG.h"
@@ -142,7 +143,7 @@ DataType::DataType(const DataType& original) : H5Object()
 //--------------------------------------------------------------------------
 // Function:    DataType overloaded constructor
 ///\brief       Creates a DataType instance using a predefined type
-///\param       pred_type - IN: Predefined type instance
+///\param       pred_type - IN: Predefined datatype
 ///\exception   H5::DataTypeIException
 // Programmer   Binh-Minh Ribler - 2015
 // Description
@@ -156,7 +157,7 @@ DataType::DataType(const PredType& pred_type) : H5Object()
 {
     // call C routine to copy the datatype
     id = H5Tcopy( pred_type.getId() );
-    if( id < 0 )
+    if (id < 0)
 	throw DataTypeIException("DataType constructor", "H5Tcopy failed");
 }
 
@@ -236,8 +237,7 @@ DataType& DataType::operator=( const DataType& rhs )
 {
     if (this != &rhs)
     {
-	id = rhs.id;
-	incRefCount(); // increment number of references to this id
+	setId(rhs.id);
     }
     return(*this);
 }
@@ -758,23 +758,17 @@ void DataType::close()
 //		- Added the use of H5CPP_EXITED to terminate the HDF5 library
 //		  and elimiate previous memory leaks.  See comments in the
 //		  header file "H5PredType.h" for details. - BMR, Mar 30, 2012
+//		- Major re-implementation of the global constants was done
+//		  to avoid relying on the order of the creation and deletion
+//		  of the global constants.  Hence, H5CPP_EXITED was removed.
+//		  See Design Notes in "H5PredType.cpp" for details.
+//		  - BMR, Sep 30, 2015
 //--------------------------------------------------------------------------
 DataType::~DataType()
 {
     try
     {
-	/* If this is the object AtExit, terminate the HDF5 library.  This is
-	   to eliminate memory leaks due to the library being re-initiated
-	   (after the program has ended) and not re-terminated. */
-	if (id == H5CPP_EXITED)
-	{
-	    herr_t ret_value = H5close();
-	    if (ret_value == FAIL)
-		throw DataTypeIException(inMemFunc("~DataType - "), "H5close failed");
-	}
-	// Close the HDF5 datatype
-	else
-	    close();
+	close();
     }
     catch (Exception close_error) {
 	cerr << inMemFunc("~DataType - ") << close_error.getDetailMsg() << endl;
diff --git a/c++/src/H5DcreatProp.cpp b/c++/src/H5DcreatProp.cpp
index 2b124ee..60cf0fc 100644
--- a/c++/src/H5DcreatProp.cpp
+++ b/c++/src/H5DcreatProp.cpp
@@ -19,6 +19,7 @@
 #include "H5Exception.h"
 #include "H5IdComponent.h"
 #include "H5PropList.h"
+#include "H5OcreatProp.h"
 #include "H5Object.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
@@ -28,17 +29,70 @@
 namespace H5 {
 #endif
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// This DOXYGEN_SHOULD_SKIP_THIS block is a work-around approach to control
+// the order of creation and deletion of the global constants.  See Design Notes
+// in "H5PredType.cpp" for information.
+
+// Initialize a pointer for the constant
+DSetCreatPropList* DSetCreatPropList::DEFAULT_ = 0;
+
+//--------------------------------------------------------------------------
+// Function:    DSetCreatPropList::getConstant
+// Purpose:     Creates a DSetCreatPropList object representing the HDF5
+//              constant H5P_DATASET_CREATE, pointed to by
+//		DSetCreatPropList::DEFAULT_
+// exception    H5::PropListIException
+// Description
+//              If DSetCreatPropList::DEFAULT_ already points to an allocated
+//              object, throw a PropListIException.  This scenario should
+//              not happen.
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+DSetCreatPropList* DSetCreatPropList::getConstant()
+{
+    // Tell the C library not to clean up, H5Library::termH5cpp will call
+    // H5close - more dependency if use H5Library::dontAtExit()
+    if (!IdComponent::H5dontAtexit_called)
+    {
+        (void) H5dont_atexit();
+        IdComponent::H5dontAtexit_called = true;
+    }
+
+    // If the constant pointer is not allocated, allocate it. Otherwise,
+    // throw because it shouldn't be.
+    if (DEFAULT_ == 0)
+        DEFAULT_ = new DSetCreatPropList(H5P_DATASET_CREATE);
+    else
+        throw PropListIException("DSetCreatPropList::getConstant", "DSetCreatPropList::getConstant is being invoked on an allocated DEFAULT_");
+    return(DEFAULT_);
+}
+
+//--------------------------------------------------------------------------
+// Function:    DSetCreatPropList::deleteConstants
+// Purpose:     Deletes the constant object that DSetCreatPropList::DEFAULT_
+//              points to.
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void DSetCreatPropList::deleteConstants()
+{
+    if (DEFAULT_ != 0)
+        delete DEFAULT_;
+}
+
 //--------------------------------------------------------------------------
-///\brief	Constant for dataset creation default property
+// Purpose	Constant for dataset creation default property
 //--------------------------------------------------------------------------
-const DSetCreatPropList DSetCreatPropList::DEFAULT;
+const DSetCreatPropList& DSetCreatPropList::DEFAULT = *getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
 // Function:	DSetCreatPropList default constructor
 ///\brief	Default constructor: creates a stub dataset creation property list
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DSetCreatPropList::DSetCreatPropList() : PropList( H5P_DATASET_CREATE) {}
+DSetCreatPropList::DSetCreatPropList() : ObjCreatPropList(H5P_DATASET_CREATE) {}
 
 //--------------------------------------------------------------------------
 // Function:	DSetCreatPropList copy constructor
@@ -46,7 +100,7 @@ DSetCreatPropList::DSetCreatPropList() : PropList( H5P_DATASET_CREATE) {}
 ///		DSetCreatPropList object
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DSetCreatPropList::DSetCreatPropList( const DSetCreatPropList& orig ) : PropList( orig ) {}
+DSetCreatPropList::DSetCreatPropList( const DSetCreatPropList& orig ) : ObjCreatPropList(orig) {}
 
 //--------------------------------------------------------------------------
 // Function:	DSetCreatPropList overloaded constructor
@@ -54,7 +108,7 @@ DSetCreatPropList::DSetCreatPropList( const DSetCreatPropList& orig ) : PropList
 ///		existing dataset creation property list.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DSetCreatPropList::DSetCreatPropList(const hid_t plist_id) : PropList(plist_id) {}
+DSetCreatPropList::DSetCreatPropList(const hid_t plist_id) : ObjCreatPropList(plist_id) {}
 
 //--------------------------------------------------------------------------
 // Function:	DSetCreatPropList::setChunk
diff --git a/c++/src/H5DcreatProp.h b/c++/src/H5DcreatProp.h
index c643ace..792956a 100644
--- a/c++/src/H5DcreatProp.h
+++ b/c++/src/H5DcreatProp.h
@@ -28,10 +28,10 @@ namespace H5 {
     \brief Class DSetCreatPropList represents the dataset creation property
     list.
 */
-class H5_DLLCPP DSetCreatPropList : public PropList {
+class H5_DLLCPP DSetCreatPropList : public ObjCreatPropList {
    public:
-	// Default dataset creation property list.
-	static const DSetCreatPropList DEFAULT;
+	///\brief Default dataset creation property list.
+	static const DSetCreatPropList& DEFAULT;
 
 	// Creates a dataset creation property list.
 	DSetCreatPropList();
@@ -126,6 +126,19 @@ class H5_DLLCPP DSetCreatPropList : public PropList {
 
 	// Noop destructor.
 	virtual ~DSetCreatPropList();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+        // Deletes the global constant, should only be used by the library
+        static void deleteConstants();
+
+    private:
+	static DSetCreatPropList* DEFAULT_;
+
+        // Creates the global constant, should only be used by the library
+        static DSetCreatPropList* getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 };
 #ifndef H5_NO_NAMESPACE
 }
diff --git a/c++/src/H5DxferProp.cpp b/c++/src/H5DxferProp.cpp
index 1f4a638..49bbfe6 100644
--- a/c++/src/H5DxferProp.cpp
+++ b/c++/src/H5DxferProp.cpp
@@ -22,24 +22,67 @@
 #include "H5DxferProp.h"
 #include "H5private.h"		// for HDmemset
 
-#include <iostream>
-
 #ifndef H5_NO_NAMESPACE
-#ifndef H5_NO_STD
-    using std::cerr;
-    using std::endl;
-#endif  // H5_NO_STD
+namespace H5 {
 #endif
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// This DOXYGEN_SHOULD_SKIP_THIS block is a work-around approach to control
+// the order of creation and deletion of the global constants.  See Design Notes
+// in "H5PredType.cpp" for information.
 
-#ifndef H5_NO_NAMESPACE
-namespace H5 {
-#endif
+// Initialize a pointer for the constant
+DSetMemXferPropList* DSetMemXferPropList::DEFAULT_ = 0;
 
 //--------------------------------------------------------------------------
-///\brief	Constant for default dataset memory and transfer property list.
+// Function:    DSetMemXferPropList::getConstant
+//              Creates a DSetMemXferPropList object representing the HDF5
+//              constant H5P_DATASET_XFER, pointed to by
+//		DSetMemXferPropList::DEFAULT_
+// exception    H5::PropListIException
+// Description
+//              If DSetMemXferPropList::DEFAULT_ already points to an allocated
+//              object, throw a PropListIException.  This scenario should not
+//              happen.
+// Programmer   Binh-Minh Ribler - 2015
 //--------------------------------------------------------------------------
-const DSetMemXferPropList DSetMemXferPropList::DEFAULT;
+DSetMemXferPropList* DSetMemXferPropList::getConstant()
+{
+    // Tell the C library not to clean up, H5Library::termH5cpp will call
+    // H5close - more dependency if use H5Library::dontAtExit()
+    if (!IdComponent::H5dontAtexit_called)
+    {
+        (void) H5dont_atexit();
+        IdComponent::H5dontAtexit_called = true;
+    }
+
+    // If the constant pointer is not allocated, allocate it. Otherwise,
+    // throw because it shouldn't be.
+    if (DEFAULT_ == 0)
+        DEFAULT_ = new DSetMemXferPropList(H5P_DATASET_XFER);
+    else
+        throw PropListIException("DSetMemXferPropList::getConstant", "DSetMemXferPropList::getConstant is being invoked on an allocated DEFAULT_");
+    return(DEFAULT_);
+}
+
+//--------------------------------------------------------------------------
+// Function:    DSetMemXferPropList::deleteConstants
+// Purpose:     Deletes the constant object that DSetMemXferPropList::DEFAULT_
+//              points to.
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void DSetMemXferPropList::deleteConstants()
+{
+    if (DEFAULT_ != 0)
+        delete DEFAULT_;
+}
+
+//--------------------------------------------------------------------------
+// Purpose	Constant for default dataset memory and transfer property list.
+//--------------------------------------------------------------------------
+const DSetMemXferPropList& DSetMemXferPropList::DEFAULT = *getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
 // Function	DSetMemXferPropList default constructor
diff --git a/c++/src/H5DxferProp.h b/c++/src/H5DxferProp.h
index 835dfdb..52a9a48 100644
--- a/c++/src/H5DxferProp.h
+++ b/c++/src/H5DxferProp.h
@@ -30,7 +30,8 @@ namespace H5 {
 */
 class H5_DLLCPP DSetMemXferPropList : public PropList {
    public:
-	static const DSetMemXferPropList DEFAULT;
+	///\brief Default dataset memory and transfer property list.
+	static const DSetMemXferPropList& DEFAULT;
 
 	// Creates a dataset memory and transfer property list.
 	DSetMemXferPropList();
@@ -116,6 +117,19 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
 
 	// Noop destructor
 	virtual ~DSetMemXferPropList();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+        // Deletes the global constant, should only be used by the library
+        static void deleteConstants();
+
+    private:
+	static DSetMemXferPropList* DEFAULT_;
+
+        // Creates the global constant, should only be used by the library
+        static DSetMemXferPropList* getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 };
 #ifndef H5_NO_NAMESPACE
 }
diff --git a/c++/src/H5EnumType.cpp b/c++/src/H5EnumType.cpp
index a91c053..b096a36 100644
--- a/c++/src/H5EnumType.cpp
+++ b/c++/src/H5EnumType.cpp
@@ -23,6 +23,7 @@
 #include "H5AbstractDs.h"
 #include "H5DxferProp.h"
 #include "H5DataSpace.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
diff --git a/c++/src/H5Exception.h b/c++/src/H5Exception.h
index 5373150..d49c19a 100644
--- a/c++/src/H5Exception.h
+++ b/c++/src/H5Exception.h
@@ -85,13 +85,13 @@ class H5_DLLCPP Exception {
 	// virtual Destructor
 	virtual ~Exception() throw();
 
+   protected:
+	// Default value for detail_message
+	static const char DEFAULT_MSG[];
+
    private:
 	H5std_string detail_message;
 	H5std_string func_name;
-
-   protected:
-        // Default value for detail_message
-        static const char DEFAULT_MSG[];
 };
 
 class H5_DLLCPP FileIException : public Exception {
diff --git a/c++/src/H5FaccProp.cpp b/c++/src/H5FaccProp.cpp
index 5ce9d8e..d3d7811 100644
--- a/c++/src/H5FaccProp.cpp
+++ b/c++/src/H5FaccProp.cpp
@@ -25,10 +25,63 @@
 namespace H5 {
 #endif
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// This DOXYGEN_SHOULD_SKIP_THIS block is a work-around approach to control
+// the order of creation and deletion of the global constants.  See Design Notes
+// in "H5PredType.cpp" for information.
+
+// Initialize a pointer for the constant
+FileAccPropList* FileAccPropList::DEFAULT_ = 0;
+
+//--------------------------------------------------------------------------
+// Function:    FileAccPropList::getConstant
+//              Creates a FileAccPropList object representing the HDF5 constant
+//              H5P_FILE_ACCESS, pointed to by FileAccPropList::DEFAULT_
+// exception    H5::PropListIException
+// Description
+//              If FileAccPropList::DEFAULT_ already points to an allocated
+//              object, throw a PropListIException.  This scenario should not
+//              happen.
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+FileAccPropList* FileAccPropList::getConstant()
+{
+    // Tell the C library not to clean up, H5Library::termH5cpp will call
+    // H5close - more dependency if use H5Library::dontAtExit()
+    if (!IdComponent::H5dontAtexit_called)
+    {
+        (void) H5dont_atexit();
+        IdComponent::H5dontAtexit_called = true;
+    }
+
+    // If the constant pointer is not allocated, allocate it. Otherwise,
+    // throw because it shouldn't be.
+    if (DEFAULT_ == 0)
+        DEFAULT_ = new FileAccPropList(H5P_FILE_ACCESS);
+    else
+        throw PropListIException("FileAccPropList::getConstant", "FileAccPropList::getConstant is being invoked on an allocated DEFAULT_");
+    return(DEFAULT_);
+}
+
 //--------------------------------------------------------------------------
-///\brief	Constant for default property
+// Function:    FileAccPropList::deleteConstants
+// Purpose:     Deletes the constant object that FileAccPropList::DEFAULT_
+//              points to.
+// exception    H5::PropListIException
+// Programmer   Binh-Minh Ribler - 2015
 //--------------------------------------------------------------------------
-const FileAccPropList FileAccPropList::DEFAULT;
+void FileAccPropList::deleteConstants()
+{
+    if (DEFAULT_ != 0)
+        delete DEFAULT_;
+}
+
+//--------------------------------------------------------------------------
+// Purpose:	Constant for default property
+//--------------------------------------------------------------------------
+const FileAccPropList& FileAccPropList::DEFAULT = *getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
 // Function:	Default Constructor
diff --git a/c++/src/H5FaccProp.h b/c++/src/H5FaccProp.h
index 2ec2d40..b214447 100644
--- a/c++/src/H5FaccProp.h
+++ b/c++/src/H5FaccProp.h
@@ -27,7 +27,8 @@ namespace H5 {
 //! Class FileAccPropList represents the HDF5 file access property list.
 class H5_DLLCPP FileAccPropList : public PropList {
    public:
-	static const FileAccPropList DEFAULT;
+	///\brief Default file access property list.
+	static const FileAccPropList& DEFAULT;
 
 	// Creates a file access property list.
 	FileAccPropList();
@@ -148,6 +149,20 @@ class H5_DLLCPP FileAccPropList : public PropList {
 
 	// Noop destructor
 	virtual ~FileAccPropList();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+        // Deletes the global constant, should only be used by the library
+        static void deleteConstants();
+
+    private:
+        static FileAccPropList* DEFAULT_;
+
+        // Creates the global constant, should only be used by the library
+        static FileAccPropList* getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
 };
 #ifndef H5_NO_NAMESPACE
 }
diff --git a/c++/src/H5FcreatProp.cpp b/c++/src/H5FcreatProp.cpp
index 16c352e..661c94b 100644
--- a/c++/src/H5FcreatProp.cpp
+++ b/c++/src/H5FcreatProp.cpp
@@ -25,10 +25,61 @@
 namespace H5 {
 #endif
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// This DOXYGEN_SHOULD_SKIP_THIS block is a work-around approach to control
+// the order of creation and deletion of the global constants.  See Design Notes
+// in "H5PredType.cpp" for information.
+
+// Initialize a pointer for the constant
+FileCreatPropList* FileCreatPropList::DEFAULT_ = 0;
+
+//--------------------------------------------------------------------------
+// Function:    FileCreatPropList::getConstant
+// Purpose:     Creates a FileCreatPropList object representing the HDF5
+//              constant H5P_FILE_ACCESS, pointed to by FileCreatPropList::DEFAULT_
+// exception    H5::PropListIException
+// Description
+//              If FileCreatPropList::DEFAULT_ already points to an allocated
+//              object, throw a PropListIException.  This scenario should not happen.
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+FileCreatPropList* FileCreatPropList::getConstant()
+{
+    // Tell the C library not to clean up, H5Library::termH5cpp will call
+    // H5close - more dependency if use H5Library::dontAtExit()
+    if (!IdComponent::H5dontAtexit_called)
+    {
+        (void) H5dont_atexit();
+        IdComponent::H5dontAtexit_called = true;
+    }
+
+    // If the constant pointer is not allocated, allocate it. Otherwise,
+    // throw because it shouldn't be.
+    if (DEFAULT_ == 0)
+        DEFAULT_ = new FileCreatPropList(H5P_FILE_CREATE);
+    else
+        throw PropListIException("FileCreatPropList::getConstant", "FileCreatPropList::getConstant is being invoked on an allocated DEFAULT_");
+    return(DEFAULT_);
+}
+
 //--------------------------------------------------------------------------
-///\brief	Constant for default property
+// Function:    FileCreatPropList::deleteConstants
+// Purpose:     Deletes the constant object that FileCreatPropList::DEFAULT_
+//              points to.
+// Programmer   Binh-Minh Ribler - 2015
 //--------------------------------------------------------------------------
-const FileCreatPropList FileCreatPropList::DEFAULT;
+void FileCreatPropList::deleteConstants()
+{
+    if (DEFAULT_ != 0)
+        delete DEFAULT_;
+}
+
+//--------------------------------------------------------------------------
+// Purpose	Constant for default property
+//--------------------------------------------------------------------------
+const FileCreatPropList& FileCreatPropList::DEFAULT = *getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
 // Function:	FileCreatPropList default constructor
diff --git a/c++/src/H5FcreatProp.h b/c++/src/H5FcreatProp.h
index 4149880..ae32134 100644
--- a/c++/src/H5FcreatProp.h
+++ b/c++/src/H5FcreatProp.h
@@ -24,8 +24,8 @@ namespace H5 {
 //! Class FileCreatPropList represents the HDF5 file create property list.
 class H5_DLLCPP FileCreatPropList : public PropList {
    public:
-	// Default file creation property list.
-	static const FileCreatPropList DEFAULT;
+	///\brief Default file creation property list.
+	static const FileCreatPropList& DEFAULT;
 
 	// Creates a file create property list.
 	FileCreatPropList();
@@ -72,6 +72,20 @@ class H5_DLLCPP FileCreatPropList : public PropList {
 
 	// Noop destructor
 	virtual ~FileCreatPropList();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+	// Deletes the global constant, should only be used by the library
+	static void deleteConstants();
+
+    private:
+	static FileCreatPropList* DEFAULT_;
+
+	// Creates the global constant, should only be used by the library
+	static FileCreatPropList* getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
 };
 #ifndef H5_NO_NAMESPACE
 }
diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp
index 9cc51b7..4b81f3f 100644
--- a/c++/src/H5File.cpp
+++ b/c++/src/H5File.cpp
@@ -27,6 +27,7 @@
 #include "H5Object.h"
 #include "H5FaccProp.h"
 #include "H5FcreatProp.h"
+#include "H5OcreatProp.h"
 #include "H5DxferProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
@@ -48,6 +49,8 @@ namespace H5 {
 //--------------------------------------------------------------------------
 // Function	H5File default constructor
 ///\brief	Default constructor: creates a stub H5File object.
+///\par Description
+///		The data member \a id will be initialized to H5I_INVALID_HID.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
 H5File::H5File() : H5Location(), CommonFG(), id(H5I_INVALID_HID) {}
@@ -73,14 +76,11 @@ H5File::H5File() : H5Location(), CommonFG(), id(H5I_INVALID_HID) {}
 ///					exists, and fail, otherwise
 ///		\li \c H5F_ACC_RDWR - Open file for read/write, if it already
 ///					exists, and fail, otherwise
-///		\li \c H5F_ACC_DEBUG - print debug information. This flag is
-///			used only by HDF5 library developers; it is neither
-///			tested nor supported for use in applications.
 ///\par
 ///		For info on file creation in the case of an already-open file,
 ///		please refer to the \b Special \b case section in the C layer
 ///		Reference Manual at:
-/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5F.html#File-Create
+/// https://www.hdfgroup.org/HDF5/doc/RM/RM_H5F.html#File-Create
 // Notes	With a PGI compiler (~2012-2013), the exception thrown by p_get_file
 //		could not be caught in the applications.  Added try block here
 //		to catch then re-throw it. -BMR 2013/03/21
@@ -133,7 +133,7 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro
 {
     // These bits only set for creation, so if any of them are set,
     // create the file.
-    if( flags & (H5F_ACC_EXCL|H5F_ACC_TRUNC|H5F_ACC_DEBUG))
+    if( flags & (H5F_ACC_EXCL|H5F_ACC_TRUNC))
     {
 	hid_t create_plist_id = create_plist.getId();
 	hid_t access_plist_id = access_plist.getId();
@@ -155,8 +155,6 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro
     }
 }
 
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
 //--------------------------------------------------------------------------
 // Function:	H5File overloaded constructor
 ///\brief	Creates an H5File object using an existing file id.
@@ -176,6 +174,8 @@ H5File::H5File(hid_t existing_id) : H5Location(), CommonFG()
     incRefCount(); // increment number of references to this id
 }
 
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
 //--------------------------------------------------------------------------
 // Function:	H5File copy constructor
 ///\brief	Copy constructor: makes a copy of the original
@@ -230,16 +230,15 @@ bool H5File::isHdf5(const H5std_string& name )
 ///\param	name         - IN: Name of the file
 ///\param	flags        - IN: File access flags
 ///\param	access_plist - IN: File access property list.  Default to
-///		FileCreatPropList::DEFAULT
+///		FileAccPropList::DEFAULT
+///\exception	H5::FileIException
 ///\par Description
 ///		Valid values of \a flags include:
-///		H5F_ACC_RDWR:   Open with read/write access. If the file is
-///				currently open for read-only access then it
-///				will be reopened. Absence of this flag
-///				implies read-only access.
-///
-///		H5F_ACC_RDONLY: Open with read only access. - default
-///
+///		\li \c H5F_ACC_RDONLY - Open with read-only.
+///		\li \c H5F_ACC_RDWR - Open with read/write access.
+///		For more information about file access, please refer to the
+///		C layer Reference Manual page at:
+///		https://www.hdfgroup.org/HDF5/doc/RM/RM_H5F.html#File-Open
 // Programmer	Binh-Minh Ribler - Oct, 2005
 //--------------------------------------------------------------------------
 void H5File::openFile(const char* name, unsigned int flags, const FileAccPropList& access_plist)
@@ -267,6 +266,11 @@ void H5File::openFile(const char* name, unsigned int flags, const FileAccPropLis
 ///\param	flags        - IN: File access flags
 ///\param	access_plist - IN: File access property list.  Default to
 ///		FileAccPropList::DEFAULT
+///\exception	H5::FileIException
+///\par Description
+///		Valid values of \a flags include:
+///		\li \c H5F_ACC_RDONLY - Open with read-only.
+///		\li \c H5F_ACC_RDWR - Open with read/write access.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
 void H5File::openFile(const H5std_string& name, unsigned int flags, const FileAccPropList& access_plist)
@@ -300,9 +304,9 @@ void H5File::reOpen()
         throw FileIException("H5File::reOpen", close_error.getDetailMsg());
     }
 
-   // call C routine to reopen the file - Note: not sure about this,
+   // call C routine to reopen the file
    // which id to be the parameter when closing?
-   id = H5Freopen( id );
+   id = H5Freopen(id);
    if( id < 0 ) // Raise exception when H5Freopen returns a neg value
       throw FileIException("H5File::reOpen", "H5Freopen failed");
 }
@@ -524,6 +528,23 @@ hsize_t H5File::getFileSize() const
    return (file_size);
 }
 
+//--------------------------------------------------------------------------
+// Function:	H5File::getId
+///\brief	Get the id of this file
+///\return	File identifier
+// Modification:
+//	May 2008 - BMR
+//		Class hierarchy is revised to address bugzilla 1068.  Class
+//		AbstractDS and Attribute are moved out of H5Object.  In
+//		addition, member IdComponent::id is moved into subclasses, and
+//		IdComponent::getId now becomes pure virtual function.
+// Programmer	Binh-Minh Ribler - May, 2008
+//--------------------------------------------------------------------------
+hid_t H5File::getId() const
+{
+   return(id);
+}
+
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 //--------------------------------------------------------------------------
 // Function:	H5File::reopen
@@ -550,37 +571,18 @@ hid_t H5File::getLocId() const
 {
    return( getId() );
 }
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-//--------------------------------------------------------------------------
-// Function:    H5File::getId
-///\brief	Get the id of this file
-///\return	File identifier
-// Modification:
-//      May 2008 - BMR
-//              Class hierarchy is revised to address bugzilla 1068.  Class
-//              AbstractDS and Attribute are moved out of H5Object.  In
-//              addition, member IdComponent::id is moved into subclasses, and
-//              IdComponent::getId now becomes pure virtual function.
-// Programmer   Binh-Minh Ribler - May, 2008
-//--------------------------------------------------------------------------
-hid_t H5File::getId() const
-{
-   return(id);
-}
 
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
 //--------------------------------------------------------------------------
-// Function:    H5File::p_setId (protected)
-///\brief       Sets the identifier of this object to a new value.
+// Function:	H5File::p_setId (protected)
+///\brief	Sets the identifier of this object to a new value.
 ///
-///\exception   H5::IdComponentException when the attempt to close the HDF5
-///             object fails
+///\exception	H5::IdComponentException when the attempt to close the HDF5
+///		object fails
 // Description:
-//              The underlaying reference counting in the C library ensures
-//              that the current valid id of this object is properly closed.
-//              Then the object's id is reset to the new id.
-// Programmer   Binh-Minh Ribler - 2000
+//		The underlaying reference counting in the C library ensures
+//		that the current valid id of this object is properly closed.
+//		Then the object's id is reset to the new id.
+// Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
 void H5File::p_setId(const hid_t new_id)
 {
diff --git a/c++/src/H5File.h b/c++/src/H5File.h
index fb24447..939ac8e 100644
--- a/c++/src/H5File.h
+++ b/c++/src/H5File.h
@@ -83,7 +83,8 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG {
 	// Gets the file id
 	virtual hid_t getLocId() const;
 
-	// Creates an H5File using an existing file id.
+	// Creates an H5File using an existing file id.  Not recommended
+	// in applications.
 	H5File(hid_t existing_id);
 
 #endif // DOXYGEN_SHOULD_SKIP_THIS
diff --git a/c++/src/H5FloatType.cpp b/c++/src/H5FloatType.cpp
index 784e419..cdf9872 100644
--- a/c++/src/H5FloatType.cpp
+++ b/c++/src/H5FloatType.cpp
@@ -20,6 +20,7 @@
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
diff --git a/c++/src/H5FloatType.h b/c++/src/H5FloatType.h
index 4d5de17..e88093e 100644
--- a/c++/src/H5FloatType.h
+++ b/c++/src/H5FloatType.h
@@ -24,8 +24,8 @@ namespace H5 {
 //! Class FloatType operates on HDF5 floating point datatype.
 class H5_DLLCPP FloatType : public AtomType {
    public:
-        // Creates a floating-point type using a predefined type.
-        FloatType( const PredType& pred_type );
+	// Creates a floating-point type using a predefined type.
+	FloatType( const PredType& pred_type );
 
 	// Gets the floating-point datatype of the specified dataset.
 	FloatType( const DataSet& dataset );
diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp
index fd04f1a..174dd1e 100644
--- a/c++/src/H5Group.cpp
+++ b/c++/src/H5Group.cpp
@@ -28,6 +28,7 @@
 #include "H5AbstractDs.h"
 #include "H5FaccProp.h"
 #include "H5FcreatProp.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5DxferProp.h"
 #include "H5DataSpace.h"
diff --git a/c++/src/H5IdComponent.cpp b/c++/src/H5IdComponent.cpp
index c01d41e..75b0125 100644
--- a/c++/src/H5IdComponent.cpp
+++ b/c++/src/H5IdComponent.cpp
@@ -13,11 +13,6 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-#ifdef OLD_HEADER_FILENAME
-#include <iostream.h>
-#else
-#include <iostream>
-#endif
 #include <string>
 
 #include "H5Include.h"
@@ -31,11 +26,25 @@
 namespace H5 {
 #endif
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// For internal use only
+
+// This flag indicates whether H5Library::initH5cpp has been called to register
+// the terminating functions with atexit()
+bool IdComponent::H5cppinit = false;
+
+// This flag is used to decide whether H5dont_atexit should be called.
+// Subclasses that have global constants use it.  This is a temporary
+// work-around in 1.8.16.  It will be removed after HDFFV-9540 is fixed.
+bool IdComponent::H5dontAtexit_called = false;
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
 //--------------------------------------------------------------------------
 // Function:	IdComponent overloaded constructor
-///\brief	Creates an IdComponent object using the id of an existing object.
-///\param	h5_id - IN: Id of an existing object
-///\exception	H5::DataTypeIException
+///\brief 	Creates an IdComponent object using the id of an existing
+///		object. - Obsolete, will be removed in 1.8.17
+// Param	h5_id - IN: Id of an existing object
+// Exception	H5::DataTypeIException
 // Programmer	Binh-Minh Ribler - 2000
 //
 // *** Deprecation warning ***
@@ -46,25 +55,6 @@ namespace H5 {
 //--------------------------------------------------------------------------
 IdComponent::IdComponent(const hid_t h5_id) {}
 
-//void IdComponent::p_setId(const hid_t new_id)
-//{
-    //p_setId(new_id);
-//}
-
-//--------------------------------------------------------------------------
-// Function:	IdComponent copy constructor
-// Purpose:	This noop copy constructor is removed as a result of the data
-//		member "id" being moved down to sub-classes. (Mar 2015)
-// Parameters:	original - IN: IdComponent instance to copy
-// Programmer	Binh-Minh Ribler - 2000
-//
-// *** Deprecation warning ***
-// This constructor is no longer appropriate because the data member "id" had
-// been moved to the sub-classes.  It is removed from 1.8.15 because it is
-// a noop and it can be generated by the compiler if needed.
-//--------------------------------------------------------------------------
-// IdComponent::IdComponent(const IdComponent& original) {}
-
 //--------------------------------------------------------------------------
 // Function:	IdComponent::incRefCount
 ///\brief	Increment reference counter for a given id.
@@ -231,7 +221,7 @@ IdComponent& IdComponent::operator=( const IdComponent& rhs )
 //--------------------------------------------------------------------------
 // Function:	IdComponent::setId
 ///\brief	Sets the identifier of this object to a new value.
-///
+///\param	new_id - IN: New identifier to be set to
 ///\exception	H5::IdComponentException when the attempt to close the HDF5
 ///		object fails
 // Description:
@@ -246,8 +236,8 @@ IdComponent& IdComponent::operator=( const IdComponent& rhs )
 //		C++ API object, which will be destroyed properly, and so
 //		p_setId does not call incRefCount.  On the other hand, the
 //		public version setId is used by other applications, in which
-//		the id passed to setId already has a reference count, so setId
-//		must call incRefCount.
+//		the id passed to setId is that of another C++ API object, so
+//		setId must call incRefCount.
 //--------------------------------------------------------------------------
 void IdComponent::setId(const hid_t new_id)
 {
@@ -285,15 +275,9 @@ IdComponent::~IdComponent() {}
 //--------------------------------------------------------------------------
 H5std_string IdComponent::inMemFunc(const char* func_name) const
 {
-#ifdef H5_VMS
-   H5std_string full_name = fromClass();
-   full_name.append("::");
-   full_name.append(func_name);
-#else
    H5std_string full_name = func_name;
    full_name.insert(0, "::");
    full_name.insert(0, fromClass());
-#endif /*H5_VMS*/
    return (full_name);
 }
 
@@ -302,7 +286,16 @@ H5std_string IdComponent::inMemFunc(const char* func_name) const
 ///\brief	Default constructor.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-IdComponent::IdComponent() {}
+IdComponent::IdComponent()
+{
+    // initH5cpp will register the terminating functions with atexit().
+    // This should only be done once.
+    if (!H5cppinit)
+    {
+        H5Library::initH5cpp();
+        H5cppinit = true;
+    }
+}
 
 //--------------------------------------------------------------------------
 // Function:	IdComponent::p_get_file_name (protected)
diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h
index c959e95..34f2da8 100644
--- a/c++/src/H5IdComponent.h
+++ b/c++/src/H5IdComponent.h
@@ -32,7 +32,8 @@ class DataSpace;
     rarely needs them.
 */
 class H5_DLLCPP IdComponent {
-   public:
+    public:
+
 	// Increment reference counter.
 	void incRefCount(const hid_t obj_id) const;
 	void incRefCount() const;
@@ -54,11 +55,6 @@ class H5_DLLCPP IdComponent {
 	// Assignment operator.
 	IdComponent& operator=( const IdComponent& rhs );
 
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-	// Gets the identifier of this object.
-	virtual hid_t getId () const = 0;
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
 	// Sets the identifier of this object to a new value.
 	void setId(const hid_t new_id);
 
@@ -72,10 +68,14 @@ class H5_DLLCPP IdComponent {
 	// Creates an object to hold an HDF5 identifier.
 	IdComponent( const hid_t h5_id );
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
 	// Copy constructor: makes copy of the original IdComponent object.
-	// IdComponent( const IdComponent& original );
+	// IdComponent( const IdComponent& original ); - removed from 1.8.15
+
+	// Gets the identifier of this object.
+	virtual hid_t getId () const = 0;
 
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
 	// Pure virtual function for there are various H5*close for the
 	// subclasses.
 	virtual void close() = 0;
@@ -92,9 +92,10 @@ class H5_DLLCPP IdComponent {
 	// Destructor
 	virtual ~IdComponent();
 
-   protected:
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 
+    protected:
+
 	// Default constructor.
 	IdComponent();
 
@@ -107,7 +108,14 @@ class H5_DLLCPP IdComponent {
 	// Sets the identifier of this object to a new value. - this one
 	// doesn't increment reference count
 	virtual void p_setId(const hid_t new_id) = 0;
-	//virtual void p_setId(const hid_t new_id);
+
+	// This flag is used to decide whether H5dont_atexit should be called
+	static bool H5dontAtexit_called;
+
+    private:
+	// This flag indicates whether H5Library::initH5cpp has been called
+	// to register various terminating functions with atexit()
+        static bool H5cppinit;
 
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
diff --git a/c++/src/H5IntType.cpp b/c++/src/H5IntType.cpp
index a884829..5719eed 100644
--- a/c++/src/H5IntType.cpp
+++ b/c++/src/H5IntType.cpp
@@ -20,6 +20,7 @@
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
diff --git a/c++/src/H5Library.cpp b/c++/src/H5Library.cpp
index ecc5141..b87abdc 100644
--- a/c++/src/H5Library.cpp
+++ b/c++/src/H5Library.cpp
@@ -14,10 +14,23 @@
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
 #include <string>
+#include <cstdlib>
 
-#include "H5CppDoc.h"	// included only for Doxygen to generate part of RM
+#include "H5CppDoc.h"   // included only for Doxygen to generate part of RM
 #include "H5Include.h"
 #include "H5Exception.h"
+#include "H5IdComponent.h"
+#include "H5PropList.h"
+#include "H5FaccProp.h"
+#include "H5FcreatProp.h"
+#include "H5OcreatProp.h"
+#include "H5DxferProp.h"
+#include "H5Object.h"
+#include "H5DataType.h"
+#include "H5DcreatProp.h"
+#include "H5AtomType.h"
+#include "H5PredType.h"
+#include "H5DataSpace.h"
 #include "H5Library.h"
 
 #ifndef H5_NO_NAMESPACE
@@ -25,12 +38,14 @@ namespace H5 {
 #endif
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-// This static variable will be set to true when dontAtExit is called
+
+// This static variable is unused, will be removed in future releases.
 bool H5Library::need_cleanup = false;
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
-// Function:	H5Library::open
+// Function:	H5Library::open (static)
 ///\brief	Initializes the HDF5 library.
 ///
 ///\exception	H5::LibraryIException
@@ -46,7 +61,7 @@ void H5Library::open()
 }
 
 //--------------------------------------------------------------------------
-// Function:	H5Library::close
+// Function:	H5Library::close (static)
 ///\brief	Flushes all data to disk, closes files, and cleans up memory.
 ///
 ///\exception	H5::LibraryIException
@@ -62,23 +77,22 @@ void H5Library::close()
 }
 
 //--------------------------------------------------------------------------
-// Function:	H5Library::dontAtExit
-///\brief	Instructs library not to install \c atexit cleanup routine
+// Function:	H5Library::dontAtExit (static)
+///\brief	Instructs library not to install the C \c atexit cleanup routine
 ///
 ///\exception	H5::LibraryIException
 // Programmer	Binh-Minh Ribler - 2000
+// Modification
+//		Removed the check for failure returned from H5dont_atexit.
+//		will be fixed to not fail (HDFFV-9540)
 //--------------------------------------------------------------------------
 void H5Library::dontAtExit()
 {
    herr_t ret_value = H5dont_atexit();
-   if( ret_value < 0 )
-   {
-      throw LibraryIException("H5Library::dontAtExit", "H5dont_atexit failed");
-   }
 }
 
 //--------------------------------------------------------------------------
-// Function:	H5Library::getLibVersion
+// Function:	H5Library::getLibVersion (static)
 ///\brief	Returns the HDF library release number.
 ///\param	majnum - OUT: Major version of the library
 ///\param	minnum - OUT: Minor version of the library
@@ -96,7 +110,7 @@ void H5Library::getLibVersion( unsigned& majnum, unsigned& minnum, unsigned& rel
 }
 
 //--------------------------------------------------------------------------
-// Function:	H5Library::checkVersion
+// Function:	H5Library::checkVersion (static)
 ///\brief	Verifies that the arguments match the version numbers
 ///		compiled into the library
 ///\param	majnum - IN: Major version of the library
@@ -119,7 +133,7 @@ void H5Library::checkVersion(unsigned majnum, unsigned minnum, unsigned relnum)
 }
 
 //--------------------------------------------------------------------------
-// Function:	H5Library::garbageCollect
+// Function:	H5Library::garbageCollect (static)
 ///\brief	Walks through all the garbage collection routines for the
 ///		library, which are supposed to free any unused memory they
 ///		have allocated.
@@ -148,7 +162,79 @@ void H5Library::garbageCollect()
 }
 
 //--------------------------------------------------------------------------
-// Function:	H5Library::setFreeListLimits
+// Function:    H5Library::initH5cpp (static)
+///\brief       Initializes C++ library and registers terminating functions at
+///		exit.  Only for the library functions, not for user-defined
+///		functions.
+// Description
+//              initH5cpp registers the following functions with std::atexit():
+//                      termH5cpp() - calls H5close() after all cleanup in
+//                                    the C++ library is done
+//                      <classname>::deleteConstants - deletes all references
+//                                    for <classname> global constants
+///\exception   H5::LibraryIException
+//
+// Programmer   Binh-Minh Ribler - September, 2015
+//--------------------------------------------------------------------------
+void H5Library::initH5cpp()
+{
+    // Register terminating functions with atexit(); they will be invoked in
+    // the reversed order
+    int ret_value = 0;
+    ret_value = std::atexit(termH5cpp);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating termH5cpp failed");
+
+    ret_value = std::atexit(PredType::deleteConstants);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating PredType::deleteConstants failed");
+
+    ret_value = std::atexit(PropList::deleteConstants);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating PropList::deleteConstants failed");
+
+     ret_value = std::atexit(FileAccPropList::deleteConstants);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating FileAccPropList::deleteConstants failed");
+
+     ret_value = std::atexit(FileCreatPropList::deleteConstants);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating FileCreatPropList::deleteConstants failed");
+
+     ret_value = std::atexit(DSetMemXferPropList::deleteConstants);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating DSetMemXferPropList::deleteConstants failed");
+
+     ret_value = std::atexit(DSetCreatPropList::deleteConstants);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating DSetCreatPropList::deleteConstants failed");
+
+     ret_value = std::atexit(ObjCreatPropList::deleteConstants);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating ObjCreatPropList::deleteConstants failed");
+
+    ret_value = std::atexit(DataSpace::deleteConstants);
+    if (ret_value != 0)
+        throw LibraryIException("H5Library::initH5cpp", "Registrating DataSpace::deleteConstants failed");
+}
+
+//--------------------------------------------------------------------------
+// Function:    H5Library::termH5cpp (static)
+///\brief       Sends request for the C layer to terminate.
+///\par Description
+///             If the C library fails to terminate, exit with a failure.
+// Programmer   Binh-Minh Ribler - September, 2015
+//--------------------------------------------------------------------------
+void H5Library::termH5cpp()
+{
+    // Close the C library
+    herr_t ret_value = H5close();
+    if (ret_value == -1)
+        exit(-1);
+}
+
+//--------------------------------------------------------------------------
+// Function:	H5Library::setFreeListLimits (static)
 ///\brief	Sets limits on the different kinds of free lists.
 ///\param	reg_global_lim - IN: Limit on all "regular" free list memory used
 ///\param	reg_list_lim   - IN: Limit on memory used in each "regular" free list
@@ -174,6 +260,17 @@ void H5Library::setFreeListLimits(int reg_global_lim, int reg_list_lim,
       throw LibraryIException("H5Library::setFreeListLimits", "H5set_free_list_limits failed");
    }
 }
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Applications don't need to instantiate H5Library
+
+// Default constructor - private
+H5Library::H5Library(){};
+
+// Destructor - private
+H5Library::~H5Library(){};
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
 #ifndef H5_NO_NAMESPACE
 } // end namespace
 #endif
diff --git a/c++/src/H5Library.h b/c++/src/H5Library.h
index e5365f9..336f9c8 100644
--- a/c++/src/H5Library.h
+++ b/c++/src/H5Library.h
@@ -21,14 +21,6 @@
 namespace H5 {
 #endif
 
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#define NOTATEXIT       (-10)   // just in case the HDF5 library use more
-	// negative constants. Note: the solution used for the atexit/global
-	// destructors is not reliable, and desperately needs improvement
-	// It is not even working, inifiteloop message still printed when
-	// calling H5close
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
 /*! \class H5Library
     \brief Class H5Library operates the HDF5 library globably.
 
@@ -38,7 +30,8 @@ namespace H5 {
 class H5_DLLCPP H5Library {
    public:
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-	static bool need_cleanup; // indicates if H5close should be called
+        static bool need_cleanup; // indicates if H5close should be called
+                             // - unused, will be removed in future releases.
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 	// Initializes the HDF5 library.
@@ -65,9 +58,23 @@ class H5_DLLCPP H5Library {
 	static void setFreeListLimits(int reg_global_lim, int reg_list_lim, int
 	arr_global_lim, int arr_list_lim, int blk_global_lim, int blk_list_lim);
 
+        // Initializes C++ library and registers terminating functions at exit.
+	// Only for the library functions, not for user-defined functions.
+        static void initH5cpp(void);
+
+        // Sends request for terminating the HDF5 library.
+        static void termH5cpp(void);
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
    private:
-	// Default constructor - no instance ever created
-	H5Library() {};
+
+        // Default constructor - no instance ever created from outsiders
+        H5Library();
+
+        // Destructor
+        ~H5Library();
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 };
 #ifndef H5_NO_NAMESPACE
diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp
index be11875..30a7bc5 100644
--- a/c++/src/H5Location.cpp
+++ b/c++/src/H5Location.cpp
@@ -21,6 +21,7 @@
 #include "H5PropList.h"
 #include "H5Location.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5DxferProp.h"
 #include "H5FaccProp.h"
@@ -33,9 +34,6 @@
 #include "H5DataSet.h"
 #include "H5Attribute.h"
 #include "H5private.h"		// for HDmemset
-#include <iostream>
-using namespace std;
-
 
 #ifndef H5_NO_NAMESPACE
 namespace H5 {
@@ -942,7 +940,7 @@ H5Location::~H5Location() {}
 //--------------------------------------------------------------------------
 void f_Attribute_setId(Attribute* attr, hid_t new_id)
 {
-    attr->id = new_id;
+    attr->p_setId(new_id);
 }
 
 //--------------------------------------------------------------------------
@@ -957,7 +955,7 @@ void f_Attribute_setId(Attribute* attr, hid_t new_id)
 //--------------------------------------------------------------------------
 void f_DataSpace_setId(DataSpace* dspace, hid_t new_id)
 {
-    dspace->id = new_id;
+    dspace->p_setId(new_id);
 }
 
 #ifndef H5_NO_NAMESPACE
diff --git a/c++/src/H5Location.h b/c++/src/H5Location.h
index dc6ae51..37571c5 100644
--- a/c++/src/H5Location.h
+++ b/c++/src/H5Location.h
@@ -148,9 +148,6 @@ class H5_DLLCPP H5Location : public IdComponent {
 	// Creates a copy of an existing object giving the location id.
 	H5Location(const hid_t loc_id);
 
-	// Copy constructor.
-	// H5Location(const H5Location& original);
-
 	// Creates a reference to an HDF5 object or a dataset region.
 	void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const;
 
diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp
index 56e88e0..35e34b5 100644
--- a/c++/src/H5Object.cpp
+++ b/c++/src/H5Object.cpp
@@ -14,13 +14,13 @@
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
 #include <string>
-#include <iostream>
 
 #include "H5Include.h"
 #include "H5Exception.h"
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5DxferProp.h"
 #include "H5FaccProp.h"
@@ -36,7 +36,6 @@
 
 #ifndef H5_NO_NAMESPACE
 namespace H5 {
-using namespace std;
 #endif
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
diff --git a/c++/src/H5OcreatProp.cpp b/c++/src/H5OcreatProp.cpp
new file mode 100644
index 0000000..cd7bf0f
--- /dev/null
+++ b/c++/src/H5OcreatProp.cpp
@@ -0,0 +1,220 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+#include <string>
+
+#include "H5Include.h"
+#include "H5Exception.h"
+#include "H5IdComponent.h"
+#include "H5PropList.h"
+#include "H5FaccProp.h"
+#include "H5OcreatProp.h"
+
+#ifndef H5_NO_NAMESPACE
+namespace H5 {
+#endif
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// This DOXYGEN_SHOULD_SKIP_THIS block is a work-around approach to control
+// the order of creation and deletion of the global constants.  See Design Notes
+// in "H5PredType.cpp" for information.
+
+// Initialize a pointer for the constant
+ObjCreatPropList* ObjCreatPropList::DEFAULT_ = 0;
+
+//--------------------------------------------------------------------------
+// Function:    ObjCreatPropList::getConstant
+//              Creates a ObjCreatPropList object representing the HDF5 constant
+//              H5P_FILE_ACCESS, pointed to by ObjCreatPropList::DEFAULT_
+// exception    H5::PropListIException
+// Description
+//              If ObjCreatPropList::DEFAULT_ already points to an allocated
+//              object, throw a PropListIException.  This scenario should not
+//              happen.
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+ObjCreatPropList* ObjCreatPropList::getConstant()
+{
+    // Tell the C library not to clean up, H5Library::termH5cpp will call
+    // H5close - more dependency if use H5Library::dontAtExit()
+    if (!IdComponent::H5dontAtexit_called)
+    {
+        (void) H5dont_atexit();
+        IdComponent::H5dontAtexit_called = true;
+    }
+
+    // If the constant pointer is not allocated, allocate it. Otherwise,
+    // throw because it shouldn't be.
+    if (DEFAULT_ == 0)
+        DEFAULT_ = new ObjCreatPropList(H5P_OBJECT_CREATE);
+    else
+        throw PropListIException("ObjCreatPropList::getConstant", "ObjCreatPropList::getConstant is being invoked on an allocated DEFAULT_");
+    return(DEFAULT_);
+}
+
+//--------------------------------------------------------------------------
+// Function:    ObjCreatPropList::deleteConstants
+// Purpose:     Deletes the constant object that ObjCreatPropList::DEFAULT_
+//              points to.
+// exception    H5::PropListIException
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void ObjCreatPropList::deleteConstants()
+{
+    if (DEFAULT_ != 0)
+        delete DEFAULT_;
+}
+
+//--------------------------------------------------------------------------
+// Purpose:	Constant for default property
+//--------------------------------------------------------------------------
+const ObjCreatPropList& ObjCreatPropList::DEFAULT = *getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+//--------------------------------------------------------------------------
+// Function:	Default Constructor
+///\brief	Creates a file access property list
+// Programmer:	Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+ObjCreatPropList::ObjCreatPropList() : PropList(H5P_OBJECT_CREATE) {}
+
+//--------------------------------------------------------------------------
+// Function:	ObjCreatPropList copy constructor
+///\brief	Copy Constructor: makes a copy of the original
+///\param	original - IN: ObjCreatPropList instance to copy
+// Programmer:	Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+ObjCreatPropList::ObjCreatPropList(const ObjCreatPropList& original) : PropList(original) {}
+
+//--------------------------------------------------------------------------
+// Function:	ObjCreatPropList overloaded constructor
+///\brief	Creates a file access property list using the id of an
+///		existing one.
+// Programmer:  Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+ObjCreatPropList::ObjCreatPropList(const hid_t plist_id) : PropList(plist_id) {}
+
+//--------------------------------------------------------------------------
+// Function:	ObjCreatPropList::setAttrPhaseChange
+///\brief	Sets attribute storage phase change thresholds.
+///\param	max_compact - IN: Maximum number of attributes to be stored in
+///				  compact storage.  Default to 8
+///\param	min_dense   - IN: Minimum number of attributes to be stored in
+///				  dense storage.  Default to 6
+///\exception	H5::PropListIException
+///\par Description
+///		If \c max_compact is set to 0, dense storage will be used.
+///		For more detail about on attribute storage, please refer to the
+///		C layer Reference Manual at:
+/// https://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetAttrPhaseChange
+// Programmer:  Binh-Minh Ribler - September 2015
+//--------------------------------------------------------------------------
+void ObjCreatPropList::setAttrPhaseChange(unsigned max_compact, unsigned min_dense) const
+{
+    herr_t ret_value = H5Pset_attr_phase_change(id, max_compact, min_dense);
+    if (ret_value < 0)
+    {
+        throw PropListIException("ObjCreatPropList::setAttrPhaseChange", "H5Pset_attr_phase_change failed");
+    }
+}
+
+//--------------------------------------------------------------------------
+// Function:	ObjCreatPropList::getAttrPhaseChange
+///\brief	Gets attribute storage phase change thresholds.
+///\param	max_compact - OUT: Maximum number of attributes to be stored in
+///				  compact storage.
+///\param	min_dense   - OUT: Minimum number of attributes to be stored in
+///				  dense storage.
+///\exception	H5::PropListIException
+///\par Description
+///		If \c max_compact is set to 0, dense storage will be used.
+///		For more detail about on attribute storage, please refer to the
+///		C layer Reference Manual at:
+/// https://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetAttrPhaseChange
+// Programmer:  Binh-Minh Ribler - September 2015
+//--------------------------------------------------------------------------
+void ObjCreatPropList::getAttrPhaseChange(unsigned& max_compact, unsigned& min_dense) const
+{
+    herr_t ret_value;
+    ret_value = H5Pget_attr_phase_change(id, &max_compact, &min_dense);
+    if (ret_value < 0)
+    {
+        throw PropListIException("ObjCreatPropList::getAttrPhaseChange", "H5Pget_attr_phase_change failed");
+    }
+}
+
+//--------------------------------------------------------------------------
+// Function:	ObjCreatPropList::setAttrCrtOrder
+///\brief	Sets tracking and indexing of attribute creation order.
+///\param	crt_order_flags  - IN: Flags specifying whether to track and
+///			index attribute creation order.  Default: No flag set
+///\exception	H5::PropListIException
+///\par Description
+///		Valid flags are:
+///		\li \c H5P_CRT_ORDER_TRACKED - Attribute creation order is tracked
+///		\li \c H5P_CRT_ORDER_INDEXED - Attribute creation order is
+///				 indexed (requires H5P_CRT_ORDER_TRACKED).
+///		When no flag is set, attribute creation order is neither
+///		tracked not indexed.  Note that HDF5 currently provides no
+///		mechanism to turn on attribute creation order tracking at object
+///		creation time and to build the index later.
+///		The C layer Reference Manual at can be found at:
+/// https://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetAttrCreationOrder
+// Programmer:  Binh-Minh Ribler - September 2015
+//--------------------------------------------------------------------------
+void ObjCreatPropList::setAttrCrtOrder(unsigned crt_order_flags) const
+{
+    herr_t ret_value = H5Pset_attr_creation_order(id, crt_order_flags);
+    if (ret_value < 0)
+    {
+        throw PropListIException("ObjCreatPropList::setAttrCrtOrder", "H5Pset_attr_creation_order failed");
+    }
+}
+
+//--------------------------------------------------------------------------
+// Function:	ObjCreatPropList::getAttrCrtOrder
+///\brief	Gets tracking and indexing settings for attribute
+///		creation order.
+///\exception	H5::PropListIException
+///\par Description
+///		When no flag is set, i.e. crt_order_flags = 0, attribute
+///		creation order is neither tracked not indexed.
+///		The C layer Reference Manual at can be found at:
+/// https://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-GetAttrCreationOrder
+// Programmer:  Binh-Minh Ribler - September 2015
+//--------------------------------------------------------------------------
+unsigned ObjCreatPropList::getAttrCrtOrder() const
+{
+    herr_t ret_value;
+    unsigned crt_order_flags = 0;
+    ret_value = H5Pget_attr_creation_order(id, &crt_order_flags);
+    if (ret_value < 0)
+    {
+        throw PropListIException("ObjCreatPropList::getAttrCrtOrder", "H5Pget_attr_creation_order failed");
+    }
+    return(crt_order_flags);
+}
+
+//--------------------------------------------------------------------------
+// Function:	ObjCreatPropList destructor
+///\brief	Noop destructor
+// Programmer	Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+ObjCreatPropList::~ObjCreatPropList() {}
+
+#ifndef H5_NO_NAMESPACE
+} // end namespace
+#endif
diff --git a/c++/src/H5OcreatProp.h b/c++/src/H5OcreatProp.h
new file mode 100644
index 0000000..0fda34d
--- /dev/null
+++ b/c++/src/H5OcreatProp.h
@@ -0,0 +1,76 @@
+// C++ informative line for the emacs editor: -*- C++ -*-
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+#ifndef __H5ObjCreatPropList_H
+#define __H5ObjCreatPropList_H
+
+#ifndef H5_NO_NAMESPACE
+namespace H5 {
+#endif
+
+//! Class ObjCreatPropList represents the HDF5 object creation property list.
+class H5_DLLCPP ObjCreatPropList : public PropList {
+   public:
+	///\brief Default object creation property list.
+	static const ObjCreatPropList& DEFAULT;
+
+	// Creates a object creation property list.
+	ObjCreatPropList();
+
+	// Sets attribute storage phase change thresholds.
+	void setAttrPhaseChange(unsigned max_compact = 8, unsigned min_dense = 6) const;
+
+	// Gets attribute storage phase change thresholds.
+	void getAttrPhaseChange(unsigned& max_compact, unsigned& min_dense) const;
+
+	// Sets tracking and indexing of attribute creation order.
+	void setAttrCrtOrder(unsigned crt_order_flags) const;
+
+	// Gets tracking and indexing settings for attribute creation order.
+	unsigned getAttrCrtOrder() const;
+
+
+	///\brief Returns this class name.
+	virtual H5std_string fromClass () const { return("ObjCreatPropList"); }
+
+	// Copy constructor: creates a copy of a ObjCreatPropList object.
+	ObjCreatPropList( const ObjCreatPropList& original );
+
+	// Creates a copy of an existing object creation property list
+	// using the property list id.
+	ObjCreatPropList (const hid_t plist_id);
+
+	// Noop destructor
+	virtual ~ObjCreatPropList();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+        // Deletes the global constant, should only be used by the library
+        static void deleteConstants();
+
+    private:
+        static ObjCreatPropList* DEFAULT_;
+
+        // Creates the global constant, should only be used by the library
+        static ObjCreatPropList* getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+};
+#ifndef H5_NO_NAMESPACE
+}
+#endif
+#endif // __H5ObjCreatPropList_H
diff --git a/c++/src/H5PredType.cpp b/c++/src/H5PredType.cpp
index 6dbee98..fb29f1e 100644
--- a/c++/src/H5PredType.cpp
+++ b/c++/src/H5PredType.cpp
@@ -20,11 +20,8 @@
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
-#include "H5DcreatProp.h"
-#include "H5CommonFG.h"
 #include "H5DataType.h"
 #include "H5AtomType.h"
-#include "H5Library.h"
 #include "H5PredType.h"
 
 #ifndef H5_NO_NAMESPACE
@@ -42,12 +39,9 @@ namespace H5 {
 //		the provided HDF5 predefined datatype.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-PredType::PredType( const hid_t predtype_id ) : AtomType( predtype_id )
+PredType::PredType(const hid_t predtype_id) : AtomType(predtype_id)
 {
-    if (predtype_id == H5CPP_EXITED)
-	id = predtype_id;
-    else
-	id = H5Tcopy(predtype_id);
+    id = H5Tcopy(predtype_id);
 }
 
 //--------------------------------------------------------------------------
@@ -64,238 +58,1039 @@ PredType::PredType() : AtomType() {}
 ///\param	original - IN: PredType instance to copy
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-PredType::PredType( const PredType& original ) : AtomType( original ) {}
+PredType::PredType(const PredType& original) : AtomType(original) {}
+
+//--------------------------------------------------------------------------
+// Function:	PredType::operator=
+///\brief	Assignment operator.
+///\param	rhs - IN: Reference to the predefined datatype
+///\return	Reference to PredType instance
+///\exception	H5::DataTypeIException
+// Description
+//		Makes a copy of the type on the right hand side and stores
+//		the new id in the left hand side object.
+// Programmer	Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+PredType& PredType::operator=( const PredType& rhs )
+{
+    if (this != &rhs)
+	copy(rhs);
+    return(*this);
+}
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-// Flag to terminate HDF5 library in DataType::~DataType
-const PredType PredType::AtExit(H5CPP_EXITED);
-
-// Definition of pre-defined types
-const PredType PredType::C_S1( H5T_C_S1 );
-const PredType PredType::FORTRAN_S1( H5T_FORTRAN_S1 );
-
-const PredType PredType::STD_I8BE( H5T_STD_I8BE );
-const PredType PredType::STD_I8LE( H5T_STD_I8LE );
-const PredType PredType::STD_I16BE( H5T_STD_I16BE );
-const PredType PredType::STD_I16LE( H5T_STD_I16LE );
-const PredType PredType::STD_I32BE( H5T_STD_I32BE );
-const PredType PredType::STD_I32LE( H5T_STD_I32LE );
-const PredType PredType::STD_I64BE( H5T_STD_I64BE );
-const PredType PredType::STD_I64LE( H5T_STD_I64LE );
-const PredType PredType::STD_U8BE( H5T_STD_U8BE );
-const PredType PredType::STD_U8LE( H5T_STD_U8LE );
-const PredType PredType::STD_U16BE( H5T_STD_U16BE );
-const PredType PredType::STD_U16LE( H5T_STD_U16LE );
-const PredType PredType::STD_U32BE( H5T_STD_U32BE );
-const PredType PredType::STD_U32LE( H5T_STD_U32LE );
-const PredType PredType::STD_U64BE( H5T_STD_U64BE );
-const PredType PredType::STD_U64LE( H5T_STD_U64LE );
-const PredType PredType::STD_B8BE( H5T_STD_B8BE );
-const PredType PredType::STD_B8LE( H5T_STD_B8LE );
-
-const PredType PredType::STD_B16BE( H5T_STD_B16BE );
-const PredType PredType::STD_B16LE( H5T_STD_B16LE );
-const PredType PredType::STD_B32BE( H5T_STD_B32BE );
-const PredType PredType::STD_B32LE( H5T_STD_B32LE );
-const PredType PredType::STD_B64BE( H5T_STD_B64BE );
-const PredType PredType::STD_B64LE( H5T_STD_B64LE );
-const PredType PredType::STD_REF_OBJ( H5T_STD_REF_OBJ );
-const PredType PredType::STD_REF_DSETREG( H5T_STD_REF_DSETREG );
-
-const PredType PredType::IEEE_F32BE( H5T_IEEE_F32BE );
-const PredType PredType::IEEE_F32LE( H5T_IEEE_F32LE );
-const PredType PredType::IEEE_F64BE( H5T_IEEE_F64BE );
-const PredType PredType::IEEE_F64LE( H5T_IEEE_F64LE );
-
-const PredType PredType::UNIX_D32BE( H5T_UNIX_D32BE );
-const PredType PredType::UNIX_D32LE( H5T_UNIX_D32LE );
-const PredType PredType::UNIX_D64BE( H5T_UNIX_D64BE );
-const PredType PredType::UNIX_D64LE( H5T_UNIX_D64LE );
-
-const PredType PredType::INTEL_I8( H5T_INTEL_I8 );
-const PredType PredType::INTEL_I16( H5T_INTEL_I16 );
-const PredType PredType::INTEL_I32( H5T_INTEL_I32 );
-const PredType PredType::INTEL_I64( H5T_INTEL_I64 );
-const PredType PredType::INTEL_U8( H5T_INTEL_U8 );
-const PredType PredType::INTEL_U16( H5T_INTEL_U16 );
-const PredType PredType::INTEL_U32( H5T_INTEL_U32 );
-const PredType PredType::INTEL_U64( H5T_INTEL_U64 );
-const PredType PredType::INTEL_B8( H5T_INTEL_B8 );
-const PredType PredType::INTEL_B16( H5T_INTEL_B16 );
-const PredType PredType::INTEL_B32( H5T_INTEL_B32 );
-const PredType PredType::INTEL_B64( H5T_INTEL_B64 );
-const PredType PredType::INTEL_F32( H5T_INTEL_F32 );
-const PredType PredType::INTEL_F64( H5T_INTEL_F64 );
-
-const PredType PredType::ALPHA_I8( H5T_ALPHA_I8 );
-const PredType PredType::ALPHA_I16( H5T_ALPHA_I16 );
-const PredType PredType::ALPHA_I32( H5T_ALPHA_I32 );
-const PredType PredType::ALPHA_I64( H5T_ALPHA_I64 );
-const PredType PredType::ALPHA_U8( H5T_ALPHA_U8 );
-const PredType PredType::ALPHA_U16( H5T_ALPHA_U16 );
-const PredType PredType::ALPHA_U32( H5T_ALPHA_U32 );
-const PredType PredType::ALPHA_U64( H5T_ALPHA_U64 );
-const PredType PredType::ALPHA_B8( H5T_ALPHA_B8 );
-const PredType PredType::ALPHA_B16( H5T_ALPHA_B16 );
-const PredType PredType::ALPHA_B32( H5T_ALPHA_B32 );
-const PredType PredType::ALPHA_B64( H5T_ALPHA_B64 );
-const PredType PredType::ALPHA_F32( H5T_ALPHA_F32 );
-const PredType PredType::ALPHA_F64( H5T_ALPHA_F64 );
-
-const PredType PredType::MIPS_I8( H5T_MIPS_I8 );
-const PredType PredType::MIPS_I16( H5T_MIPS_I16 );
-const PredType PredType::MIPS_I32( H5T_MIPS_I32 );
-const PredType PredType::MIPS_I64( H5T_MIPS_I64 );
-const PredType PredType::MIPS_U8( H5T_MIPS_U8 );
-const PredType PredType::MIPS_U16( H5T_MIPS_U16 );
-const PredType PredType::MIPS_U32( H5T_MIPS_U32 );
-const PredType PredType::MIPS_U64( H5T_MIPS_U64 );
-const PredType PredType::MIPS_B8( H5T_MIPS_B8 );
-const PredType PredType::MIPS_B16( H5T_MIPS_B16 );
-const PredType PredType::MIPS_B32( H5T_MIPS_B32 );
-const PredType PredType::MIPS_B64( H5T_MIPS_B64 );
-const PredType PredType::MIPS_F32( H5T_MIPS_F32 );
-const PredType PredType::MIPS_F64( H5T_MIPS_F64 );
-
-const PredType PredType::NATIVE_CHAR( H5T_NATIVE_CHAR );
-const PredType PredType::NATIVE_INT( H5T_NATIVE_INT );
-const PredType PredType::NATIVE_FLOAT( H5T_NATIVE_FLOAT );
-const PredType PredType::NATIVE_SCHAR( H5T_NATIVE_SCHAR );
-const PredType PredType::NATIVE_UCHAR( H5T_NATIVE_UCHAR );
-const PredType PredType::NATIVE_SHORT( H5T_NATIVE_SHORT );
-const PredType PredType::NATIVE_USHORT( H5T_NATIVE_USHORT );
-const PredType PredType::NATIVE_UINT( H5T_NATIVE_UINT );
-const PredType PredType::NATIVE_LONG( H5T_NATIVE_LONG );
-const PredType PredType::NATIVE_ULONG( H5T_NATIVE_ULONG );
-const PredType PredType::NATIVE_LLONG( H5T_NATIVE_LLONG );
-const PredType PredType::NATIVE_ULLONG( H5T_NATIVE_ULLONG );
-const PredType PredType::NATIVE_DOUBLE( H5T_NATIVE_DOUBLE );
-#if H5_SIZEOF_LONG_DOUBLE !=0
-const PredType PredType::NATIVE_LDOUBLE( H5T_NATIVE_LDOUBLE );
-#endif
-const PredType PredType::NATIVE_B8( H5T_NATIVE_B8 );
-const PredType PredType::NATIVE_B16( H5T_NATIVE_B16 );
-const PredType PredType::NATIVE_B32( H5T_NATIVE_B32 );
-const PredType PredType::NATIVE_B64( H5T_NATIVE_B64 );
-const PredType PredType::NATIVE_OPAQUE( H5T_NATIVE_OPAQUE );
-const PredType PredType::NATIVE_HSIZE( H5T_NATIVE_HSIZE );
-const PredType PredType::NATIVE_HSSIZE( H5T_NATIVE_HSSIZE );
-const PredType PredType::NATIVE_HERR( H5T_NATIVE_HERR );
-const PredType PredType::NATIVE_HBOOL( H5T_NATIVE_HBOOL );
-
-const PredType PredType::NATIVE_INT8( H5T_NATIVE_INT8 );
-const PredType PredType::NATIVE_UINT8( H5T_NATIVE_UINT8 );
-const PredType PredType::NATIVE_INT16( H5T_NATIVE_INT16 );
-const PredType PredType::NATIVE_UINT16( H5T_NATIVE_UINT16 );
-const PredType PredType::NATIVE_INT32( H5T_NATIVE_INT32 );
-const PredType PredType::NATIVE_UINT32( H5T_NATIVE_UINT32 );
-const PredType PredType::NATIVE_INT64( H5T_NATIVE_INT64 );
-const PredType PredType::NATIVE_UINT64( H5T_NATIVE_UINT64 );
+// These dummy functions do not inherit from DataType - they'll
+// throw an DataTypeIException if invoked.
+void PredType::commit(H5Location& loc, const char* name )
+{
+   throw DataTypeIException("PredType::commit", "Error: Attempted to commit a predefined datatype.  Invalid operation!" );
+}
+
+void PredType::commit(H5Location& loc, const H5std_string& name )
+{
+   commit( loc, name.c_str());
+}
+
+bool PredType::committed()
+{
+   throw DataTypeIException("PredType::committed", "Error: Attempting to check for commit status on a predefined datatype." );
+}
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
+// Default destructor
+//--------------------------------------------------------------------------
+// Function:	PredType destructor
+///\brief	Noop destructor.
+// Programmer	Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+PredType::~PredType() {}
+
+/*****************************************************************************
+	The following section is regarding the global constants PredType,
+	DataSpace, and PropList.
+
+ *****************************************************************************/
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Definition pointers for the constants
+PredType* PredType::PREDTYPE_CONST_ = 0; //dummy
+PredType* PredType::STD_I8BE_;
+PredType* PredType::STD_I8LE_;
+PredType* PredType::STD_I16BE_;
+PredType* PredType::STD_I16LE_;
+PredType* PredType::STD_I32BE_;
+PredType* PredType::STD_I32LE_;
+PredType* PredType::STD_I64BE_;
+PredType* PredType::STD_I64LE_;
+PredType* PredType::STD_U8BE_;
+PredType* PredType::STD_U8LE_;
+PredType* PredType::STD_U16BE_;
+PredType* PredType::STD_U16LE_;
+PredType* PredType::STD_U32BE_;
+PredType* PredType::STD_U32LE_;
+PredType* PredType::STD_U64BE_;
+PredType* PredType::STD_U64LE_;
+PredType* PredType::STD_B8BE_;
+PredType* PredType::STD_B8LE_;
+PredType* PredType::STD_B16BE_;
+PredType* PredType::STD_B16LE_;
+PredType* PredType::STD_B32BE_;
+PredType* PredType::STD_B32LE_;
+PredType* PredType::STD_B64BE_;
+PredType* PredType::STD_B64LE_;
+PredType* PredType::STD_REF_OBJ_;
+PredType* PredType::STD_REF_DSETREG_;
+
+PredType* PredType::C_S1_;
+PredType* PredType::FORTRAN_S1_;
+
+PredType* PredType::IEEE_F32BE_;
+PredType* PredType::IEEE_F32LE_;
+PredType* PredType::IEEE_F64BE_;
+PredType* PredType::IEEE_F64LE_;
+
+PredType* PredType::UNIX_D32BE_;
+PredType* PredType::UNIX_D32LE_;
+PredType* PredType::UNIX_D64BE_;
+PredType* PredType::UNIX_D64LE_;
+
+PredType* PredType::INTEL_I8_;
+PredType* PredType::INTEL_I16_;
+PredType* PredType::INTEL_I32_;
+PredType* PredType::INTEL_I64_;
+PredType* PredType::INTEL_U8_;
+PredType* PredType::INTEL_U16_;
+PredType* PredType::INTEL_U32_;
+PredType* PredType::INTEL_U64_;
+PredType* PredType::INTEL_B8_;
+PredType* PredType::INTEL_B16_;
+PredType* PredType::INTEL_B32_;
+PredType* PredType::INTEL_B64_;
+PredType* PredType::INTEL_F32_;
+PredType* PredType::INTEL_F64_;
+
+PredType* PredType::ALPHA_I8_;
+PredType* PredType::ALPHA_I16_;
+PredType* PredType::ALPHA_I32_;
+PredType* PredType::ALPHA_I64_;
+PredType* PredType::ALPHA_U8_;
+PredType* PredType::ALPHA_U16_;
+PredType* PredType::ALPHA_U32_;
+PredType* PredType::ALPHA_U64_;
+PredType* PredType::ALPHA_B8_;
+PredType* PredType::ALPHA_B16_;
+PredType* PredType::ALPHA_B32_;
+PredType* PredType::ALPHA_B64_;
+PredType* PredType::ALPHA_F32_;
+PredType* PredType::ALPHA_F64_;
+
+PredType* PredType::MIPS_I8_;
+PredType* PredType::MIPS_I16_;
+PredType* PredType::MIPS_I32_;
+PredType* PredType::MIPS_I64_;
+PredType* PredType::MIPS_U8_;
+PredType* PredType::MIPS_U16_;
+PredType* PredType::MIPS_U32_;
+PredType* PredType::MIPS_U64_;
+PredType* PredType::MIPS_B8_;
+PredType* PredType::MIPS_B16_;
+PredType* PredType::MIPS_B32_;
+PredType* PredType::MIPS_B64_;
+PredType* PredType::MIPS_F32_;
+PredType* PredType::MIPS_F64_;
+
+PredType* PredType::NATIVE_CHAR_;
+PredType* PredType::NATIVE_SCHAR_;
+PredType* PredType::NATIVE_UCHAR_;
+PredType* PredType::NATIVE_SHORT_;
+PredType* PredType::NATIVE_USHORT_;
+PredType* PredType::NATIVE_INT_;
+PredType* PredType::NATIVE_UINT_;
+PredType* PredType::NATIVE_LONG_;
+PredType* PredType::NATIVE_ULONG_;
+PredType* PredType::NATIVE_LLONG_;
+PredType* PredType::NATIVE_ULLONG_;
+PredType* PredType::NATIVE_FLOAT_;
+PredType* PredType::NATIVE_DOUBLE_;
+PredType* PredType::NATIVE_LDOUBLE_;
+PredType* PredType::NATIVE_B8_;
+PredType* PredType::NATIVE_B16_;
+PredType* PredType::NATIVE_B32_;
+PredType* PredType::NATIVE_B64_;
+PredType* PredType::NATIVE_OPAQUE_;
+PredType* PredType::NATIVE_HSIZE_;
+PredType* PredType::NATIVE_HSSIZE_;
+PredType* PredType::NATIVE_HERR_;
+PredType* PredType::NATIVE_HBOOL_;
+
+PredType* PredType::NATIVE_INT8_;
+PredType* PredType::NATIVE_UINT8_;
+PredType* PredType::NATIVE_INT16_;
+PredType* PredType::NATIVE_UINT16_;
+PredType* PredType::NATIVE_INT32_;
+PredType* PredType::NATIVE_UINT32_;
+PredType* PredType::NATIVE_INT64_;
+PredType* PredType::NATIVE_UINT64_;
 // LEAST types
 #if H5_SIZEOF_INT_LEAST8_T != 0
-const PredType PredType::NATIVE_INT_LEAST8( H5T_NATIVE_INT_LEAST8 );
+PredType* PredType::NATIVE_INT_LEAST8_;
 #endif /* H5_SIZEOF_INT_LEAST8_T */
 #if H5_SIZEOF_UINT_LEAST8_T != 0
-const PredType PredType::NATIVE_UINT_LEAST8( H5T_NATIVE_UINT_LEAST8 );
+PredType* PredType::NATIVE_UINT_LEAST8_;
 #endif /* H5_SIZEOF_UINT_LEAST8_T */
 
 #if H5_SIZEOF_INT_LEAST16_T != 0
-const PredType PredType::NATIVE_INT_LEAST16( H5T_NATIVE_INT_LEAST16 );
+PredType* PredType::NATIVE_INT_LEAST16_;
 #endif /* H5_SIZEOF_INT_LEAST16_T */
 #if H5_SIZEOF_UINT_LEAST16_T != 0
-const PredType PredType::NATIVE_UINT_LEAST16( H5T_NATIVE_UINT_LEAST16 );
+PredType* PredType::NATIVE_UINT_LEAST16_;
 #endif /* H5_SIZEOF_UINT_LEAST16_T */
 
 #if H5_SIZEOF_INT_LEAST32_T != 0
-const PredType PredType::NATIVE_INT_LEAST32( H5T_NATIVE_INT_LEAST32 );
+PredType* PredType::NATIVE_INT_LEAST32_;
 #endif /* H5_SIZEOF_INT_LEAST32_T */
 #if H5_SIZEOF_UINT_LEAST32_T != 0
-const PredType PredType::NATIVE_UINT_LEAST32( H5T_NATIVE_UINT_LEAST32 );
+PredType* PredType::NATIVE_UINT_LEAST32_;
 #endif /* H5_SIZEOF_UINT_LEAST32_T */
 
 #if H5_SIZEOF_INT_LEAST64_T != 0
-const PredType PredType::NATIVE_INT_LEAST64( H5T_NATIVE_INT_LEAST64 );
+PredType* PredType::NATIVE_INT_LEAST64_;
 #endif /* H5_SIZEOF_INT_LEAST64_T */
 #if H5_SIZEOF_UINT_LEAST64_T != 0
-const PredType PredType::NATIVE_UINT_LEAST64( H5T_NATIVE_UINT_LEAST64 );
+PredType* PredType::NATIVE_UINT_LEAST64_;
 #endif /* H5_SIZEOF_UINT_LEAST64_T */
 
 // FAST types
 #if H5_SIZEOF_INT_FAST8_T != 0
-const PredType PredType::NATIVE_INT_FAST8( H5T_NATIVE_INT_FAST8 );
+PredType* PredType::NATIVE_INT_FAST8_;
 #endif /* H5_SIZEOF_INT_FAST8_T */
 #if H5_SIZEOF_UINT_FAST8_T != 0
-const PredType PredType::NATIVE_UINT_FAST8( H5T_NATIVE_UINT_FAST8 );
+PredType* PredType::NATIVE_UINT_FAST8_;
 #endif /* H5_SIZEOF_UINT_FAST8_T */
 
 #if H5_SIZEOF_INT_FAST16_T != 0
-const PredType PredType::NATIVE_INT_FAST16( H5T_NATIVE_INT_FAST16 );
+PredType* PredType::NATIVE_INT_FAST16_;
 #endif /* H5_SIZEOF_INT_FAST16_T */
 #if H5_SIZEOF_UINT_FAST16_T != 0
-const PredType PredType::NATIVE_UINT_FAST16( H5T_NATIVE_UINT_FAST16 );
+PredType* PredType::NATIVE_UINT_FAST16_;
 #endif /* H5_SIZEOF_UINT_FAST16_T */
 
 #if H5_SIZEOF_INT_FAST32_T != 0
-const PredType PredType::NATIVE_INT_FAST32( H5T_NATIVE_INT_FAST32 );
+PredType* PredType::NATIVE_INT_FAST32_;
 #endif /* H5_SIZEOF_INT_FAST32_T */
 #if H5_SIZEOF_UINT_FAST32_T != 0
-const PredType PredType::NATIVE_UINT_FAST32( H5T_NATIVE_UINT_FAST32 );
+PredType* PredType::NATIVE_UINT_FAST32_;
 #endif /* H5_SIZEOF_UINT_FAST32_T */
 
 #if H5_SIZEOF_INT_FAST64_T != 0
-const PredType PredType::NATIVE_INT_FAST64( H5T_NATIVE_INT_FAST64 );
+PredType* PredType::NATIVE_INT_FAST64_;
 #endif /* H5_SIZEOF_INT_FAST64_T */
 #if H5_SIZEOF_UINT_FAST64_T != 0
-const PredType PredType::NATIVE_UINT_FAST64( H5T_NATIVE_UINT_FAST64 );
+PredType* PredType::NATIVE_UINT_FAST64_;
 #endif /* H5_SIZEOF_UINT_FAST64_T */
-#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
-// Function:	PredType::operator=
-///\brief	Assignment operator.
-///\param	rhs - IN: Reference to the predefined datatype
-///\return	Reference to PredType instance
-///\exception	H5::DataTypeIException
+// Function:	PredType::getPredTypes
+// Purpose:	Returns the dummy PredType constant object pointer
+// Return:	PredType object pointer
 // Description
-//		Makes a copy of the type on the right hand side and stores
-//		the new id in the left hand side object.
-// Programmer	Binh-Minh Ribler - 2000
+//		If the dummy constant PREDTYPE_CONST_ is not allocated yet,
+//		call makePredTypes() to allocate all of the PredType constants.
+//		Otherwise, just simply return the object pointer PREDTYPE_CONST_.
+//
+//		Note that, there is a similar function to getPredTypes() in
+//		other classes, that have global constants, is called getConstant().
+//
+// Programmer	Binh-Minh Ribler - September 2015
 //--------------------------------------------------------------------------
-PredType& PredType::operator=( const PredType& rhs )
+PredType* PredType::getPredTypes()
 {
-    if (this != &rhs)
-	copy(rhs);
-    return(*this);
-}
+    // Tell the C library not to clean up, H5Library::termH5cpp will call
+    // H5close - more dependency if use H5Library::dontAtExit()
+    if (!IdComponent::H5dontAtexit_called)
+    {
+        (void) H5dont_atexit();
+        IdComponent::H5dontAtexit_called = true;
+    }
 
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// These dummy functions do not inherit from DataType - they'll
-// throw an DataTypeIException if invoked.
-void PredType::commit(H5Location& loc, const char* name )
-{
-   throw DataTypeIException("PredType::commit", "Error: Attempted to commit a predefined datatype.  Invalid operation!" );
+    // If the dummy constant pointer is not allocated, allocate all PredType
+    // constant pointers.  Otherwise, throw because it shouldn't be.
+    if (PREDTYPE_CONST_ == 0)
+	makePredTypes();
+    else
+	throw H5::DataTypeIException("PredType::getPredTypes", "PredType::getPredTypes is being invoked on an allocated PREDTYPE_CONST_");
+    return PREDTYPE_CONST_;
 }
 
-void PredType::commit(H5Location& loc, const H5std_string& name )
+//--------------------------------------------------------------------------
+// Function:	PredType::makePredTypes
+// Purpose:	Allocate all PredType constants.
+// Programmer	Binh-Minh Ribler - September 2015
+//--------------------------------------------------------------------------
+void PredType::makePredTypes()
 {
-   commit( loc, name.c_str());
-}
+    PREDTYPE_CONST_ = new PredType;
+    C_S1_ = new PredType(H5T_C_S1);
+    FORTRAN_S1_ = new PredType(H5T_FORTRAN_S1);
+
+    STD_I8BE_ = new PredType(H5T_STD_I8BE);
+    STD_I8LE_ = new PredType(H5T_STD_I8LE);
+    STD_I16BE_ = new PredType(H5T_STD_I16BE);
+    STD_I16LE_ = new PredType(H5T_STD_I16LE);
+    STD_I32BE_ = new PredType(H5T_STD_I32BE);
+    STD_I32LE_ = new PredType(H5T_STD_I32LE);
+    STD_I64BE_ = new PredType(H5T_STD_I64BE);
+    STD_I64LE_ = new PredType(H5T_STD_I64LE);
+    STD_U8BE_ = new PredType(H5T_STD_U8BE);
+    STD_U8LE_ = new PredType(H5T_STD_U8LE);
+    STD_U16BE_ = new PredType(H5T_STD_U16BE);
+    STD_U16LE_ = new PredType(H5T_STD_U16LE);
+    STD_U32BE_ = new PredType(H5T_STD_U32BE);
+    STD_U32LE_ = new PredType(H5T_STD_U32LE);
+    STD_U64BE_ = new PredType(H5T_STD_U64BE);
+    STD_U64LE_ = new PredType(H5T_STD_U64LE);
+    STD_B8BE_ = new PredType(H5T_STD_B8BE);
+    STD_B8LE_ = new PredType(H5T_STD_B8LE);
+
+    STD_B16BE_ = new PredType(H5T_STD_B16BE);
+    STD_B16LE_ = new PredType(H5T_STD_B16LE);
+    STD_B32BE_ = new PredType(H5T_STD_B32BE);
+    STD_B32LE_ = new PredType(H5T_STD_B32LE);
+    STD_B64BE_ = new PredType(H5T_STD_B64BE);
+    STD_B64LE_ = new PredType(H5T_STD_B64LE);
+    STD_REF_OBJ_ = new PredType(H5T_STD_REF_OBJ);
+    STD_REF_DSETREG_ = new PredType(H5T_STD_REF_DSETREG);
+
+    IEEE_F32BE_ = new PredType(H5T_IEEE_F32BE);
+    IEEE_F32LE_ = new PredType(H5T_IEEE_F32LE);
+    IEEE_F64BE_ = new PredType(H5T_IEEE_F64BE);
+    IEEE_F64LE_ = new PredType(H5T_IEEE_F64LE);
+
+    UNIX_D32BE_ = new PredType(H5T_UNIX_D32BE);
+    UNIX_D32LE_ = new PredType(H5T_UNIX_D32LE);
+    UNIX_D64BE_ = new PredType(H5T_UNIX_D64BE);
+    UNIX_D64LE_ = new PredType(H5T_UNIX_D64LE);
+
+    INTEL_I8_ = new PredType(H5T_INTEL_I8);
+    INTEL_I16_ = new PredType(H5T_INTEL_I16);
+    INTEL_I32_ = new PredType(H5T_INTEL_I32);
+    INTEL_I64_ = new PredType(H5T_INTEL_I64);
+    INTEL_U8_ = new PredType(H5T_INTEL_U8);
+    INTEL_U16_ = new PredType(H5T_INTEL_U16);
+    INTEL_U32_ = new PredType(H5T_INTEL_U32);
+    INTEL_U64_ = new PredType(H5T_INTEL_U64);
+    INTEL_B8_ = new PredType(H5T_INTEL_B8);
+    INTEL_B16_ = new PredType(H5T_INTEL_B16);
+    INTEL_B32_ = new PredType(H5T_INTEL_B32);
+    INTEL_B64_ = new PredType(H5T_INTEL_B64);
+    INTEL_F32_ = new PredType(H5T_INTEL_F32);
+    INTEL_F64_ = new PredType(H5T_INTEL_F64);
+
+    ALPHA_I8_ = new PredType(H5T_ALPHA_I8);
+    ALPHA_I16_ = new PredType(H5T_ALPHA_I16);
+    ALPHA_I32_ = new PredType(H5T_ALPHA_I32);
+    ALPHA_I64_ = new PredType(H5T_ALPHA_I64);
+    ALPHA_U8_ = new PredType(H5T_ALPHA_U8);
+    ALPHA_U16_ = new PredType(H5T_ALPHA_U16);
+    ALPHA_U32_ = new PredType(H5T_ALPHA_U32);
+    ALPHA_U64_ = new PredType(H5T_ALPHA_U64);
+    ALPHA_B8_ = new PredType(H5T_ALPHA_B8);
+    ALPHA_B16_ = new PredType(H5T_ALPHA_B16);
+    ALPHA_B32_ = new PredType(H5T_ALPHA_B32);
+    ALPHA_B64_ = new PredType(H5T_ALPHA_B64);
+    ALPHA_F32_ = new PredType(H5T_ALPHA_F32);
+    ALPHA_F64_ = new PredType(H5T_ALPHA_F64);
+
+    MIPS_I8_ = new PredType(H5T_MIPS_I8);
+    MIPS_I16_ = new PredType(H5T_MIPS_I16);
+    MIPS_I32_ = new PredType(H5T_MIPS_I32);
+    MIPS_I64_ = new PredType(H5T_MIPS_I64);
+    MIPS_U8_ = new PredType(H5T_MIPS_U8);
+    MIPS_U16_ = new PredType(H5T_MIPS_U16);
+    MIPS_U32_ = new PredType(H5T_MIPS_U32);
+    MIPS_U64_ = new PredType(H5T_MIPS_U64);
+    MIPS_B8_ = new PredType(H5T_MIPS_B8);
+    MIPS_B16_ = new PredType(H5T_MIPS_B16);
+    MIPS_B32_ = new PredType(H5T_MIPS_B32);
+    MIPS_B64_ = new PredType(H5T_MIPS_B64);
+    MIPS_F32_ = new PredType(H5T_MIPS_F32);
+    MIPS_F64_ = new PredType(H5T_MIPS_F64);
+
+    NATIVE_CHAR_ = new PredType(H5T_NATIVE_CHAR);
+    NATIVE_INT_ = new PredType(H5T_NATIVE_INT);
+    NATIVE_FLOAT_ = new PredType(H5T_NATIVE_FLOAT);
+    NATIVE_SCHAR_ = new PredType(H5T_NATIVE_SCHAR);
+    NATIVE_UCHAR_ = new PredType(H5T_NATIVE_UCHAR);
+    NATIVE_SHORT_ = new PredType(H5T_NATIVE_SHORT);
+    NATIVE_USHORT_ = new PredType(H5T_NATIVE_USHORT);
+    NATIVE_UINT_ = new PredType(H5T_NATIVE_UINT);
+    NATIVE_LONG_ = new PredType(H5T_NATIVE_LONG);
+    NATIVE_ULONG_ = new PredType(H5T_NATIVE_ULONG);
+    NATIVE_LLONG_ = new PredType(H5T_NATIVE_LLONG);
+    NATIVE_ULLONG_ = new PredType(H5T_NATIVE_ULLONG);
+    NATIVE_DOUBLE_ = new PredType(H5T_NATIVE_DOUBLE);
+#if H5_SIZEOF_LONG_DOUBLE !=0
+    NATIVE_LDOUBLE_ = new PredType(H5T_NATIVE_LDOUBLE);
+#endif
+    NATIVE_B8_ = new PredType(H5T_NATIVE_B8);
+    NATIVE_B16_ = new PredType(H5T_NATIVE_B16);
+    NATIVE_B32_ = new PredType(H5T_NATIVE_B32);
+    NATIVE_B64_ = new PredType(H5T_NATIVE_B64);
+    NATIVE_OPAQUE_ = new PredType(H5T_NATIVE_OPAQUE);
+    NATIVE_HSIZE_ = new PredType(H5T_NATIVE_HSIZE);
+    NATIVE_HSSIZE_ = new PredType(H5T_NATIVE_HSSIZE);
+    NATIVE_HERR_ = new PredType(H5T_NATIVE_HERR);
+    NATIVE_HBOOL_ = new PredType(H5T_NATIVE_HBOOL);
+
+    NATIVE_INT8_ = new PredType(H5T_NATIVE_INT8);
+    NATIVE_UINT8_ = new PredType(H5T_NATIVE_UINT8);
+    NATIVE_INT16_ = new PredType(H5T_NATIVE_INT16);
+    NATIVE_UINT16_ = new PredType(H5T_NATIVE_UINT16);
+    NATIVE_INT32_ = new PredType(H5T_NATIVE_INT32);
+    NATIVE_UINT32_ = new PredType(H5T_NATIVE_UINT32);
+    NATIVE_INT64_ = new PredType(H5T_NATIVE_INT64);
+    NATIVE_UINT64_ = new PredType(H5T_NATIVE_UINT64);
+
+// LEAST types
+#if H5_SIZEOF_INT_LEAST8_T != 0
+    NATIVE_INT_LEAST8_ = new PredType(H5T_NATIVE_INT_LEAST8);
+#endif /* H5_SIZEOF_INT_LEAST8_T */
+#if H5_SIZEOF_UINT_LEAST8_T != 0
+    NATIVE_UINT_LEAST8_ = new PredType(H5T_NATIVE_UINT_LEAST8);
+#endif /* H5_SIZEOF_UINT_LEAST8_T */
+
+#if H5_SIZEOF_INT_LEAST16_T != 0
+    NATIVE_INT_LEAST16_ = new PredType(H5T_NATIVE_INT_LEAST16);
+#endif /* H5_SIZEOF_INT_LEAST16_T */
+#if H5_SIZEOF_UINT_LEAST16_T != 0
+    NATIVE_UINT_LEAST16_ = new PredType(H5T_NATIVE_UINT_LEAST16);
+#endif /* H5_SIZEOF_UINT_LEAST16_T */
+
+#if H5_SIZEOF_INT_LEAST32_T != 0
+    NATIVE_INT_LEAST32_ = new PredType(H5T_NATIVE_INT_LEAST32);
+#endif /* H5_SIZEOF_INT_LEAST32_T */
+#if H5_SIZEOF_UINT_LEAST32_T != 0
+    NATIVE_UINT_LEAST32_ = new PredType(H5T_NATIVE_UINT_LEAST32);
+#endif /* H5_SIZEOF_UINT_LEAST32_T */
+
+#if H5_SIZEOF_INT_LEAST64_T != 0
+    NATIVE_INT_LEAST64_ = new PredType(H5T_NATIVE_INT_LEAST64);
+#endif /* H5_SIZEOF_INT_LEAST64_T */
+#if H5_SIZEOF_UINT_LEAST64_T != 0
+    NATIVE_UINT_LEAST64_ = new PredType(H5T_NATIVE_UINT_LEAST64);
+#endif /* H5_SIZEOF_UINT_LEAST64_T */
+
+// FAST types
+#if H5_SIZEOF_INT_FAST8_T != 0
+    NATIVE_INT_FAST8_ = new PredType(H5T_NATIVE_INT_FAST8);
+#endif /* H5_SIZEOF_INT_FAST8_T */
+#if H5_SIZEOF_UINT_FAST8_T != 0
+    NATIVE_UINT_FAST8_ = new PredType(H5T_NATIVE_UINT_FAST8);
+#endif /* H5_SIZEOF_UINT_FAST8_T */
+
+#if H5_SIZEOF_INT_FAST16_T != 0
+    NATIVE_INT_FAST16_ = new PredType(H5T_NATIVE_INT_FAST16);
+#endif /* H5_SIZEOF_INT_FAST16_T */
+#if H5_SIZEOF_UINT_FAST16_T != 0
+    NATIVE_UINT_FAST16_ = new PredType(H5T_NATIVE_UINT_FAST16);
+#endif /* H5_SIZEOF_UINT_FAST16_T */
+
+#if H5_SIZEOF_INT_FAST32_T != 0
+    NATIVE_INT_FAST32_ = new PredType(H5T_NATIVE_INT_FAST32);
+#endif /* H5_SIZEOF_INT_FAST32_T */
+#if H5_SIZEOF_UINT_FAST32_T != 0
+    NATIVE_UINT_FAST32_ = new PredType(H5T_NATIVE_UINT_FAST32);
+#endif /* H5_SIZEOF_UINT_FAST32_T */
+
+#if H5_SIZEOF_INT_FAST64_T != 0
+    NATIVE_INT_FAST64_ = new PredType(H5T_NATIVE_INT_FAST64);
+#endif /* H5_SIZEOF_INT_FAST64_T */
+#if H5_SIZEOF_UINT_FAST64_T != 0
+    NATIVE_UINT_FAST64_ = new PredType(H5T_NATIVE_UINT_FAST64);
+#endif /* H5_SIZEOF_UINT_FAST64_T */
+
+} // makePredTypes
 
-bool PredType::committed()
-{
-   throw DataTypeIException("PredType::committed", "Error: Attempting to check for commit status on a predefined datatype." );
-}
-#endif // DOXYGEN_SHOULD_SKIP_THIS
 
-// Default destructor
 //--------------------------------------------------------------------------
-// Function:	PredType destructor
-///\brief	Noop destructor.
-// Programmer	Binh-Minh Ribler - 2000
+// Function:	PredType::deleteConstants
+// Purpose:	Deletes all PredType constant pointers.
+// Programmer	Binh-Minh Ribler - September 2015
 //--------------------------------------------------------------------------
-PredType::~PredType() {}
+void PredType::deleteConstants()
+{
+    delete STD_I8BE_;
+    delete STD_I8LE_;
+    delete STD_I16BE_;
+    delete STD_I16LE_;
+    delete STD_I32BE_;
+    delete STD_I32LE_;
+    delete STD_I64BE_;
+    delete STD_I64LE_;
+    delete STD_U8BE_;
+    delete STD_U8LE_;
+    delete STD_U16BE_;
+    delete STD_U16LE_;
+    delete STD_U32BE_;
+    delete STD_U32LE_;
+    delete STD_U64BE_;
+    delete STD_U64LE_;
+    delete STD_B8BE_;
+    delete STD_B8LE_;
+    delete STD_B16BE_;
+    delete STD_B16LE_;
+    delete STD_B32BE_;
+    delete STD_B32LE_;
+    delete STD_B64BE_;
+    delete STD_B64LE_;
+    delete STD_REF_OBJ_;
+    delete STD_REF_DSETREG_;
+
+    delete C_S1_;
+    delete FORTRAN_S1_;
+
+    delete IEEE_F32BE_;
+    delete IEEE_F32LE_;
+    delete IEEE_F64BE_;
+    delete IEEE_F64LE_;
+
+    delete UNIX_D32BE_;
+    delete UNIX_D32LE_;
+    delete UNIX_D64BE_;
+    delete UNIX_D64LE_;
+
+    delete INTEL_I8_;
+    delete INTEL_I16_;
+    delete INTEL_I32_;
+    delete INTEL_I64_;
+    delete INTEL_U8_;
+    delete INTEL_U16_;
+    delete INTEL_U32_;
+    delete INTEL_U64_;
+    delete INTEL_B8_;
+    delete INTEL_B16_;
+    delete INTEL_B32_;
+    delete INTEL_B64_;
+    delete INTEL_F32_;
+    delete INTEL_F64_;
+
+    delete ALPHA_I8_;
+    delete ALPHA_I16_;
+    delete ALPHA_I32_;
+    delete ALPHA_I64_;
+    delete ALPHA_U8_;
+    delete ALPHA_U16_;
+    delete ALPHA_U32_;
+    delete ALPHA_U64_;
+    delete ALPHA_B8_;
+    delete ALPHA_B16_;
+    delete ALPHA_B32_;
+    delete ALPHA_B64_;
+    delete ALPHA_F32_;
+    delete ALPHA_F64_;
+
+    delete MIPS_I8_;
+    delete MIPS_I16_;
+    delete MIPS_I32_;
+    delete MIPS_I64_;
+    delete MIPS_U8_;
+    delete MIPS_U16_;
+    delete MIPS_U32_;
+    delete MIPS_U64_;
+    delete MIPS_B8_;
+    delete MIPS_B16_;
+    delete MIPS_B32_;
+    delete MIPS_B64_;
+    delete MIPS_F32_;
+    delete MIPS_F64_;
+
+    delete NATIVE_CHAR_;
+    delete NATIVE_SCHAR_;
+    delete NATIVE_UCHAR_;
+    delete NATIVE_SHORT_;
+    delete NATIVE_USHORT_;
+    delete NATIVE_INT_;
+    delete NATIVE_UINT_;
+    delete NATIVE_LONG_;
+    delete NATIVE_ULONG_;
+    delete NATIVE_LLONG_;
+    delete NATIVE_ULLONG_;
+    delete NATIVE_FLOAT_;
+    delete NATIVE_DOUBLE_;
+    delete NATIVE_LDOUBLE_;
+    delete NATIVE_B8_;
+    delete NATIVE_B16_;
+    delete NATIVE_B32_;
+    delete NATIVE_B64_;
+    delete NATIVE_OPAQUE_;
+    delete NATIVE_HSIZE_;
+    delete NATIVE_HSSIZE_;
+    delete NATIVE_HERR_;
+    delete NATIVE_HBOOL_;
+
+    delete NATIVE_INT8_;
+    delete NATIVE_UINT8_;
+    delete NATIVE_INT16_;
+    delete NATIVE_UINT16_;
+    delete NATIVE_INT32_;
+    delete NATIVE_UINT32_;
+    delete NATIVE_INT64_;
+    delete NATIVE_UINT64_;
+
+// LEAST types
+#if H5_SIZEOF_INT_LEAST8_T != 0
+    delete NATIVE_INT_LEAST8_;
+#endif /* H5_SIZEOF_INT_LEAST8_T */
+#if H5_SIZEOF_UINT_LEAST8_T != 0
+    delete NATIVE_UINT_LEAST8_;
+#endif /* H5_SIZEOF_UINT_LEAST8_T */
+
+#if H5_SIZEOF_INT_LEAST16_T != 0
+    delete NATIVE_INT_LEAST16_;
+#endif /* H5_SIZEOF_INT_LEAST16_T */
+#if H5_SIZEOF_UINT_LEAST16_T != 0
+    delete NATIVE_UINT_LEAST16_;
+#endif /* H5_SIZEOF_UINT_LEAST16_T */
+
+#if H5_SIZEOF_INT_LEAST32_T != 0
+    delete NATIVE_INT_LEAST32_;
+#endif /* H5_SIZEOF_INT_LEAST32_T */
+#if H5_SIZEOF_UINT_LEAST32_T != 0
+    delete NATIVE_UINT_LEAST32_;
+#endif /* H5_SIZEOF_UINT_LEAST32_T */
+
+#if H5_SIZEOF_INT_LEAST64_T != 0
+    delete NATIVE_INT_LEAST64_;
+#endif /* H5_SIZEOF_INT_LEAST64_T */
+#if H5_SIZEOF_UINT_LEAST64_T != 0
+    delete NATIVE_UINT_LEAST64_;
+#endif /* H5_SIZEOF_UINT_LEAST64_T */
+
+// FAST types
+#if H5_SIZEOF_INT_FAST8_T != 0
+    delete NATIVE_INT_FAST8_;
+#endif /* H5_SIZEOF_INT_FAST8_T */
+#if H5_SIZEOF_UINT_FAST8_T != 0
+    delete NATIVE_UINT_FAST8_;
+#endif /* H5_SIZEOF_UINT_FAST8_T */
+
+#if H5_SIZEOF_INT_FAST16_T != 0
+    delete NATIVE_INT_FAST16_;
+#endif /* H5_SIZEOF_INT_FAST16_T */
+#if H5_SIZEOF_UINT_FAST16_T != 0
+    delete NATIVE_UINT_FAST16_;
+#endif /* H5_SIZEOF_UINT_FAST16_T */
+
+#if H5_SIZEOF_INT_FAST32_T != 0
+    delete NATIVE_INT_FAST32_;
+#endif /* H5_SIZEOF_INT_FAST32_T */
+#if H5_SIZEOF_UINT_FAST32_T != 0
+    delete NATIVE_UINT_FAST32_;
+#endif /* H5_SIZEOF_UINT_FAST32_T */
+
+#if H5_SIZEOF_INT_FAST64_T != 0
+    delete NATIVE_INT_FAST64_;
+#endif /* H5_SIZEOF_INT_FAST64_T */
+#if H5_SIZEOF_UINT_FAST64_T != 0
+    delete NATIVE_UINT_FAST64_;
+#endif /* H5_SIZEOF_UINT_FAST64_T */
+
+    delete PREDTYPE_CONST_;
+    PREDTYPE_CONST_ = 0;
+} // deleteConstants
+
+// Assigning the constant references to the dynamically allocated constants
+// after using PREDTYPE_CONST to activate the creation of those constants.
+
+//  PREDTYPE_CONST will be the first static constant declared in the file.
+//  getPredTypes() will call makePredTypes() to allocate memory for all the
+//  PredType constants.  Note that, there is a similar function to getPredTypes()
+//  in other classes, that have global constants, is called getConstant().
+
+const PredType& PredType::PREDTYPE_CONST = *PredType::getPredTypes();
+const PredType& PredType::STD_I8BE = *STD_I8BE_;
+const PredType& PredType::STD_I8LE = *STD_I8LE_;
+const PredType& PredType::STD_I16BE = *STD_I16BE_;
+const PredType& PredType::STD_I16LE = *STD_I16LE_;
+const PredType& PredType::STD_I32BE = *STD_I32BE_;
+const PredType& PredType::STD_I32LE = *STD_I32LE_;
+const PredType& PredType::STD_I64BE = *STD_I64BE_;
+const PredType& PredType::STD_I64LE = *STD_I64LE_;
+const PredType& PredType::STD_U8BE = *STD_U8BE_;
+const PredType& PredType::STD_U8LE = *STD_U8LE_;
+const PredType& PredType::STD_U16BE = *STD_U16BE_;
+const PredType& PredType::STD_U16LE = *STD_U16LE_;
+const PredType& PredType::STD_U32BE = *STD_U32BE_;
+const PredType& PredType::STD_U32LE = *STD_U32LE_;
+const PredType& PredType::STD_U64BE = *STD_U64BE_;
+const PredType& PredType::STD_U64LE = *STD_U64LE_;
+const PredType& PredType::STD_B8BE = *STD_B8BE_;
+const PredType& PredType::STD_B8LE = *STD_B8LE_;
+const PredType& PredType::STD_B16BE = *STD_B16BE_;
+const PredType& PredType::STD_B16LE = *STD_B16LE_;
+const PredType& PredType::STD_B32BE = *STD_B32BE_;
+const PredType& PredType::STD_B32LE = *STD_B32LE_;
+const PredType& PredType::STD_B64BE = *STD_B64BE_;
+const PredType& PredType::STD_B64LE = *STD_B64LE_;
+const PredType& PredType::STD_REF_OBJ = *STD_REF_OBJ_;
+const PredType& PredType::STD_REF_DSETREG = *STD_REF_DSETREG_;
+
+const PredType& PredType::C_S1 = *C_S1_;
+const PredType& PredType::FORTRAN_S1 = *FORTRAN_S1_;
+
+const PredType& PredType::IEEE_F32BE = *IEEE_F32BE_;
+const PredType& PredType::IEEE_F32LE = *IEEE_F32LE_;
+const PredType& PredType::IEEE_F64BE = *IEEE_F64BE_;
+const PredType& PredType::IEEE_F64LE = *IEEE_F64LE_;
+
+const PredType& PredType::UNIX_D32BE = *UNIX_D32BE_;
+const PredType& PredType::UNIX_D32LE = *UNIX_D32LE_;
+const PredType& PredType::UNIX_D64BE = *UNIX_D64BE_;
+const PredType& PredType::UNIX_D64LE = *UNIX_D64LE_;
+
+const PredType& PredType::INTEL_I8 = *INTEL_I8_;
+const PredType& PredType::INTEL_I16 = *INTEL_I16_;
+const PredType& PredType::INTEL_I32 = *INTEL_I32_;
+const PredType& PredType::INTEL_I64 = *INTEL_I64_;
+const PredType& PredType::INTEL_U8 = *INTEL_U8_;
+const PredType& PredType::INTEL_U16 = *INTEL_U16_;
+const PredType& PredType::INTEL_U32 = *INTEL_U32_;
+const PredType& PredType::INTEL_U64 = *INTEL_U64_;
+const PredType& PredType::INTEL_B8 = *INTEL_B8_;
+const PredType& PredType::INTEL_B16 = *INTEL_B16_;
+const PredType& PredType::INTEL_B32 = *INTEL_B32_;
+const PredType& PredType::INTEL_B64 = *INTEL_B64_;
+const PredType& PredType::INTEL_F32 = *INTEL_F32_;
+const PredType& PredType::INTEL_F64 = *INTEL_F64_;
+
+const PredType& PredType::ALPHA_I8 = *ALPHA_I8_;
+const PredType& PredType::ALPHA_I16 = *ALPHA_I16_;
+const PredType& PredType::ALPHA_I32 = *ALPHA_I32_;
+const PredType& PredType::ALPHA_I64 = *ALPHA_I64_;
+const PredType& PredType::ALPHA_U8 = *ALPHA_U8_;
+const PredType& PredType::ALPHA_U16 = *ALPHA_U16_;
+const PredType& PredType::ALPHA_U32 = *ALPHA_U32_;
+const PredType& PredType::ALPHA_U64 = *ALPHA_U64_;
+const PredType& PredType::ALPHA_B8 = *ALPHA_B8_;
+const PredType& PredType::ALPHA_B16 = *ALPHA_B16_;
+const PredType& PredType::ALPHA_B32 = *ALPHA_B32_;
+const PredType& PredType::ALPHA_B64 = *ALPHA_B64_;
+const PredType& PredType::ALPHA_F32 = *ALPHA_F32_;
+const PredType& PredType::ALPHA_F64 = *ALPHA_F64_;
+
+const PredType& PredType::MIPS_I8 = *MIPS_I8_;
+const PredType& PredType::MIPS_I16 = *MIPS_I16_;
+const PredType& PredType::MIPS_I32 = *MIPS_I32_;
+const PredType& PredType::MIPS_I64 = *MIPS_I64_;
+const PredType& PredType::MIPS_U8 = *MIPS_U8_;
+const PredType& PredType::MIPS_U16 = *MIPS_U16_;
+const PredType& PredType::MIPS_U32 = *MIPS_U32_;
+const PredType& PredType::MIPS_U64 = *MIPS_U64_;
+const PredType& PredType::MIPS_B8 = *MIPS_B8_;
+const PredType& PredType::MIPS_B16 = *MIPS_B16_;
+const PredType& PredType::MIPS_B32 = *MIPS_B32_;
+const PredType& PredType::MIPS_B64 = *MIPS_B64_;
+const PredType& PredType::MIPS_F32 = *MIPS_F32_;
+const PredType& PredType::MIPS_F64 = *MIPS_F64_;
+
+const PredType& PredType::NATIVE_CHAR = *NATIVE_CHAR_;
+const PredType& PredType::NATIVE_SCHAR = *NATIVE_SCHAR_;
+const PredType& PredType::NATIVE_UCHAR = *NATIVE_UCHAR_;
+const PredType& PredType::NATIVE_SHORT = *NATIVE_SHORT_;
+const PredType& PredType::NATIVE_USHORT = *NATIVE_USHORT_;
+const PredType& PredType::NATIVE_INT = *NATIVE_INT_;
+const PredType& PredType::NATIVE_UINT = *NATIVE_UINT_;
+const PredType& PredType::NATIVE_LONG = *NATIVE_LONG_;
+const PredType& PredType::NATIVE_ULONG = *NATIVE_ULONG_;
+const PredType& PredType::NATIVE_LLONG = *NATIVE_LLONG_;
+const PredType& PredType::NATIVE_ULLONG = *NATIVE_ULLONG_;
+const PredType& PredType::NATIVE_FLOAT = *NATIVE_FLOAT_;
+const PredType& PredType::NATIVE_DOUBLE = *NATIVE_DOUBLE_;
+const PredType& PredType::NATIVE_LDOUBLE = *NATIVE_LDOUBLE_;
+const PredType& PredType::NATIVE_B8 = *NATIVE_B8_;
+const PredType& PredType::NATIVE_B16 = *NATIVE_B16_;
+const PredType& PredType::NATIVE_B32 = *NATIVE_B32_;
+const PredType& PredType::NATIVE_B64 = *NATIVE_B64_;
+const PredType& PredType::NATIVE_OPAQUE = *NATIVE_OPAQUE_;
+const PredType& PredType::NATIVE_HSIZE = *NATIVE_HSIZE_;
+const PredType& PredType::NATIVE_HSSIZE = *NATIVE_HSSIZE_;
+const PredType& PredType::NATIVE_HERR = *NATIVE_HERR_;
+const PredType& PredType::NATIVE_HBOOL = *NATIVE_HBOOL_;
+
+const PredType& PredType::NATIVE_INT8 = *NATIVE_INT8_;
+const PredType& PredType::NATIVE_UINT8 = *NATIVE_UINT8_;
+const PredType& PredType::NATIVE_INT16 = *NATIVE_INT16_;
+const PredType& PredType::NATIVE_UINT16 = *NATIVE_UINT16_;
+const PredType& PredType::NATIVE_INT32 = *NATIVE_INT32_;
+const PredType& PredType::NATIVE_UINT32 = *NATIVE_UINT32_;
+const PredType& PredType::NATIVE_INT64 = *NATIVE_INT64_;
+const PredType& PredType::NATIVE_UINT64 = *NATIVE_UINT64_;
+
+// LEAST types
+#if H5_SIZEOF_INT_LEAST8_T != 0
+const PredType& PredType::NATIVE_INT_LEAST8 = *NATIVE_INT_LEAST8_;
+#endif /* H5_SIZEOF_INT_LEAST8_T */
+#if H5_SIZEOF_UINT_LEAST8_T != 0
+const PredType& PredType::NATIVE_UINT_LEAST8 = *NATIVE_UINT_LEAST8_;
+#endif /* H5_SIZEOF_UINT_LEAST8_T */
+
+#if H5_SIZEOF_INT_LEAST16_T != 0
+const PredType& PredType::NATIVE_INT_LEAST16 = *NATIVE_INT_LEAST16_;
+#endif /* H5_SIZEOF_INT_LEAST16_T */
+#if H5_SIZEOF_UINT_LEAST16_T != 0
+const PredType& PredType::NATIVE_UINT_LEAST16 = *NATIVE_UINT_LEAST16_;
+#endif /* H5_SIZEOF_UINT_LEAST16_T */
+
+#if H5_SIZEOF_INT_LEAST32_T != 0
+const PredType& PredType::NATIVE_INT_LEAST32 = *NATIVE_INT_LEAST32_;
+#endif /* H5_SIZEOF_INT_LEAST32_T */
+#if H5_SIZEOF_UINT_LEAST32_T != 0
+const PredType& PredType::NATIVE_UINT_LEAST32 = *NATIVE_UINT_LEAST32_;
+#endif /* H5_SIZEOF_UINT_LEAST32_T */
+
+#if H5_SIZEOF_INT_LEAST64_T != 0
+const PredType& PredType::NATIVE_INT_LEAST64 = *NATIVE_INT_LEAST64_;
+#endif /* H5_SIZEOF_INT_LEAST64_T */
+#if H5_SIZEOF_UINT_LEAST64_T != 0
+const PredType& PredType::NATIVE_UINT_LEAST64 = *NATIVE_UINT_LEAST64_;
+#endif /* H5_SIZEOF_UINT_LEAST64_T */
+
+// FAST types
+#if H5_SIZEOF_INT_FAST8_T != 0
+const PredType& PredType::NATIVE_INT_FAST8 = *NATIVE_INT_FAST8_;
+#endif /* H5_SIZEOF_INT_FAST8_T */
+#if H5_SIZEOF_UINT_FAST8_T != 0
+const PredType& PredType::NATIVE_UINT_FAST8 = *NATIVE_UINT_FAST8_;
+#endif /* H5_SIZEOF_UINT_FAST8_T */
+
+#if H5_SIZEOF_INT_FAST16_T != 0
+const PredType& PredType::NATIVE_INT_FAST16 = *NATIVE_INT_FAST16_;
+#endif /* H5_SIZEOF_INT_FAST16_T */
+#if H5_SIZEOF_UINT_FAST16_T != 0
+const PredType& PredType::NATIVE_UINT_FAST16 = *NATIVE_UINT_FAST16_;
+#endif /* H5_SIZEOF_UINT_FAST16_T */
+
+#if H5_SIZEOF_INT_FAST32_T != 0
+const PredType& PredType::NATIVE_INT_FAST32 = *NATIVE_INT_FAST32_;
+#endif /* H5_SIZEOF_INT_FAST32_T */
+#if H5_SIZEOF_UINT_FAST32_T != 0
+const PredType& PredType::NATIVE_UINT_FAST32 = *NATIVE_UINT_FAST32_;
+#endif /* H5_SIZEOF_UINT_FAST32_T */
+
+#if H5_SIZEOF_INT_FAST64_T != 0
+const PredType& PredType::NATIVE_INT_FAST64 = *NATIVE_INT_FAST64_;
+#endif /* H5_SIZEOF_INT_FAST64_T */
+#if H5_SIZEOF_UINT_FAST64_T != 0
+const PredType& PredType::NATIVE_UINT_FAST64 = *NATIVE_UINT_FAST64_;
+#endif /* H5_SIZEOF_UINT_FAST64_T */
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 #ifndef H5_NO_NAMESPACE
 } // end namespace
 #endif
+
+/***************************************************************************
+				Design Note
+				===========
+
+September 2015:
+
+	The C++ library has several types of global constants from different
+	classes, such as PropList, PredType, DataSpace, etc...  Previously,
+	these global constants were declared statically and the C++ library used
+	a constant, called PredType::AtExit, to detect when all the global
+	contants are destroyed then close the C library (H5close).  This method
+	relied on the order of the constants being created and destroyed and
+	that PredType constants be the last to be destroyed.  In September
+	2015, it was recognized that the order in which the global constants were
+	created and destroyed was actually undefined, thus can be different
+	between different compilers.  This resulted in failure when compilers
+	destroy PredType constants before others because when PredType::AtExit
+	was destroyed, the C library was closed, so when the constants of other
+	classes such as PropList or DataSpace were being deleted, the C library
+	would not be available.
+
+	These are the classes that have global constants:
+		+ PredType
+		+ DataSpace
+		+ PropList (and its subclasses below)
+		+ FileAccPropList
+		+ FileCreatPropList
+		+ DSetMemXferPropList
+		+ DSetCreatPropList
+	
+
+	The new method includes these main points:
+
+	- The C++ library uses dynamically allocated constants to have the
+	  control in which order the global constants are created/destroyed.
+
+	- The previous static constants are changed to be the references to
+	  the dynamically allocated constants to avoid impact on applications.
+
+	- The first time an IdComponent default constructor is invoked, it
+	  will call the function H5Library::initH5cpp which registers the
+	  terminating functions from each class that has the global constants
+	  so that these functions can destroy those constants at the exit of the
+	  application.  IdComponent is a baseclass of any object class that has
+	  an identifier, such as Group, DataSet, DataType,...  The classes which
+	  have the global constants are all derived from IdComponent.
+
+	- At the normal termination of the application, each registered function
+	  for each constant type will delete all the allocated constants in
+	  that type class, then a different terminating function, which was also
+	  registered with atexit() by initH5cpp, will call H5close to close the
+	  C library.
+
+	The following list presents the differences between the old and new
+	methods and the changes implemented for the new method.
+
+	1.  The following items are added to class H5Library:
+		// Private instance to be created by H5Library only
+		static H5Library* instance;
+
+		// Returns a singleton H5Library to initialize the global
+		// constants, invoked in IdComponent default constructor
+		static H5Library* getInstance(); // public
+
+		// Registers cleanup and terminating functions with atexit(),
+		// called in IdComponent default constructor
+		static void initH5cpp(void); // public
+
+		// Calls H5close to terminate the library, registered with
+		// atexit(), as the last thing to be done.
+		static void termH5cpp(void); // public
+
+	2.  The following shows the differences between the old and new methods
+	    for allocating the PredType constants.  There are more than 100
+	    constants, but only one is shown here for examples.
+
+	Old Method:
+	----------
+		// Declaration of the constant - in "H5PredType.h"
+		static const PredType NATIVE_INT;
+
+		// Definition of the constant - in "H5PredType.cpp"
+		const PredType PredType::NATIVE_INT(H5T_NATIVE_INT);
+
+	New Method:
+	----------
+		// Declare pointer for a constant - in "H5PredType.h"
+		static PredType* NATIVE_INT_; // "H5PredType.h"
+
+		// Change previous constant to reference - in "H5PredType.h"
+		static const PredType& NATIVE_INT;
+
+		// The assignment of the first static constant, named
+		// PREDTYPE_CONST, calls makePredTypes() which allocates the
+		// dynamic memory for every PredType constant.
+
+		// Creates a dynamic PredType object representing a C constant
+		// - in makePredTypes()
+		NATIVE_INT_ = new PredType(H5T_NATIVE_INT);
+
+		// Assign the constant reference to the dynamic object
+		// - in "H5PredType.cpp"
+		const PredType& PredType::NATIVE_INT = *NATIVE_INT_;
+
+	    Functions added to class PredType:
+
+		// Creates the constants
+		static void makePredTypes(); // private
+
+		// Calls makePredTypes to create the constants and returns
+		// the dummy constant PREDTYPE_CONST;
+		static PredType* getPredTypes(); // private
+
+		// Deletes the constants
+		static void deleteConstants(); // public
+
+	3.  This section shows the differences between the old and new methods
+	for allocating the DataSpace constant, DataSpace::ALL.
+
+	Old Method:
+	----------
+		// Declaration of the constant - in "H5DataSpace.h"
+		static const DataSpace ALL;
+
+		// Definition of the constant - in "H5DataSpace.cpp"
+		const DataSpace DataSpace::ALL(H5S_ALL);
+
+	New Method:
+	----------
+		// Declare pointer for a constant - in "H5DataSpace.h"
+		static DataSpace* ALL_; // "H5DataSpace.h"
+
+		// Change previous constant to reference - in "H5DataSpace.h"
+		static const DataSpace& ALL;
+
+		// Creates a dynamic DataSpace object representing the C constant
+		// - in "H5DataSpace.cpp"
+		ALL_ = new DataSpace(H5S_ALL);
+
+		// Assign the constant reference to the dynamic object
+		// - in "H5DataSpace.cpp"
+		const DataSpace& DataSpace::ALL = *ALL_;
+
+	    Functions added to class DataSpace:
+
+		// Creates the constant
+		static DataSpace* getConstant(); // private
+
+		// Deletes the constant
+		static void deleteConstants(); // public
+
+	4.  This section shows the differences between the old and new methods
+	for allocating the following constants
+		- PropList constant, PropList::DEFAULT.
+		- DSetCreatPropList constant, DSetCreatPropList::DEFAULT.
+		- DSetMemXferPropList constant, DSetMemXferPropList::DEFAULT.
+		- FileCreatPropList constant, FileCreatPropList::DEFAULT.
+		- FileAccPropList constant, FileAccPropList::DEFAULT.
+
+	    For these constants, the library has the same changes, except the
+	    class names and the HDF5 corresponding constants. Only the items
+	    of PropList are listed, and "PropList" can be replaced by any of
+	    DSetCreatPropList, DSetMemXferPropList, FileCreatPropList,
+	    FileAccPropList for those classes.  The HDF5 C constant "H5P_DEFAULT"
+	    can be replaced by any of these respectively: H5P_DATASET_CREATE,
+	    H5P_DATASET_XFER, H5P_FILE_CREATE, and H5P_FILE_ACCESS.
+
+	Old Method:
+	----------
+		// Declaration of the constant - in "H5PropList.h"
+		static const PropList DEFAULT;
+
+		// Definition of the constant - in "H5PropList.cpp"
+		const PropList PropList::DEFAULT(H5P_DEFAULT);
+
+	New Method:
+	----------
+		// Declare pointer for a constant - in "H5PropList.h"
+		static PropList* DEFAULT_; // "H5PropList.h"
+
+		// Change previous constant to reference - in "H5PropList.h"
+		static const PropList& DEFAULT;
+
+		// Creates a dynamic PropList object representing the C constant
+		// - in "H5PropList.cpp"
+		DEFAULT_ = new PropList(H5P_DEFAULT);
+
+		// Assign the constant reference to the dynamic object
+		// - in "H5PropList.cpp"
+		const PropList& PropList::DEFAULT = *DEFAULT_;
+
+	    Functions added to class PropList:
+
+		// Creates the constant
+		static PropList* getConstant(); // private
+
+		// Deletes the constants
+		static void deleteConstants(); // public
+
+	    The same functions are added to the subclasses of PropList instead of
+	    using PropList's because of the class types and in favor of clarity.
+
+****************************************************************************/
+
diff --git a/c++/src/H5PredType.h b/c++/src/H5PredType.h
index c929a70..f560765 100644
--- a/c++/src/H5PredType.h
+++ b/c++/src/H5PredType.h
@@ -21,16 +21,6 @@
 namespace H5 {
 #endif
 
-/* This constant is defined for a workaround to eliminate memory leaks due to
-   the library being re-initiated when PredType destructors are invoked.  A
-   PredType instant with H5CPP_EXITED as the value of its "id" is constructed
-   before the other PredType objects are created.  At exit, when this special
-   PredType object is to be destructed, no HDF5 library function will be called
-   and the library will be terminated.  -BMR, Mar 30, 2012 */
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#define H5CPP_EXITED	-3  // -3 is less likely to be used elsewhere
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
 /*! \class PredType
     \brief Class PredType holds the definition of all the HDF5 predefined
     datatypes.
@@ -53,202 +43,203 @@ class H5_DLLCPP PredType : public AtomType {
 	// Noop destructor
 	virtual ~PredType();
 
-	// Declaration of predefined types; their definition is in H5PredType.cpp
-	static const PredType STD_I8BE;
-	static const PredType STD_I8LE;
-	static const PredType STD_I16BE;
-	static const PredType STD_I16LE;
-	static const PredType STD_I32BE;
-	static const PredType STD_I32LE;
-	static const PredType STD_I64BE;
-	static const PredType STD_I64LE;
-	static const PredType STD_U8BE;
-	static const PredType STD_U8LE;
-	static const PredType STD_U16BE;
-	static const PredType STD_U16LE;
-	static const PredType STD_U32BE;
-	static const PredType STD_U32LE;
-	static const PredType STD_U64BE;
-	static const PredType STD_U64LE;
-	static const PredType STD_B8BE;
-	static const PredType STD_B8LE;
-	static const PredType STD_B16BE;
-	static const PredType STD_B16LE;
-	static const PredType STD_B32BE;
-	static const PredType STD_B32LE;
-	static const PredType STD_B64BE;
-	static const PredType STD_B64LE;
-	static const PredType STD_REF_OBJ;
-	static const PredType STD_REF_DSETREG;
-
-	static const PredType C_S1;
-	static const PredType FORTRAN_S1;
-
-	static const PredType IEEE_F32BE;
-	static const PredType IEEE_F32LE;
-	static const PredType IEEE_F64BE;
-	static const PredType IEEE_F64LE;
-
-	static const PredType UNIX_D32BE;
-	static const PredType UNIX_D32LE;
-	static const PredType UNIX_D64BE;
-	static const PredType UNIX_D64LE;
-
-	static const PredType INTEL_I8;
-	static const PredType INTEL_I16;
-	static const PredType INTEL_I32;
-	static const PredType INTEL_I64;
-	static const PredType INTEL_U8;
-	static const PredType INTEL_U16;
-	static const PredType INTEL_U32;
-	static const PredType INTEL_U64;
-	static const PredType INTEL_B8;
-	static const PredType INTEL_B16;
-	static const PredType INTEL_B32;
-	static const PredType INTEL_B64;
-	static const PredType INTEL_F32;
-	static const PredType INTEL_F64;
-
-	static const PredType ALPHA_I8;
-	static const PredType ALPHA_I16;
-	static const PredType ALPHA_I32;
-	static const PredType ALPHA_I64;
-	static const PredType ALPHA_U8;
-	static const PredType ALPHA_U16;
-	static const PredType ALPHA_U32;
-	static const PredType ALPHA_U64;
-	static const PredType ALPHA_B8;
-	static const PredType ALPHA_B16;
-	static const PredType ALPHA_B32;
-	static const PredType ALPHA_B64;
-	static const PredType ALPHA_F32;
-	static const PredType ALPHA_F64;
-
-	static const PredType MIPS_I8;
-	static const PredType MIPS_I16;
-	static const PredType MIPS_I32;
-	static const PredType MIPS_I64;
-	static const PredType MIPS_U8;
-	static const PredType MIPS_U16;
-	static const PredType MIPS_U32;
-	static const PredType MIPS_U64;
-	static const PredType MIPS_B8;
-	static const PredType MIPS_B16;
-	static const PredType MIPS_B32;
-	static const PredType MIPS_B64;
-	static const PredType MIPS_F32;
-	static const PredType MIPS_F64;
-
-	static const PredType NATIVE_CHAR;
-	static const PredType NATIVE_SCHAR;
-	static const PredType NATIVE_UCHAR;
-	static const PredType NATIVE_SHORT;
-	static const PredType NATIVE_USHORT;
-	static const PredType NATIVE_INT;
-	static const PredType NATIVE_UINT;
-	static const PredType NATIVE_LONG;
-	static const PredType NATIVE_ULONG;
-	static const PredType NATIVE_LLONG;
-	static const PredType NATIVE_ULLONG;
-	static const PredType NATIVE_FLOAT;
-	static const PredType NATIVE_DOUBLE;
-	static const PredType NATIVE_LDOUBLE;
-	static const PredType NATIVE_B8;
-	static const PredType NATIVE_B16;
-	static const PredType NATIVE_B32;
-	static const PredType NATIVE_B64;
-	static const PredType NATIVE_OPAQUE;
-	static const PredType NATIVE_HSIZE;
-	static const PredType NATIVE_HSSIZE;
-	static const PredType NATIVE_HERR;
-	static const PredType NATIVE_HBOOL;
-
-	static const PredType NATIVE_INT8;
-	static const PredType NATIVE_UINT8;
-	static const PredType NATIVE_INT16;
-	static const PredType NATIVE_UINT16;
-	static const PredType NATIVE_INT32;
-	static const PredType NATIVE_UINT32;
-	static const PredType NATIVE_INT64;
-	static const PredType NATIVE_UINT64;
+	/*! \brief This dummy function do not inherit from DataType - it will
+	    throw a DataTypeIException if invoked.
+	*/
+	void commit(H5Location& loc, const H5std_string& name );
+	/*! \brief This dummy function do not inherit from DataType - it will
+	    throw a DataTypeIException if invoked.
+	*/
+	void commit(H5Location& loc, const char* name );
+	/*! \brief This dummy function do not inherit from DataType - it will
+	    throw a DataTypeIException if invoked.
+	*/
+	bool committed();
+
+	///\brief PredType constants
+	static const PredType& STD_I8BE;
+	static const PredType& STD_I8LE;
+	static const PredType& STD_I16BE;
+	static const PredType& STD_I16LE;
+	static const PredType& STD_I32BE;
+	static const PredType& STD_I32LE;
+	static const PredType& STD_I64BE;
+	static const PredType& STD_I64LE;
+	static const PredType& STD_U8BE;
+	static const PredType& STD_U8LE;
+	static const PredType& STD_U16BE;
+	static const PredType& STD_U16LE;
+	static const PredType& STD_U32BE;
+	static const PredType& STD_U32LE;
+	static const PredType& STD_U64BE;
+	static const PredType& STD_U64LE;
+	static const PredType& STD_B8BE;
+	static const PredType& STD_B8LE;
+	static const PredType& STD_B16BE;
+	static const PredType& STD_B16LE;
+	static const PredType& STD_B32BE;
+	static const PredType& STD_B32LE;
+	static const PredType& STD_B64BE;
+	static const PredType& STD_B64LE;
+	static const PredType& STD_REF_OBJ;
+	static const PredType& STD_REF_DSETREG;
+
+	static const PredType& C_S1;
+	static const PredType& FORTRAN_S1;
+
+	static const PredType& IEEE_F32BE;
+	static const PredType& IEEE_F32LE;
+	static const PredType& IEEE_F64BE;
+	static const PredType& IEEE_F64LE;
+
+	static const PredType& UNIX_D32BE;
+	static const PredType& UNIX_D32LE;
+	static const PredType& UNIX_D64BE;
+	static const PredType& UNIX_D64LE;
+
+	static const PredType& INTEL_I8;
+	static const PredType& INTEL_I16;
+	static const PredType& INTEL_I32;
+	static const PredType& INTEL_I64;
+	static const PredType& INTEL_U8;
+	static const PredType& INTEL_U16;
+	static const PredType& INTEL_U32;
+	static const PredType& INTEL_U64;
+	static const PredType& INTEL_B8;
+	static const PredType& INTEL_B16;
+	static const PredType& INTEL_B32;
+	static const PredType& INTEL_B64;
+	static const PredType& INTEL_F32;
+	static const PredType& INTEL_F64;
+
+	static const PredType& ALPHA_I8;
+	static const PredType& ALPHA_I16;
+	static const PredType& ALPHA_I32;
+	static const PredType& ALPHA_I64;
+	static const PredType& ALPHA_U8;
+	static const PredType& ALPHA_U16;
+	static const PredType& ALPHA_U32;
+	static const PredType& ALPHA_U64;
+	static const PredType& ALPHA_B8;
+	static const PredType& ALPHA_B16;
+	static const PredType& ALPHA_B32;
+	static const PredType& ALPHA_B64;
+	static const PredType& ALPHA_F32;
+	static const PredType& ALPHA_F64;
+
+	static const PredType& MIPS_I8;
+	static const PredType& MIPS_I16;
+	static const PredType& MIPS_I32;
+	static const PredType& MIPS_I64;
+	static const PredType& MIPS_U8;
+	static const PredType& MIPS_U16;
+	static const PredType& MIPS_U32;
+	static const PredType& MIPS_U64;
+	static const PredType& MIPS_B8;
+	static const PredType& MIPS_B16;
+	static const PredType& MIPS_B32;
+	static const PredType& MIPS_B64;
+	static const PredType& MIPS_F32;
+	static const PredType& MIPS_F64;
+
+	static const PredType& NATIVE_CHAR;
+	static const PredType& NATIVE_SCHAR;
+	static const PredType& NATIVE_UCHAR;
+	static const PredType& NATIVE_SHORT;
+	static const PredType& NATIVE_USHORT;
+	static const PredType& NATIVE_INT;
+	static const PredType& NATIVE_UINT;
+	static const PredType& NATIVE_LONG;
+	static const PredType& NATIVE_ULONG;
+	static const PredType& NATIVE_LLONG;
+	static const PredType& NATIVE_ULLONG;
+	static const PredType& NATIVE_FLOAT;
+	static const PredType& NATIVE_DOUBLE;
+	static const PredType& NATIVE_LDOUBLE;
+	static const PredType& NATIVE_B8;
+	static const PredType& NATIVE_B16;
+	static const PredType& NATIVE_B32;
+	static const PredType& NATIVE_B64;
+	static const PredType& NATIVE_OPAQUE;
+	static const PredType& NATIVE_HSIZE;
+	static const PredType& NATIVE_HSSIZE;
+	static const PredType& NATIVE_HERR;
+	static const PredType& NATIVE_HBOOL;
+
+	static const PredType& NATIVE_INT8;
+	static const PredType& NATIVE_UINT8;
+	static const PredType& NATIVE_INT16;
+	static const PredType& NATIVE_UINT16;
+	static const PredType& NATIVE_INT32;
+	static const PredType& NATIVE_UINT32;
+	static const PredType& NATIVE_INT64;
+	static const PredType& NATIVE_UINT64;
 
 // LEAST types
 #if H5_SIZEOF_INT_LEAST8_T != 0
-	static const PredType NATIVE_INT_LEAST8;
+	static const PredType& NATIVE_INT_LEAST8;
 #endif /* H5_SIZEOF_INT_LEAST8_T */
 #if H5_SIZEOF_UINT_LEAST8_T != 0
-	static const PredType NATIVE_UINT_LEAST8;
+	static const PredType& NATIVE_UINT_LEAST8;
 #endif /* H5_SIZEOF_UINT_LEAST8_T */
 
 #if H5_SIZEOF_INT_LEAST16_T != 0
-	static const PredType NATIVE_INT_LEAST16;
+	static const PredType& NATIVE_INT_LEAST16;
 #endif /* H5_SIZEOF_INT_LEAST16_T */
 #if H5_SIZEOF_UINT_LEAST16_T != 0
-	static const PredType NATIVE_UINT_LEAST16;
+	static const PredType& NATIVE_UINT_LEAST16;
 #endif /* H5_SIZEOF_UINT_LEAST16_T */
 
 #if H5_SIZEOF_INT_LEAST32_T != 0
-	static const PredType NATIVE_INT_LEAST32;
+	static const PredType& NATIVE_INT_LEAST32;
 #endif /* H5_SIZEOF_INT_LEAST32_T */
 #if H5_SIZEOF_UINT_LEAST32_T != 0
-	static const PredType NATIVE_UINT_LEAST32;
+	static const PredType& NATIVE_UINT_LEAST32;
 #endif /* H5_SIZEOF_UINT_LEAST32_T */
 
 #if H5_SIZEOF_INT_LEAST64_T != 0
-	static const PredType NATIVE_INT_LEAST64;
+	static const PredType& NATIVE_INT_LEAST64;
 #endif /* H5_SIZEOF_INT_LEAST64_T */
 #if H5_SIZEOF_UINT_LEAST64_T != 0
-	static const PredType NATIVE_UINT_LEAST64;
+	static const PredType& NATIVE_UINT_LEAST64;
 #endif /* H5_SIZEOF_UINT_LEAST64_T */
 
 // FAST types
 #if H5_SIZEOF_INT_FAST8_T != 0
-	static const PredType NATIVE_INT_FAST8;
+	static const PredType& NATIVE_INT_FAST8;
 #endif /* H5_SIZEOF_INT_FAST8_T */
 #if H5_SIZEOF_UINT_FAST8_T != 0
-	static const PredType NATIVE_UINT_FAST8;
+	static const PredType& NATIVE_UINT_FAST8;
 #endif /* H5_SIZEOF_UINT_FAST8_T */
 
 #if H5_SIZEOF_INT_FAST16_T != 0
-	static const PredType NATIVE_INT_FAST16;
+	static const PredType& NATIVE_INT_FAST16;
 #endif /* H5_SIZEOF_INT_FAST16_T */
 #if H5_SIZEOF_UINT_FAST16_T != 0
-	static const PredType NATIVE_UINT_FAST16;
+	static const PredType& NATIVE_UINT_FAST16;
 #endif /* H5_SIZEOF_UINT_FAST16_T */
 
 #if H5_SIZEOF_INT_FAST32_T != 0
-	static const PredType NATIVE_INT_FAST32;
+	static const PredType& NATIVE_INT_FAST32;
 #endif /* H5_SIZEOF_INT_FAST32_T */
 #if H5_SIZEOF_UINT_FAST32_T != 0
-	static const PredType NATIVE_UINT_FAST32;
+	static const PredType& NATIVE_UINT_FAST32;
 #endif /* H5_SIZEOF_UINT_FAST32_T */
 
 #if H5_SIZEOF_INT_FAST64_T != 0
-	static const PredType NATIVE_INT_FAST64;
+	static const PredType& NATIVE_INT_FAST64;
 #endif /* H5_SIZEOF_INT_FAST64_T */
 #if H5_SIZEOF_UINT_FAST64_T != 0
-	static const PredType NATIVE_UINT_FAST64;
+	static const PredType& NATIVE_UINT_FAST64;
 #endif /* H5_SIZEOF_UINT_FAST64_T */
 
-	/*! \brief This dummy function do not inherit from DataType - it will
-	    throw a DataTypeIException if invoked.
-	*/
-	void commit(H5Location& loc, const H5std_string& name );
-	/*! \brief This dummy function do not inherit from DataType - it will
-	    throw a DataTypeIException if invoked.
-	*/
-	void commit(H5Location& loc, const char* name );
-	/*! \brief This dummy function do not inherit from DataType - it will
-	    throw a DataTypeIException if invoked.
-	*/
-	bool committed();
-
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-   private:
-	// Added this to work around the atexit/global destructor problem.
-	// It'll help to terminate the library after other PredType instances
-	// are closed.  -BMR, Mar 30, 2012
-	static const PredType AtExit;
+
+        // Deletes the PredType global constants
+        static void deleteConstants();
+
+        // Dummy constant
+        static const PredType& PREDTYPE_CONST; // dummy constant
 
    protected:
 	// Default constructor
@@ -257,6 +248,194 @@ class H5_DLLCPP PredType : public AtomType {
 	// Creates a pre-defined type using an HDF5 pre-defined constant
 	PredType( const hid_t predtype_id );  // used by the library only
 
+   private:
+        // Activates the creation of the PredType global constants
+        static PredType* getPredTypes();
+
+        // Dynamically allocates PredType global constants
+        static void makePredTypes();
+
+        // Dummy constant
+        static PredType* PREDTYPE_CONST_;
+
+        // Declaration of pointers to constants
+        static PredType* STD_I8BE_;
+        static PredType* STD_I8LE_;
+        static PredType* STD_I16BE_;
+        static PredType* STD_I16LE_;
+        static PredType* STD_I32BE_;
+        static PredType* STD_I32LE_;
+        static PredType* STD_I64BE_;
+        static PredType* STD_I64LE_;
+        static PredType* STD_U8BE_;
+        static PredType* STD_U8LE_;
+        static PredType* STD_U16BE_;
+        static PredType* STD_U16LE_;
+        static PredType* STD_U32BE_;
+        static PredType* STD_U32LE_;
+        static PredType* STD_U64BE_;
+        static PredType* STD_U64LE_;
+        static PredType* STD_B8BE_;
+        static PredType* STD_B8LE_;
+        static PredType* STD_B16BE_;
+        static PredType* STD_B16LE_;
+        static PredType* STD_B32BE_;
+        static PredType* STD_B32LE_;
+        static PredType* STD_B64BE_;
+        static PredType* STD_B64LE_;
+        static PredType* STD_REF_OBJ_;
+        static PredType* STD_REF_DSETREG_;
+
+        static PredType* C_S1_;
+        static PredType* FORTRAN_S1_;
+
+        static PredType* IEEE_F32BE_;
+        static PredType* IEEE_F32LE_;
+        static PredType* IEEE_F64BE_;
+        static PredType* IEEE_F64LE_;
+
+        static PredType* UNIX_D32BE_;
+        static PredType* UNIX_D32LE_;
+        static PredType* UNIX_D64BE_;
+        static PredType* UNIX_D64LE_;
+
+        static PredType* INTEL_I8_;
+        static PredType* INTEL_I16_;
+        static PredType* INTEL_I32_;
+        static PredType* INTEL_I64_;
+        static PredType* INTEL_U8_;
+        static PredType* INTEL_U16_;
+        static PredType* INTEL_U32_;
+        static PredType* INTEL_U64_;
+        static PredType* INTEL_B8_;
+        static PredType* INTEL_B16_;
+        static PredType* INTEL_B32_;
+        static PredType* INTEL_B64_;
+        static PredType* INTEL_F32_;
+        static PredType* INTEL_F64_;
+
+        static PredType* ALPHA_I8_;
+        static PredType* ALPHA_I16_;
+        static PredType* ALPHA_I32_;
+        static PredType* ALPHA_I64_;
+        static PredType* ALPHA_U8_;
+        static PredType* ALPHA_U16_;
+        static PredType* ALPHA_U32_;
+        static PredType* ALPHA_U64_;
+        static PredType* ALPHA_B8_;
+        static PredType* ALPHA_B16_;
+        static PredType* ALPHA_B32_;
+        static PredType* ALPHA_B64_;
+        static PredType* ALPHA_F32_;
+        static PredType* ALPHA_F64_;
+
+        static PredType* MIPS_I8_;
+        static PredType* MIPS_I16_;
+        static PredType* MIPS_I32_;
+        static PredType* MIPS_I64_;
+        static PredType* MIPS_U8_;
+        static PredType* MIPS_U16_;
+        static PredType* MIPS_U32_;
+        static PredType* MIPS_U64_;
+        static PredType* MIPS_B8_;
+        static PredType* MIPS_B16_;
+        static PredType* MIPS_B32_;
+        static PredType* MIPS_B64_;
+        static PredType* MIPS_F32_;
+        static PredType* MIPS_F64_;
+
+        static PredType* NATIVE_CHAR_;
+        static PredType* NATIVE_SCHAR_;
+        static PredType* NATIVE_UCHAR_;
+        static PredType* NATIVE_SHORT_;
+        static PredType* NATIVE_USHORT_;
+        static PredType* NATIVE_INT_;
+        static PredType* NATIVE_UINT_;
+        static PredType* NATIVE_LONG_;
+        static PredType* NATIVE_ULONG_;
+        static PredType* NATIVE_LLONG_;
+        static PredType* NATIVE_ULLONG_;
+        static PredType* NATIVE_FLOAT_;
+        static PredType* NATIVE_DOUBLE_;
+        static PredType* NATIVE_LDOUBLE_;
+        static PredType* NATIVE_B8_;
+        static PredType* NATIVE_B16_;
+        static PredType* NATIVE_B32_;
+        static PredType* NATIVE_B64_;
+        static PredType* NATIVE_OPAQUE_;
+        static PredType* NATIVE_HSIZE_;
+        static PredType* NATIVE_HSSIZE_;
+        static PredType* NATIVE_HERR_;
+        static PredType* NATIVE_HBOOL_;
+
+        static PredType* NATIVE_INT8_;
+        static PredType* NATIVE_UINT8_;
+        static PredType* NATIVE_INT16_;
+        static PredType* NATIVE_UINT16_;
+        static PredType* NATIVE_INT32_;
+        static PredType* NATIVE_UINT32_;
+        static PredType* NATIVE_INT64_;
+        static PredType* NATIVE_UINT64_;
+
+// LEAST types
+#if H5_SIZEOF_INT_LEAST8_T != 0
+        static PredType* NATIVE_INT_LEAST8_;
+#endif /* H5_SIZEOF_INT_LEAST8_T */
+#if H5_SIZEOF_UINT_LEAST8_T != 0
+        static PredType* NATIVE_UINT_LEAST8_;
+#endif /* H5_SIZEOF_UINT_LEAST8_T */
+
+#if H5_SIZEOF_INT_LEAST16_T != 0
+        static PredType* NATIVE_INT_LEAST16_;
+#endif /* H5_SIZEOF_INT_LEAST16_T */
+#if H5_SIZEOF_UINT_LEAST16_T != 0
+        static PredType* NATIVE_UINT_LEAST16_;
+#endif /* H5_SIZEOF_UINT_LEAST16_T */
+
+#if H5_SIZEOF_INT_LEAST32_T != 0
+        static PredType* NATIVE_INT_LEAST32_;
+#endif /* H5_SIZEOF_INT_LEAST32_T */
+#if H5_SIZEOF_UINT_LEAST32_T != 0
+        static PredType* NATIVE_UINT_LEAST32_;
+#endif /* H5_SIZEOF_UINT_LEAST32_T */
+
+#if H5_SIZEOF_INT_LEAST64_T != 0
+        static PredType* NATIVE_INT_LEAST64_;
+#endif /* H5_SIZEOF_INT_LEAST64_T */
+#if H5_SIZEOF_UINT_LEAST64_T != 0
+        static PredType* NATIVE_UINT_LEAST64_;
+#endif /* H5_SIZEOF_UINT_LEAST64_T */
+
+// FAST types
+#if H5_SIZEOF_INT_FAST8_T != 0
+        static PredType* NATIVE_INT_FAST8_;
+#endif /* H5_SIZEOF_INT_FAST8_T */
+#if H5_SIZEOF_UINT_FAST8_T != 0
+        static PredType* NATIVE_UINT_FAST8_;
+#endif /* H5_SIZEOF_UINT_FAST8_T */
+
+#if H5_SIZEOF_INT_FAST16_T != 0
+        static PredType* NATIVE_INT_FAST16_;
+#endif /* H5_SIZEOF_INT_FAST16_T */
+#if H5_SIZEOF_UINT_FAST16_T != 0
+        static PredType* NATIVE_UINT_FAST16_;
+#endif /* H5_SIZEOF_UINT_FAST16_T */
+
+#if H5_SIZEOF_INT_FAST32_T != 0
+        static PredType* NATIVE_INT_FAST32_;
+#endif /* H5_SIZEOF_INT_FAST32_T */
+#if H5_SIZEOF_UINT_FAST32_T != 0
+        static PredType* NATIVE_UINT_FAST32_;
+#endif /* H5_SIZEOF_UINT_FAST32_T */
+
+#if H5_SIZEOF_INT_FAST64_T != 0
+        static PredType* NATIVE_INT_FAST64_;
+#endif /* H5_SIZEOF_INT_FAST64_T */
+#if H5_SIZEOF_UINT_FAST64_T != 0
+        static PredType* NATIVE_UINT_FAST64_;
+#endif /* H5_SIZEOF_UINT_FAST64_T */
+        // End of Declaration of pointers
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 };
diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp
index 70ec629..807aa0a 100644
--- a/c++/src/H5PropList.cpp
+++ b/c++/src/H5PropList.cpp
@@ -36,10 +36,60 @@ namespace H5 {
 #endif  // H5_NO_STD
 #endif
 
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// This DOXYGEN_SHOULD_SKIP_THIS block is a work-around approach to control
+// the order of creation and deletion of the global constants.  See Design Notes
+// in "H5PredType.cpp" for information.
+
+// Initialize a pointer for the constant
+PropList* PropList::DEFAULT_ = 0;
+
 //--------------------------------------------------------------------------
-///\brief	Constant for default property.
+// Function:    PropList::getConstant
+// Purpose:     Creates a PropList object representing the HDF5 constant
+//              H5P_DEFAULT, pointed to by PropList::DEFAULT_.
+// Exception    H5::PropListIException
+// Description
+//              If PropList::DEFAULT_ already points to an allocated object,
+//              throw a PropListIException.  This scenario should not happen.
+// Programmer   Binh-Minh Ribler - 2015
 //--------------------------------------------------------------------------
-const PropList PropList::DEFAULT;
+PropList* PropList::getConstant()
+{
+    // Tell the C library not to clean up, H5Library::termH5cpp will call
+    // H5close - more dependency if use H5Library::dontAtExit()
+    if (!IdComponent::H5dontAtexit_called)
+    {
+        (void) H5dont_atexit();
+        IdComponent::H5dontAtexit_called = true;
+    }
+
+    // If the constant pointer is not allocated, allocate it. Otherwise,
+    // throw because it shouldn't be.
+    if (DEFAULT_ == 0)
+        DEFAULT_ = new PropList(H5P_DEFAULT);
+    else
+        throw PropListIException("PropList::getConstant", "PropList::getConstant is being invoked on an allocated DEFAULT_");
+    return(DEFAULT_);
+}
+
+//--------------------------------------------------------------------------
+// Function:    PropList::deleteConstants
+// Purpose:     Deletes the constant object that PropList::DEFAULT_ points to.
+// Programmer   Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void PropList::deleteConstants()
+{
+    if (DEFAULT_ != 0)
+        delete DEFAULT_;
+}
+
+//--------------------------------------------------------------------------
+// Purpose	Constant for default property.
+//--------------------------------------------------------------------------
+const PropList& PropList::DEFAULT = *getConstant();
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
 // Function	Default constructor
diff --git a/c++/src/H5PropList.h b/c++/src/H5PropList.h
index f26201d..7f6ee31 100644
--- a/c++/src/H5PropList.h
+++ b/c++/src/H5PropList.h
@@ -24,8 +24,8 @@ namespace H5 {
 //! Class PropList provides operations for generic property lists.
 class H5_DLLCPP PropList : public IdComponent {
    public:
-	// Default property list
-        static const PropList DEFAULT;
+	///\brief Default property list
+        static const PropList& DEFAULT;
 
 	// Creates a property list of a given type or creates a copy of an
 	// existing property list giving the property list id.
@@ -110,12 +110,26 @@ class H5_DLLCPP PropList : public IdComponent {
 	// Destructor: properly terminates access to this property list.
 	virtual ~PropList();
 
-   protected:
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+	// Deletes the PropList global constant
+	static void deleteConstants();
+
+    protected:
 	hid_t id;	// HDF5 property list id
 
 	// Sets the property list id.
 	virtual void p_setId(const hid_t new_id);
+
+    private:
+	static PropList* DEFAULT_;
+
+	// Dynamically allocates the PropList global constant
+	static PropList* getConstant();
+
+	// Friend function to set PropList id.  For library use only.
+	friend void f_PropList_setId(PropList* plist, hid_t new_id);
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 };
 
diff --git a/c++/src/H5StrType.cpp b/c++/src/H5StrType.cpp
index 0593a47..b067746 100644
--- a/c++/src/H5StrType.cpp
+++ b/c++/src/H5StrType.cpp
@@ -20,6 +20,7 @@
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
@@ -147,10 +148,10 @@ StrType::StrType( const DataSet& dataset ) : AtomType ()
 ///\return	Character set type, which can be:
 ///		\li \c H5T_CSET_ASCII (0) - Character set is US ASCII.
 ///\note
-///	ASCII and UTF-8 Unicode are the only currently supported character 
-///	encodings. Extended ASCII encodings (for example, ISO 8859) are not 
-///	supported. This encoding policy is not enforced by the HDF5 Library. 
-///	Using encodings other than ASCII and UTF-8 can lead to compatibility 
+///	ASCII and UTF-8 Unicode are the only currently supported character
+///	encodings. Extended ASCII encodings (for example, ISO 8859) are not
+///	supported. This encoding policy is not enforced by the HDF5 Library.
+///	Using encodings other than ASCII and UTF-8 can lead to compatibility
 ///	and usability problems. See the C API entry H5Pset_char_encoding for
 ///	more information.
 ///\exception	H5::DataTypeIException
@@ -174,10 +175,10 @@ H5T_cset_t StrType::getCset() const
 ///\param	cset - IN: character set type, which can be:
 ///		\li \c H5T_CSET_ASCII (0) - Character set is US ASCII.
 ///\note
-///	ASCII and UTF-8 Unicode are the only currently supported character 
-///	encodings. Extended ASCII encodings (for example, ISO 8859) are not 
-///	supported. This encoding policy is not enforced by the HDF5 Library. 
-///	Using encodings other than ASCII and UTF-8 can lead to compatibility 
+///	ASCII and UTF-8 Unicode are the only currently supported character
+///	encodings. Extended ASCII encodings (for example, ISO 8859) are not
+///	supported. This encoding policy is not enforced by the HDF5 Library.
+///	Using encodings other than ASCII and UTF-8 can lead to compatibility
 ///	and usability problems. See the C API entry H5Pset_char_encoding for
 ///	more information.
 ///\exception	H5::DataTypeIException
diff --git a/c++/src/H5VarLenType.cpp b/c++/src/H5VarLenType.cpp
index 3641a5d..2fab1f3 100644
--- a/c++/src/H5VarLenType.cpp
+++ b/c++/src/H5VarLenType.cpp
@@ -20,6 +20,7 @@
 #include "H5IdComponent.h"
 #include "H5PropList.h"
 #include "H5Object.h"
+#include "H5OcreatProp.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5DataType.h"
diff --git a/c++/src/Makefile.am b/c++/src/Makefile.am
index cdef7bf..6cd4768 100644
--- a/c++/src/Makefile.am
+++ b/c++/src/Makefile.am
@@ -28,7 +28,7 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src
 lib_LTLIBRARIES=libhdf5_cpp.la
 
 # Add libtool numbers to the HDF5 C++ library (from config/lt_vers.am)
-libhdf5_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5_cpp_la_LDFLAGS= -version-info $(LT_CXX_VERS_INTERFACE):$(LT_CXX_VERS_REVISION):$(LT_CXX_VERS_AGE) $(AM_LDFLAGS)
 
 bin_SCRIPTS=h5c++
 
@@ -36,10 +36,10 @@ bin_SCRIPTS=h5c++
 libhdf5_cpp_la_SOURCES=H5Exception.cpp H5IdComponent.cpp H5Library.cpp        \
         H5Attribute.cpp H5Location.cpp H5Object.cpp H5PropList.cpp	      \
 	H5FaccProp.cpp H5FcreatProp.cpp H5DcreatProp.cpp H5DxferProp.cpp      \
-	H5DataType.cpp H5DataSpace.cpp H5AbstractDs.cpp H5AtomType.cpp        \
-	H5PredType.cpp H5EnumType.cpp H5IntType.cpp H5FloatType.cpp           \
-	H5StrType.cpp H5ArrayType.cpp H5VarLenType.cpp H5CompType.cpp         \
-	H5DataSet.cpp H5CommonFG.cpp H5Group.cpp H5File.cpp
+	H5OcreatProp.cpp H5DataType.cpp H5DataSpace.cpp H5AbstractDs.cpp          \
+	H5AtomType.cpp H5PredType.cpp H5EnumType.cpp H5IntType.cpp            \
+	H5FloatType.cpp H5StrType.cpp H5ArrayType.cpp H5VarLenType.cpp        \
+	H5CompType.cpp H5DataSet.cpp H5CommonFG.cpp H5Group.cpp H5File.cpp
 
 # HDF5 C++ library depends on HDF5 Library.
 libhdf5_cpp_la_LIBADD=$(LIBHDF5)
@@ -47,11 +47,11 @@ libhdf5_cpp_la_LIBADD=$(LIBHDF5)
 # Public headers
 include_HEADERS=H5Cpp.h H5AbstractDs.h H5AtomType.h H5Attribute.h H5Classes.h \
         H5CommonFG.h H5CompType.h H5DataSet.h H5DataSpace.h H5DataType.h      \
-        H5DcreatProp.h H5DxferProp.h H5EnumType.h H5Exception.h H5FaccProp.h  \
-        H5FcreatProp.h H5File.h H5FloatType.h H5Group.h H5IdComponent.h       \
-        H5Include.h H5IntType.h H5Library.h H5Location.h H5Object.h           \
-	H5PredType.h H5PropList.h H5StrType.h H5CppDoc.h H5ArrayType.h        \
-	H5VarLenType.h      
+        H5OcreatProp.h H5DcreatProp.h H5DxferProp.h H5EnumType.h              \
+	H5Exception.h H5FaccProp.h H5FcreatProp.h H5File.h H5FloatType.h      \
+	H5Group.h H5IdComponent.h H5Include.h H5IntType.h H5Library.h         \
+	H5Location.h H5Object.h H5PredType.h H5PropList.h H5StrType.h         \
+	H5CppDoc.h H5ArrayType.h H5VarLenType.h      
 
 # h5c++ and libhdf5.settings are generated during configure.  Remove only when
 # distclean.
diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in
index 3d1be83..466e529 100644
--- a/c++/src/Makefile.in
+++ b/c++/src/Makefile.in
@@ -148,10 +148,11 @@ libhdf5_cpp_la_DEPENDENCIES = $(LIBHDF5)
 am_libhdf5_cpp_la_OBJECTS = H5Exception.lo H5IdComponent.lo \
 	H5Library.lo H5Attribute.lo H5Location.lo H5Object.lo \
 	H5PropList.lo H5FaccProp.lo H5FcreatProp.lo H5DcreatProp.lo \
-	H5DxferProp.lo H5DataType.lo H5DataSpace.lo H5AbstractDs.lo \
-	H5AtomType.lo H5PredType.lo H5EnumType.lo H5IntType.lo \
-	H5FloatType.lo H5StrType.lo H5ArrayType.lo H5VarLenType.lo \
-	H5CompType.lo H5DataSet.lo H5CommonFG.lo H5Group.lo H5File.lo
+	H5DxferProp.lo H5OcreatProp.lo H5DataType.lo H5DataSpace.lo \
+	H5AbstractDs.lo H5AtomType.lo H5PredType.lo H5EnumType.lo \
+	H5IntType.lo H5FloatType.lo H5StrType.lo H5ArrayType.lo \
+	H5VarLenType.lo H5CompType.lo H5DataSet.lo H5CommonFG.lo \
+	H5Group.lo H5File.lo
 libhdf5_cpp_la_OBJECTS = $(am_libhdf5_cpp_la_OBJECTS)
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
@@ -669,25 +670,43 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 # See libtool versioning documentation online.
 # After making changes, run bin/reconfigure to update other configure related
 # files like Makefile.in.
-LT_VERS_INTERFACE = 10
-LT_VERS_REVISION = 1 
-LT_VERS_AGE = 0
+LT_VERS_INTERFACE = 11
+LT_VERS_REVISION = 0
+LT_VERS_AGE = 1
+LT_CXX_VERS_INTERFACE = 11
+LT_CXX_VERS_REVISION = 0
+LT_CXX_VERS_AGE = 0
+LT_F_VERS_INTERFACE = 10
+LT_F_VERS_REVISION = 2
+LT_F_VERS_AGE = 0
+LT_HL_VERS_INTERFACE = 10
+LT_HL_VERS_REVISION = 2
+LT_HL_VERS_AGE = 0
+LT_HL_CXX_VERS_INTERFACE = 11
+LT_HL_CXX_VERS_REVISION = 0
+LT_HL_CXX_VERS_AGE = 0
+LT_HL_F_VERS_INTERFACE = 10
+LT_HL_F_VERS_REVISION = 2
+LT_HL_F_VERS_AGE = 0
+LT_TOOLS_VERS_INTERFACE = 10
+LT_TOOLS_VERS_REVISION = 2
+LT_TOOLS_VERS_AGE = 0
 
 # This is our main target
 lib_LTLIBRARIES = libhdf5_cpp.la
 
 # Add libtool numbers to the HDF5 C++ library (from config/lt_vers.am)
-libhdf5_cpp_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5_cpp_la_LDFLAGS = -version-info $(LT_CXX_VERS_INTERFACE):$(LT_CXX_VERS_REVISION):$(LT_CXX_VERS_AGE) $(AM_LDFLAGS)
 bin_SCRIPTS = h5c++
 
 # Source files for the library
 libhdf5_cpp_la_SOURCES = H5Exception.cpp H5IdComponent.cpp H5Library.cpp        \
         H5Attribute.cpp H5Location.cpp H5Object.cpp H5PropList.cpp	      \
 	H5FaccProp.cpp H5FcreatProp.cpp H5DcreatProp.cpp H5DxferProp.cpp      \
-	H5DataType.cpp H5DataSpace.cpp H5AbstractDs.cpp H5AtomType.cpp        \
-	H5PredType.cpp H5EnumType.cpp H5IntType.cpp H5FloatType.cpp           \
-	H5StrType.cpp H5ArrayType.cpp H5VarLenType.cpp H5CompType.cpp         \
-	H5DataSet.cpp H5CommonFG.cpp H5Group.cpp H5File.cpp
+	H5OcreatProp.cpp H5DataType.cpp H5DataSpace.cpp H5AbstractDs.cpp          \
+	H5AtomType.cpp H5PredType.cpp H5EnumType.cpp H5IntType.cpp            \
+	H5FloatType.cpp H5StrType.cpp H5ArrayType.cpp H5VarLenType.cpp        \
+	H5CompType.cpp H5DataSet.cpp H5CommonFG.cpp H5Group.cpp H5File.cpp
 
 
 # HDF5 C++ library depends on HDF5 Library.
@@ -696,11 +715,11 @@ libhdf5_cpp_la_LIBADD = $(LIBHDF5)
 # Public headers
 include_HEADERS = H5Cpp.h H5AbstractDs.h H5AtomType.h H5Attribute.h H5Classes.h \
         H5CommonFG.h H5CompType.h H5DataSet.h H5DataSpace.h H5DataType.h      \
-        H5DcreatProp.h H5DxferProp.h H5EnumType.h H5Exception.h H5FaccProp.h  \
-        H5FcreatProp.h H5File.h H5FloatType.h H5Group.h H5IdComponent.h       \
-        H5Include.h H5IntType.h H5Library.h H5Location.h H5Object.h           \
-	H5PredType.h H5PropList.h H5StrType.h H5CppDoc.h H5ArrayType.h        \
-	H5VarLenType.h      
+        H5OcreatProp.h H5DcreatProp.h H5DxferProp.h H5EnumType.h              \
+	H5Exception.h H5FaccProp.h H5FcreatProp.h H5File.h H5FloatType.h      \
+	H5Group.h H5IdComponent.h H5Include.h H5IntType.h H5Library.h         \
+	H5Location.h H5Object.h H5PredType.h H5PropList.h H5StrType.h         \
+	H5CppDoc.h H5ArrayType.h H5VarLenType.h      
 
 
 # h5c++ and libhdf5.settings are generated during configure.  Remove only when
@@ -869,6 +888,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/H5Library.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/H5Location.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/H5Object.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/H5OcreatProp.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/H5PredType.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/H5PropList.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/H5StrType.Plo at am__quote@
diff --git a/c++/src/cpp_doc_config b/c++/src/cpp_doc_config
index 795da03..6b2ee51 100644
--- a/c++/src/cpp_doc_config
+++ b/c++/src/cpp_doc_config
@@ -38,7 +38,7 @@ PROJECT_NAME           = "HDF5 C++ API"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = HDF5 version 1.8.15-patch1 currently under development
+PROJECT_NUMBER         = "1.8.16"
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -873,7 +873,7 @@ EXAMPLE_RECURSIVE      = NO
 # that contain images that are to be included in the documentation (see the
 # \image command).
 
-IMAGE_PATH             = 
+IMAGE_PATH             = ./header_files
 
 # The INPUT_FILTER tag can be used to specify a program that doxygen should
 # invoke to filter for each input file. Doxygen will invoke the filter program
@@ -1106,7 +1106,7 @@ HTML_HEADER            =
 # that doxygen normally uses.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_FOOTER            = 
+HTML_FOOTER            = footer.html
 
 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
 # sheet that is used by each HTML page. It can be used to fine-tune the look of
@@ -1139,7 +1139,7 @@ HTML_EXTRA_STYLESHEET  =
 # files will be copied as-is; there are no commands or markers available.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_EXTRA_FILES       = 
+HTML_EXTRA_FILES       = ./header_files/help.jpg
 
 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
 # will adjust the colors in the stylesheet and background images according to
diff --git a/html/ed_libs/Footer.htm b/c++/src/footer.html
similarity index 62%
copy from html/ed_libs/Footer.htm
copy to c++/src/footer.html
index 54a1ecb..ba37ee7 100644
--- a/html/ed_libs/Footer.htm
+++ b/c++/src/footer.html
@@ -2,18 +2,17 @@
 <!-- INCLUDE VIA PHP FROM <doc_root>/ed_libs/Footer.htm -->
 
 <address>
+<p><hr/></p>
 <table width="100%" border="0">
   <tr valign="top">
       <td align="left">
           <address>
-          The HDF Group Help Desk: <img src="./Graphics/help.png" align=top height=16>
-          <br>
-          Describes HDF5 Release 1.8.15, May 2015.
+          <em> The HDF Group Help Desk:</em> <img src="help.jpg" align=top height=16>
           </address>
       </td><td width="5%"> </td>
       <td align="right">
-          <a href="./Copyright.html">Copyright</a> by
-          <a href="http://www.hdfgroup.org">The HDF Group</a>
+          <a href="https://www.hdfgroup.org/HDF5/doc/Copyright.html">Copyright</a> by
+          <a href="https://www.hdfgroup.org">The HDF Group</a>
           <br>
           and the Board of Trustees of the University of Illinois
       </td>   
diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt
index dcdf3a3..6f1d857 100644
--- a/c++/test/CMakeLists.txt
+++ b/c++/test/CMakeLists.txt
@@ -35,8 +35,8 @@ set (srcdir ${CMAKE_CURRENT_SOURCE_DIR})
 configure_file (${HDF5_CPP_TEST_SOURCE_DIR}/H5srcdir_str.h.in H5srcdir_str.h  @ONLY)
 
 add_executable (cpp_testhdf5 ${CPP_TEST_SRCS} )
-TARGET_NAMING (cpp_testhdf5 ${LIB_TYPE})
-TARGET_C_PROPERTIES (cpp_testhdf5 ${LIB_TYPE} " " " ")
+TARGET_NAMING (cpp_testhdf5 STATIC)
+TARGET_C_PROPERTIES (cpp_testhdf5 STATIC " " " ")
 target_link_libraries (cpp_testhdf5
     ${HDF5_CPP_LIB_TARGET}
     ${HDF5_LIB_TARGET}
diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp
index 9f1916d..e57e50e 100644
--- a/c++/test/dsets.cpp
+++ b/c++/test/dsets.cpp
@@ -61,7 +61,7 @@ const int H5Z_FILTER_BOGUS = 305;
 
 static size_t filter_bogus(unsigned int flags, size_t cd_nelmts,
     const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf);
-// UNUSED variables caused warning, but taking them out caused failure.
+// H5_ATTR_UNUSED variables caused warning, but taking them out caused failure.
 
 /*-------------------------------------------------------------------------
  * Function:	test_create
@@ -462,7 +462,7 @@ static size_t
 filter_bogus(unsigned int flags, size_t cd_nelmts,
       const unsigned int cd_values[], size_t nbytes,
       size_t *buf_size, void **buf)
-// UNUSED variables caused warning, but taking them out caused failure.
+// H5_ATTR_UNUSED variables caused warning, but taking them out caused failure.
 {
     return nbytes;
 }
diff --git a/c++/test/tattr.cpp b/c++/test/tattr.cpp
index 275a287..0fefe22 100644
--- a/c++/test/tattr.cpp
+++ b/c++/test/tattr.cpp
@@ -1570,6 +1570,198 @@ static void test_attr_exists()
 
 /****************************************************************
 **
+**  test_attr_dense_create(): Test phase change properties
+**      Tests "dense" attribute storage creation
+**
+****************************************************************/
+const H5std_string FILE_CRTPROPS("tattr_crt_properties.h5");
+const int NAME_BUF_SIZE = 1024;
+const unsigned MAX_COMPACT_DEF = 8;
+const unsigned MIN_DENSE_DEF = 6;
+
+static void test_attr_dense_create(FileCreatPropList& fcpl,
+				   FileAccPropList& fapl)
+{
+    // Output message about test being performed
+    SUBTEST("Dense Attribute Storage Creation");
+
+    try {
+	// Create file
+	H5File fid1 (FILE_CRTPROPS, H5F_ACC_TRUNC, fcpl, fapl);
+
+	// Close file
+	fid1.close();
+
+	// Get size of file
+	h5_stat_size_t empty_filesize;       // Size of empty file
+	empty_filesize = h5_get_file_size(FILE_CRTPROPS.c_str(), fapl.getId());
+	if (empty_filesize < 0)
+            TestErrPrintf("Line %d: file size wrong!\n", __LINE__);
+
+	// Re-open file
+	fid1.openFile(FILE_CRTPROPS, H5F_ACC_RDWR, fapl);
+
+	// Create dataspace for dataset
+	DataSpace ds_space(H5S_SCALAR);
+
+	//  Create dataset creation property list.
+	DSetCreatPropList dcpl;
+
+	// Create a dataset
+	DataSet dataset = fid1.createDataSet(DSET1_NAME, PredType::NATIVE_UCHAR, ds_space, dcpl);
+
+	unsigned max_compact = 0, min_dense = 0;
+
+	// Retrieve limits for compact/dense attribute storage
+	dcpl.getAttrPhaseChange(max_compact, min_dense);
+	verify_val(max_compact, MAX_COMPACT_DEF, "DSetCreatPropList::getAttrPhaseChange",__LINE__,__FILE__);
+	verify_val(min_dense, MIN_DENSE_DEF, "DSetCreatPropList::getAttrPhaseChange",__LINE__,__FILE__);
+
+	// Set new compact/dense attribute storage limits to some random numbers
+	dcpl.setAttrPhaseChange(7, 5);
+
+	// Retrieve limits for compact/dense attribute storage and verify them
+	dcpl.getAttrPhaseChange(max_compact, min_dense);
+	verify_val(max_compact, 7, "DSetCreatPropList::getAttrPhaseChange",__LINE__,__FILE__);
+	verify_val(min_dense, 5, "DSetCreatPropList::getAttrPhaseChange",__LINE__,__FILE__);
+
+	// Close property list
+	dcpl.close();
+
+	// H5O_is_attr_dense_test - un-usable
+
+	// Add attributes, until just before converting to dense storage
+	char attr_name[NAME_BUF_SIZE];
+	unsigned attr_num;
+	for (attr_num = 0; attr_num < max_compact; attr_num++)
+	{
+	    // Create attribute
+	    sprintf(attr_name, "attr %02u", attr_num);
+	    Attribute attr = dataset.createAttribute(attr_name, PredType::NATIVE_UINT, ds_space);
+
+	    // Write data to the attribute
+	    attr.write(PredType::NATIVE_UINT, &attr_num);
+	} // end for
+
+	// H5O_is_attr_dense_test - un-usable
+
+	{ // Add one more attribute, to push into "dense" storage
+
+	    // Create another attribute
+	    sprintf(attr_name, "attr %02u", attr_num);
+	    Attribute attr = dataset.createAttribute(attr_name, PredType::NATIVE_UINT, ds_space);
+
+	    // Write data to the attribute
+	    attr.write(PredType::NATIVE_UINT, &attr_num);
+	}
+
+	// Attempt to add attribute again, which should fail
+	try
+	{
+	    // Create another attribute
+	    sprintf(attr_name, "attr %02u", attr_num);
+	    Attribute attr = dataset.createAttribute(attr_name, PredType::NATIVE_UINT, ds_space);
+
+	    // continuation here, that means no exception has been thrown
+	    throw InvalidActionException("DataSet::createAttribute", "Maximum number of attributes has been reached");
+	}
+	catch (AttributeIException E) // catching invalid action
+        {} // do nothing, exception expected
+
+	PASSED();
+    } // end try block
+
+    catch (Exception E) {
+	issue_fail_msg("test_attr_dense_create()", __LINE__, __FILE__, E.getCDetailMsg());
+    }
+}   // test_attr_dense_create()
+
+/****************************************************************
+**
+**  test_attr_corder_create_basic(): Test creation order properties
+**      Tests creating an object w/attribute creation order info
+**
+****************************************************************/
+static void test_attr_corder_create_basic(FileCreatPropList& fcpl,
+				   FileAccPropList& fapl)
+{
+    // Output message about test being performed
+    SUBTEST("Basic Code for Attributes with Creation Order Info");
+
+    try {
+	// Create file
+	H5File fid1 (FILE_CRTPROPS, H5F_ACC_TRUNC, fcpl, fapl);
+
+	//  Create dataset creation property list.
+	DSetCreatPropList dcpl;
+
+	// Get creation order indexing on object
+	unsigned crt_order_flags = 0;
+	crt_order_flags = dcpl.getAttrCrtOrder();
+	verify_val(crt_order_flags, 0, "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
+
+	// Setting invalid combination of a attribute order creation order
+	// indexing on should fail
+	try {
+	    dcpl.setAttrCrtOrder(H5P_CRT_ORDER_INDEXED);
+
+	    // continuation here, that means no exception has been thrown
+	    throw InvalidActionException("DSetCreatPropList::getAttrCrtOrder", "Indexing cannot be set alone, order tracking is required");
+	}
+	catch (PropListIException E) // catching invalid action
+        {} // do nothing, exception expected
+
+	// Set attribute creation order tracking & indexing for object then
+	// verify them
+	dcpl.setAttrCrtOrder(H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED);
+	crt_order_flags = dcpl.getAttrCrtOrder();
+	verify_val(crt_order_flags, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED), "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
+
+	// Create dataspace for dataset
+	DataSpace ds_space(H5S_SCALAR);
+
+	// Create a dataset
+	DataSet dataset = fid1.createDataSet(DSET1_NAME, PredType::NATIVE_UCHAR, ds_space, dcpl);
+
+	// Close dataspace
+	ds_space.close();
+
+	// Check on dataset's attribute storage status.
+	// NOTE: Wrappers not available yet (H5O_is_attr_empty_test
+	// and H5O_is_attr_dense_test)
+
+	// Close dataset
+	dataset.close();
+
+	// Close property list
+	dcpl.close();
+
+	// Close file
+	fid1.close();
+
+	// Re-open file
+	fid1.openFile(FILE_CRTPROPS, H5F_ACC_RDWR, fapl);
+
+	// Open dataset created previously
+	dataset = fid1.openDataSet(DSET1_NAME);
+
+	// Retrieve dataset creation property list for the dataset
+	dcpl = dataset.getCreatePlist();
+
+	// Query the attribute creation properties
+	crt_order_flags = dcpl.getAttrCrtOrder();
+	verify_val(crt_order_flags, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED), "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
+
+	PASSED();
+    } // end try block
+
+    catch (Exception E) {
+	issue_fail_msg("test_attr_corder_create_basic()", __LINE__, __FILE__, E.getCDetailMsg());
+    }
+}   // test_attr_corder_create_basic()
+
+/****************************************************************
+**
 **  test_attr(): Main attribute testing routine.
 **
 ****************************************************************/
@@ -1582,26 +1774,80 @@ void test_attr()
     //MESSAGE("Testing Attributes\n");
     MESSAGE(5, ("Testing Attributes\n"));
 
-    test_attr_basic_write();	// Test basic H5A writing code
-    test_attr_getname();	// Test overloads of Attribute::getName
-    test_attr_rename();		// Test renaming attribute
-    test_attr_basic_read(); 	// Test basic H5A reading code
-
-    test_attr_compound_write();	// Test complex datatype H5A writing code
-    test_attr_compound_read();	// Test complex datatype H5A reading code
-
-    test_attr_scalar_write();	// Test scalar dataspace H5A writing code
-    test_attr_scalar_read();	// Test scalar dataspace H5A reading code
-
-    test_attr_mult_write();	// Test writing multiple attributes
-    test_attr_mult_read();	// Test reading multiple attributes
-    test_attr_delete();		// Test deleting attributes
-
-    test_attr_dtype_shared();	// Test using shared datatypes in attributes
-
-    test_string_attr();		// Test read/write string attribute
-    test_attr_exists();		// Test H5Location::attrExists
+    try
+    {
+        // Create a default file access property list
+        FileAccPropList fapl;
+
+        // Copy the file access property list for new format test
+        FileAccPropList fapl_new = fapl;
+
+        // Set the "use the latest version of the format" bounds for creating
+        // objects in the file
+        fapl_new.setLibverBounds(H5F_LIBVER_LATEST, H5F_LIBVER_LATEST);
+
+        // Create a default file creation property list
+        FileCreatPropList fcpl;
+
+        // Copy the file creation property list for new format test
+        FileCreatPropList fcpl_new = fcpl;
+
+        // Wrappers for ..._shared_mesg_nindexes are not available, skip
+        // use_shared test
+
+        // Loop over using new group format
+        hbool_t new_format;
+        for (new_format = FALSE; new_format <= TRUE; new_format++)
+        {
+            FileAccPropList curr_fapl;
+
+            // Set the file access proplist for the type of format
+            if (new_format)
+            {
+	    MESSAGE(7, ("testing with new file format\n"));
+	    curr_fapl = fapl_new;
+            }
+            else
+            {
+	    MESSAGE(7, ("testing with old file format\n"));
+	    curr_fapl = fapl;
+            }
+
+            test_attr_basic_write();	// Test basic H5A writing code
+            test_attr_getname();	// Test overloads of Attribute::getName
+            test_attr_rename();		// Test renaming attribute
+            test_attr_basic_read(); 	// Test basic H5A reading code
+
+            test_attr_compound_write();	// Test complex datatype H5A writing code
+            test_attr_compound_read();	// Test complex datatype H5A reading code
+
+            test_attr_scalar_write();	// Test scalar dataspace H5A writing code
+            test_attr_scalar_read();	// Test scalar dataspace H5A reading code
+
+            test_attr_mult_write();	// Test writing multiple attributes
+            test_attr_mult_read();	// Test reading multiple attributes
+            test_attr_delete();		// Test deleting attributes
+
+            test_attr_dtype_shared();	// Test using shared datatypes in attributes
+
+            test_string_attr();		// Test read/write string attribute
+            test_attr_exists();		// Test H5Location::attrExists
+
+            // Test with new format
+            if (new_format)
+            {
+		// Test dense attribute storage creation
+                test_attr_dense_create(fcpl, curr_fapl);
+
+		// Test create objects with attribute creation info
+                test_attr_corder_create_basic(fcpl, curr_fapl);
+            }
+        } // end for
+    } // end try block
 
+    catch (Exception E) {
+	issue_fail_msg("test_attr()", __LINE__, __FILE__, E.getCDetailMsg());
+    }
 }   // test_attr()
 

 /*-------------------------------------------------------------------------
@@ -1628,5 +1874,6 @@ void cleanup_attr()
     HDremove(FILE_SCALAR.c_str());
     HDremove(FILE_MULTI.c_str());
     HDremove(FILE_DTYPE.c_str());
+    HDremove(FILE_CRTPROPS.c_str());
 }
 
diff --git a/c++/test/tfile.cpp b/c++/test/tfile.cpp
index 7c2811e..78b3611 100644
--- a/c++/test/tfile.cpp
+++ b/c++/test/tfile.cpp
@@ -109,9 +109,7 @@ static void test_file_create()
 	file1 = new H5File (FILE1, H5F_ACC_EXCL);
 
 	// try to create the same file with H5F_ACC_TRUNC. This should fail
-	// because file1 is the same file and is currently open. Skip it on
-        // OpenVMS because it creates another version of the file.
-#ifndef H5_HAVE_FILE_VERSIONS
+	// because file1 is the same file and is currently open.
 	try {
 	    H5File file2 (FILE1, H5F_ACC_TRUNC);  // should throw E
 
@@ -120,7 +118,6 @@ static void test_file_create()
 	}
 	catch( FileIException E ) // catch truncating existing file
 	{} // do nothing, FAIL expected
-#endif /*H5_HAVE_FILE_VERSIONS*/
 
 	// Close file1
 	delete file1;
@@ -141,9 +138,7 @@ static void test_file_create()
 	file1 = new H5File (FILE1, H5F_ACC_TRUNC);
 
 	// Try to create first file again. This should fail because file1
-	// is the same file and is currently open. Skip it on OpenVMS because
-        // it creates another version of the file.
-#ifndef H5_HAVE_FILE_VERSIONS
+	// is the same file and is currently open.
     	try {
 	    H5File file2 (FILE1, H5F_ACC_TRUNC);   // should throw E
 
@@ -154,7 +149,7 @@ static void test_file_create()
 	{} // do nothing, FAIL expected
 
      	// Try with H5F_ACC_EXCL. This should fail too because the file already
-     	// exists. Skip it on OpenVMS because it creates another version of the file.
+     	// exists.
     	try {
 	    H5File file3 (FILE1, H5F_ACC_EXCL);  // should throw E
 
@@ -163,7 +158,6 @@ static void test_file_create()
     	}
 	catch( FileIException E ) // catching H5F_ACC_EXCL on existing file
 	{} // do nothing, FAIL expected
-#endif /*H5_HAVE_FILE_VERSIONS*/
 
     	// Get the file-creation template
 	FileCreatPropList tmpl1 = file1->getCreatePlist();
diff --git a/c++/test/tfilter.cpp b/c++/test/tfilter.cpp
index 3edb83a..ff3901d 100644
--- a/c++/test/tfilter.cpp
+++ b/c++/test/tfilter.cpp
@@ -59,7 +59,7 @@ static herr_t test_filter_internal(hid_t fid, const char *name, hid_t dcpl,
 /* Temporary filter IDs used for testing */
 const int H5Z_FILTER_BOGUS = 305;
 
-#if 0 // UNUSED variables caused warning, so duplicated below with NULL instead
+#if 0 // H5_ATTR_UNUSED variables caused warning, so duplicated below with NULL instead
 static size_t filter_bogus(unsigned int flags, size_t cd_nelmts,
     const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf);
 #endif
@@ -92,10 +92,10 @@ const H5Z_class2_t H5Z_BOGUS[1] = {{
  *-------------------------------------------------------------------------
  */
 static size_t
-#if 0 // UNUSED variables caused warning, so duplicated below with NULL instead
-filter_bogus(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t nbytes,
-      size_t UNUSED *buf_size, void UNUSED **buf)
+#if 0 // H5_ATTR_UNUSED variables caused warning, so duplicated below with NULL instead
+filter_bogus(unsigned int H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
+      size_t H5_ATTR_UNUSED *buf_size, void H5_ATTR_UNUSED **buf)
 #endif
 filter_bogus(size_t nbytes)
 {
diff --git a/c++/test/tlinks.cpp b/c++/test/tlinks.cpp
index 291b649..33d10ea 100644
--- a/c++/test/tlinks.cpp
+++ b/c++/test/tlinks.cpp
@@ -58,60 +58,6 @@
 /* File for external link test.  Created with gen_udlinks.c */
 #define LINKED_FILE  "be_extlink2.h5"
 
-#ifdef H5_VMS
-#if 0
-const char *FILENAME[] = {
-    "links0",
-    "links1",
-    "links2",
-    "links3",
-    "links4a", /* 4 */
-    "links4b", /* 5 */
-    "links4c", /* 6 */
-    "links4d", /* 7 */
-    "links5",  /* 8 */
-    "links6",  /* 9 */
-    "links7",  /* 10 */
-    "links8",  /* 11 */
-    "extlinks0",	/* 12: main files */
-    "[.tmp]extlinks0",	/* 13: */
-    "extlinks1",	/* 14: target files */
-    "[.tmp]extlinks1",	/* 15: */
-    "extlinks2",	/* 16: */
-    "[.tmp]extlinks2",	/* 17: */
-    "extlinks3",	/* 18: */
-    "[.tmp]extlinks3",	/* 19: */
-    "extlinks4",	/* 20: */
-    "[.tmp]extlinks4",	/* 21: */
-    "extlinks5",	/* 22: */
-    "[.tmp]extlinks6",	/* 23: */
-    "extlinks7",	/* 24: */
-    "[.tmp]extlinks7",	/* 25: */
-    "[.tmp]extlinks8",	/* 26: */
-    "extlinks9",	/* 27: */
-    "[.tmp]extlinks9",	/* 28: */
-    "extlinks10",	/* 29: */ /* TESTS for windows */
-    "[.tmp]extlinks10",	/* 30: */
-    "[.tmp]extlinks11",	/* 31: */
-    "[.tmp]extlinks12",	/* 32: */
-    "extlinks13",	/* 33: */
-    "[.tmp]extlinks13",	/* 34: */
-    "[.tmp]extlinks14",	/* 35: */
-    "[.tmp]extlinks15",	/* 36: */
-    "extlinks16A",	/* 37: */ /* TESTS for H5P_set_elink_fapl */
-    "extlinks16B",	/* 38: */
-    "extlinks17",	/* 39: */
-    "extlinks18A",	/* 40: */
-    "extlinks18B",	/* 41: */
-    "extlinks19A",	/* 42: */
-    "extlinks19B",	/* 43: */
-    "extlinks20",	/* 44: */
-    NULL
-};
-#endif // 0
-
-#define TMPDIR          "[.tmp]"
-#else
 #if 0
 const char *FILENAME[] = {
     "links0",
@@ -165,7 +111,6 @@ const char *FILENAME[] = {
 #endif // 0
 
 #define TMPDIR          "tmp"
-#endif
 
 #define FAMILY_SIZE	1024
 #define CORE_INCREMENT  1024
@@ -574,16 +519,12 @@ void test_links()
 #ifndef H5_NO_DEPRECATED_SYMBOLS
         nerrors += test_deprec(my_fapl, new_format);
 #endif /* H5_NO_DEPRECATED_SYMBOLS */
-#ifndef H5_CANNOT_OPEN_TWICE
         nerrors += external_link_root(my_fapl, new_format) < 0 ? 1 : 0;
-#endif /* H5_CANNOT_OPEN_TWICE */
         nerrors += external_link_path(my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += external_link_mult(my_fapl, new_format) < 0 ? 1 : 0;
-#ifndef H5_CANNOT_OPEN_TWICE
         nerrors += external_link_self(envval, my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += external_link_pingpong(envval, my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += external_link_toomany(my_fapl, new_format) < 0 ? 1 : 0;
-#endif /* H5_CANNOT_OPEN_TWICE */
         nerrors += external_link_dangling(my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += external_link_recursive(my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += external_link_query(my_fapl, new_format) < 0 ? 1 : 0;
@@ -591,9 +532,7 @@ void test_links()
         nerrors += external_link_unlink_dense(my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += external_link_move(my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += external_link_ride(my_fapl, new_format) < 0 ? 1 : 0;
-#ifndef H5_CANNOT_OPEN_TWICE
         nerrors += external_link_closing(envval, my_fapl, new_format) < 0 ? 1 : 0;
-#endif /* H5_CANNOT_OPEN_TWICE */
         nerrors += external_link_endian(new_format) < 0 ? 1 : 0;
         nerrors += external_link_strong(my_fapl, new_format) < 0 ? 1 : 0;
 
diff --git a/config/cmake/CPack.Info.plist.in b/config/cmake/CPack.Info.plist.in
new file mode 100644
index 0000000..08d371b
--- /dev/null
+++ b/config/cmake/CPack.Info.plist.in
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>English</string>
+  <key>CFBundleExecutable</key>
+  <string>@CPACK_PACKAGE_FILE_NAME@</string>
+  <key>CFBundleIconFile</key>
+  <string>@CPACK_BUNDLE_ICON@</string>
+  <key>CFBundleIdentifier</key>
+  <string>org. at CPACK_PACKAGE_VENDOR@. at CPACK_PACKAGE_NAME@@CPACK_MODULE_VERSION_SUFFIX@</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>@CPACK_PACKAGE_VERSIO@</string>
+  <key>CFBundleShortVersionString</key>
+  <string>@CPACK_SHORT_VERSION_STRING@</string>
+  <key>CSResourcesFileMapped</key>
+  <true/>
+</dict>
+</plist>
diff --git a/config/cmake/CTestCustom.cmake b/config/cmake/CTestCustom.cmake
index 4df2c8c..8d80f19 100644
--- a/config/cmake/CTestCustom.cmake
+++ b/config/cmake/CTestCustom.cmake
@@ -29,6 +29,7 @@ set (CTEST_CUSTOM_MEMCHECK_IGNORE
     H5TEST-clear-objects
     H5TEST-clear-cache-objects
     H5TEST-clear-cache_api-objects
+    H5TEST-clear-cache_tagging-objects
     H5TEST-clear-ttsafe-objects
     H5TEST-clear-err_compat-objects
     H5TEST-clear-error_test-objects
diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake
index 2b4c4a3..09f1caf 100644
--- a/config/cmake/ConfigureChecks.cmake
+++ b/config/cmake/ConfigureChecks.cmake
@@ -73,13 +73,6 @@ if (HDF5_ENABLE_HSIZET)
   set (${HDF_PREFIX}_HAVE_LARGE_HSIZET 1)
 endif (HDF5_ENABLE_HSIZET)
 
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can handle converting
-# floating-point to long long values.
-# (This flag should be _unset_ for all machines)
-#
-#  set (H5_HW_FP_TO_LLONG_NOT_WORKS 0)
-
 # so far we have no check for this
 set (H5_HAVE_TMPFILE 1)
 
@@ -111,45 +104,6 @@ endif (WINDOWS)
 # ----------------------------------------------------------------------
 
 CHECK_FUNCTION_EXISTS (difftime          H5_HAVE_DIFFTIME)
-#CHECK_FUNCTION_EXISTS (gettimeofday      H5_HAVE_GETTIMEOFDAY)
-#  Since gettimeofday is not defined any where standard, lets look in all the
-#  usual places. On MSVC we are just going to use ::clock()
-if (NOT MSVC)
-  if ("H5_HAVE_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_TIME_GETTIMEOFDAY$")
-    TRY_COMPILE (HAVE_TIME_GETTIMEOFDAY
-        ${CMAKE_BINARY_DIR}
-        ${HDF_RESOURCES_EXT_DIR}/GetTimeOfDayTest.cpp
-        COMPILE_DEFINITIONS -DTRY_TIME_H
-        OUTPUT_VARIABLE OUTPUT
-    )
-    if (HAVE_TIME_GETTIMEOFDAY STREQUAL "TRUE")
-      set (H5_HAVE_TIME_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_TIME_GETTIMEOFDAY")
-      set (H5_HAVE_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_GETTIMEOFDAY")
-    endif (HAVE_TIME_GETTIMEOFDAY STREQUAL "TRUE")
-  endif ("H5_HAVE_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_TIME_GETTIMEOFDAY$")
-
-  if ("H5_HAVE_SYS_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_SYS_TIME_GETTIMEOFDAY$")
-    TRY_COMPILE (HAVE_SYS_TIME_GETTIMEOFDAY
-        ${CMAKE_BINARY_DIR}
-        ${HDF_RESOURCES_EXT_DIR}/GetTimeOfDayTest.cpp
-        COMPILE_DEFINITIONS -DTRY_SYS_TIME_H
-        OUTPUT_VARIABLE OUTPUT
-    )
-    if (HAVE_SYS_TIME_GETTIMEOFDAY STREQUAL "TRUE")
-      set (H5_HAVE_SYS_TIME_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_SYS_TIME_GETTIMEOFDAY")
-      set (H5_HAVE_GETTIMEOFDAY "1" CACHE INTERNAL "H5_HAVE_GETTIMEOFDAY")
-    endif (HAVE_SYS_TIME_GETTIMEOFDAY STREQUAL "TRUE")
-  endif ("H5_HAVE_SYS_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_SYS_TIME_GETTIMEOFDAY$")
-
-  if (NOT HAVE_SYS_TIME_GETTIMEOFDAY AND NOT H5_HAVE_GETTIMEOFDAY)
-    message (STATUS "---------------------------------------------------------------")
-    message (STATUS "Function 'gettimeofday()' was not found. HDF5 will use its")
-    message (STATUS "  own implementation.. This can happen on older versions of")
-    message (STATUS "  MinGW on Windows. Consider upgrading your MinGW installation")
-    message (STATUS "  to a newer version such as MinGW 3.12")
-    message (STATUS "---------------------------------------------------------------")
-  endif (NOT HAVE_SYS_TIME_GETTIMEOFDAY AND NOT H5_HAVE_GETTIMEOFDAY)
-endif (NOT MSVC)
 
 # Find the library containing clock_gettime()
 if (NOT WINDOWS)
@@ -259,14 +213,6 @@ ENDMACRO (H5MiscConversionTest)
 #-----------------------------------------------------------------------------
 
 # ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can handle overflow converting
-# all floating-point to all integer types.
-# (This flag should be set for all machines, except for Cray X1 where
-# floating exception is generated when the floating-point value is greater
-# than the maximal integer value).
-#
-H5ConversionTests (H5_FP_TO_INTEGER_OVERFLOW_WORKS  "Checking IF overflows normally converting floating-point to integer values")
-# ----------------------------------------------------------------------
 # Set the flag to indicate that the machine is using a special algorithm to convert
 # 'long double' to '(unsigned) long' values.  (This flag should only be set for 
 # the IBM Power6 Linux.  When the bit sequence of long double is 
@@ -304,26 +250,10 @@ H5ConversionTests (H5_LDOUBLE_TO_LLONG_ACCURATE "Checking IF correctly convertin
 #
 H5ConversionTests (H5_LLONG_TO_LDOUBLE_CORRECT "Checking IF correctly converting (unsigned) long long to long double values")
 # ----------------------------------------------------------------------
-# Set the flag to indicate that the machine generates bad code
-# for the H5VM_log2_gen() routine in src/H5VMprivate.h
-# (This flag should be set to no for all machines, except for SGI IRIX64,
-# where the cache value is set to yes in it's config file)
-#
-if (H5_BAD_LOG2_CODE_GENERATED MATCHES ^H5_BAD_LOG2_CODE_GENERATED$)
-  set (H5_BAD_LOG2_CODE_GENERATED 0 CACHE INTERNAL "Define if your system generates wrong code for log2 routine")
-  message (STATUS "Checking IF your system generates wrong code for log2 routine... no")
-endif (H5_BAD_LOG2_CODE_GENERATED MATCHES ^H5_BAD_LOG2_CODE_GENERATED$)
-# ----------------------------------------------------------------------
 # Check if pointer alignments are enforced
 #
 H5ConversionTests (H5_NO_ALIGNMENT_RESTRICTIONS "Checking IF alignment restrictions are strictly enforced")
 
-# Define a macro for Cygwin (on XP only) where the compiler has rounding
-#   problem converting from unsigned long long to long double */
-if (CYGWIN)
-  set (H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM 1)
-endif (CYGWIN)
-
 # -----------------------------------------------------------------------
 # wrapper script variables
 # 
diff --git a/config/cmake/ConversionTests.c b/config/cmake/ConversionTests.c
index 9a81a20..b8946a8 100644
--- a/config/cmake/ConversionTests.c
+++ b/config/cmake/ConversionTests.c
@@ -1,20 +1,8 @@
-#ifdef H5_FP_TO_INTEGER_OVERFLOW_WORKS_TEST
-
-int main(void)
-{
-    float  f = 2147483648.0f;
-    int    i;
-
-    i = (int)f;
-
-done:
-    exit(0);
-}
-
-#endif
-
 #ifdef H5_LDOUBLE_TO_LONG_SPECIAL_TEST
 
+#include <string.h>
+#include <stdlib.h>
+
 int main(void)
 {
     long double         ld = 20041683600089727.779961L;
@@ -73,6 +61,9 @@ done:
 
 #ifdef H5_LONG_TO_LDOUBLE_SPECIAL_TEST
 
+#include <string.h>
+#include <stdlib.h>
+
 int main(void)
 {
     long double         ld;
@@ -132,6 +123,10 @@ done:
 #endif
 
 #ifdef H5_LDOUBLE_TO_LLONG_ACCURATE_TEST
+
+#include <string.h>
+#include <stdlib.h>
+
 int main(void)
 {
     long double         ld = 20041683600089727.779961L;
@@ -171,6 +166,10 @@ done:
 #endif
 
 #ifdef H5_LLONG_TO_LDOUBLE_CORRECT_TEST
+
+#include <string.h>
+#include <stdlib.h>
+
 int main(void)
 {
     long double         ld;
diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in
index 916c4c4..13740ea 100644
--- a/config/cmake/H5pubconf.h.in
+++ b/config/cmake/H5pubconf.h.in
@@ -15,38 +15,13 @@
 /* Define if using a Windows compiler (i.e. Visual Studio) */
 #cmakedefine H5_HAVE_VISUAL_STUDIO @H5_HAVE_VISUAL_STUDIO@
 
-/* Defined if HDF5 was built with CMake AND build as a shared library */
-#cmakedefine H5_BUILT_AS_DYNAMIC_LIB @H5_BUILT_AS_DYNAMIC_LIB@
-
-/* Defined if HDF5 was built with CMake AND build as a static library */
-#cmakedefine H5_BUILT_AS_STATIC_LIB @H5_BUILT_AS_STATIC_LIB@
-
-/* Defined if HDF5 CPP  was built with CMake AND build as a shared library  */
-#cmakedefine H5_CPP_BUILT_AS_DYNAMIC_LIB @H5_CPP_BUILT_AS_DYNAMIC_LIB@
-
-/* Defined if HDF5 CPP  was built with CMake AND build as a static library  */
-#cmakedefine H5_CPP_BUILT_AS_STATIC_LIB @H5_CPP_BUILT_AS_STATIC_LIB@
-
-/* Defined if HDF5 HL was built with CMake AND build as a shared library */
-#cmakedefine H5_HL_BUILT_AS_DYNAMIC_LIB @H5_HL_BUILT_AS_DYNAMIC_LIB@
-
-/* Defined if HDF5 HL was built with CMake AND build as a static library */
-#cmakedefine H5_HL_BUILT_AS_STATIC_LIB @H5_HL_BUILT_AS_STATIC_LIB@
-
 /* Define if building universal (internal helper macro) */
 #cmakedefine H5_AC_APPLE_UNIVERSAL_BUILD @H5_AC_APPLE_UNIVERSAL_BUILD@
 
-/* Define if your system generates wrong code for log2 routine. */
-#cmakedefine H5_BAD_LOG2_CODE_GENERATED @H5_BAD_LOG2_CODE_GENERATED@
-
 /* Define if the memory buffers being written to disk should be cleared before
    writing. */
 #cmakedefine H5_CLEAR_MEMORY @H5_CLEAR_MEMORY@
 
-/* Define if your system can handle converting denormalized floating-point
-   values. */
-#cmakedefine H5_CONVERT_DENORMAL_FLOAT @H5_CONVERT_DENORMAL_FLOAT@
-
 /* Define if C++ compiler recognizes offsetof */
 #cmakedefine H5_CXX_HAVE_OFFSETOF @H5_CXX_HAVE_OFFSETOF@
 
@@ -70,10 +45,6 @@
 /* As FC_FUNC, but for C identifiers containing underscores. */
 #define @H5_FC_FUNC_@
 
-/* Define if your system can handle overflow converting floating-point to
-   integer values. */
-#cmakedefine H5_FP_TO_INTEGER_OVERFLOW_WORKS @H5_FP_TO_INTEGER_OVERFLOW_WORKS@
-
 /* Define to 1 if you have the `alarm' function. */
 #cmakedefine H5_HAVE_ALARM @H5_HAVE_ALARM@
 
@@ -99,10 +70,6 @@
 /* Define if Darwin or Mac OS X */
 #cmakedefine H5_HAVE_DARWIN @H5_HAVE_DARWIN@
 
-/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
-   */
-#cmakedefine H5_HAVE_DECL_TZNAME @H5_HAVE_DECL_TZNAME@
-
 /* Define to 1 if you have the `difftime' function. */
 #cmakedefine H5_HAVE_DIFFTIME @H5_HAVE_DIFFTIME@
 
@@ -178,14 +145,8 @@
 /* Define to 1 if you have the `gettimeofday' function. */
 #cmakedefine H5_HAVE_GETTIMEOFDAY @H5_HAVE_GETTIMEOFDAY@
 
-/* Define to 1 if you have the `gettimeofday' function declared in time.h . */
-#cmakedefine H5_HAVE_TIME_GETTIMEOFDAY @H5_HAVE_TIME_GETTIMEOFDAY@
-
-/* Define to 1 if you have the `gettimeofday' function declared in sys/time.h . */
-#cmakedefine H5_HAVE_SYS_TIME_GETTIMEOFDAY @H5_HAVE_SYS_TIME_GETTIMEOFDAY@
-
-/* Define to 1 if you have the `get_fpc_csr' function. */
-#cmakedefine H5_HAVE_GET_FPC_CSR @H5_HAVE_GET_FPC_CSR@
+/* Define if the compiler understands inline */
+#cmakedefine H5_HAVE_INLINE @H5_HAVE_INLINE@
 
 /* Define if library will contain instrumentation to detect correct
    optimization operation */
@@ -212,24 +173,9 @@
 /* Define to 1 if you have the `mpe' library (-lmpe). */
 #cmakedefine H5_HAVE_LIBMPE @H5_HAVE_LIBMPE@
 
-/* Define to 1 if you have the `mpi' library (-lmpi). */
-#cmakedefine H5_HAVE_LIBMPI @H5_HAVE_LIBMPI@
-
-/* Define to 1 if you have the `mpich' library (-lmpich). */
-#cmakedefine H5_HAVE_LIBMPICH @H5_HAVE_LIBMPICH@
-
-/* Define to 1 if you have the `mpio' library (-lmpio). */
-#cmakedefine H5_HAVE_LIBMPIO @H5_HAVE_LIBMPIO@
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#cmakedefine H5_HAVE_LIBNSL @H5_HAVE_LIBNSL@
-
 /* Define to 1 if you have the `pthread' library (-lpthread). */
 #cmakedefine H5_HAVE_LIBPTHREAD @H5_HAVE_LIBPTHREAD@
 
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#cmakedefine H5_HAVE_LIBSOCKET @H5_HAVE_LIBSOCKET@
-
 /* Define to 1 if you have the `sz' library (-lsz). */
 #cmakedefine H5_HAVE_LIBSZ @H5_HAVE_LIBSZ@
 
@@ -290,9 +236,6 @@
 /* Define to 1 if you have the `setsysinfo' function. */
 #cmakedefine H5_HAVE_SETSYSINFO @H5_HAVE_SETSYSINFO@
 
-/* Define to 1 if you have the `sigaction' function. */
-#cmakedefine H5_HAVE_SIGACTION @H5_HAVE_SIGACTION@
-
 /* Define to 1 if you have the `siglongjmp' function. */
 #cmakedefine H5_HAVE_SIGLONGJMP @H5_HAVE_SIGLONGJMP@
 
@@ -350,15 +293,9 @@
 /* Define to 1 if you have the `system' function. */
 #cmakedefine H5_HAVE_SYSTEM @H5_HAVE_SYSTEM@
 
-/* Define to 1 if you have the <sys/fpu.h> header file. */
-#cmakedefine H5_HAVE_SYS_FPU_H @H5_HAVE_SYS_FPU_H@
-
 /* Define to 1 if you have the <sys/ioctl.h> header file. */
 #cmakedefine H5_HAVE_SYS_IOCTL_H @H5_HAVE_SYS_IOCTL_H@
 
-/* Define to 1 if you have the <sys/proc.h> header file. */
-#cmakedefine H5_HAVE_SYS_PROC_H @H5_HAVE_SYS_PROC_H@
-
 /* Define to 1 if you have the <sys/resource.h> header file. */
 #cmakedefine H5_HAVE_SYS_RESOURCE_H @H5_HAVE_SYS_RESOURCE_H@
 
@@ -368,15 +305,9 @@
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #cmakedefine H5_HAVE_SYS_STAT_H @H5_HAVE_SYS_STAT_H@
 
-/* Define to 1 if you have the <sys/sysinfo.h> header file. */
-#cmakedefine H5_HAVE_SYS_SYSINFO_H @H5_HAVE_SYS_SYSINFO_H@
-
 /* Define to 1 if you have the <sys/timeb.h> header file. */
 #cmakedefine H5_HAVE_SYS_TIMEB_H @H5_HAVE_SYS_TIMEB_H@
 
-/* Define to 1 if you have the <time.h> header file. */
-#cmakedefine H5_HAVE_TIME_H @H5_HAVE_TIME_H@
-
 /* Define to 1 if you have the <sys/time.h> header file. */
 #cmakedefine H5_HAVE_SYS_TIME_H @H5_HAVE_SYS_TIME_H@
 
@@ -407,9 +338,6 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #cmakedefine H5_HAVE_UNISTD_H @H5_HAVE_UNISTD_H@
 
-/* Define to 1 if you have the `asprintf' function. */
-#cmakedefine H5_HAVE_ASPRINTF @H5_HAVE_ASPRINTF@
-
 /* Define to 1 if you have the `vasprintf' function. */
 #cmakedefine H5_HAVE_VASPRINTF @H5_HAVE_VASPRINTF@
 
@@ -434,9 +362,11 @@
 /* Define to 1 if you have the `_scrsize' function. */
 #cmakedefine H5_HAVE__SCRSIZE @H5_HAVE__SCRSIZE@
 
-/* Define if your system can't handle converting floating-point values to long
-   long. */
-#cmakedefine H5_HW_FP_TO_LLONG_NOT_WORKS @H5_HW_FP_TO_LLONG_NOT_WORKS@
+/* Define if the compiler understands __inline */
+#cmakedefine H5_HAVE___INLINE @H5_HAVE___INLINE@
+
+/* Define if the compiler understands __inline__ */
+#cmakedefine H5_HAVE___INLINE__ @H5_HAVE___INLINE__@
 
 /* Define if HDF5's high-level library headers should be included in hdf5.h */
 #cmakedefine H5_INCLUDE_HL @H5_INCLUDE_HL@
@@ -643,9 +573,6 @@
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
 #cmakedefine H5_TIME_WITH_SYS_TIME @H5_TIME_WITH_SYS_TIME@
 
-/* Define to 1 if your <sys/time.h> declares `struct tm'. */
-#cmakedefine H5_TM_IN_SYS_TIME @H5_TM_IN_SYS_TIME@
-
 /* Define using v1.6 public API symbols by default */
 #cmakedefine H5_USE_16_API_DEFAULT @H5_USE_16_API_DEFAULT@
 
@@ -686,12 +613,6 @@
 /* Define to empty if `const' does not conform to ANSI C. */
 #cmakedefine H5_const
 
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-#cmakedefine H5_inline @H5_inline@
-#endif
-
 /* Define to `long int' if <sys/types.h> does not define. */
 #cmakedefine H5_off_t
 
@@ -704,8 +625,4 @@
 /* Define to `long' if <sys/types.h> does not define. */
 #cmakedefine H5_ssize_t
 
-#if defined(__cplusplus) && defined(inline)
-#undef inline
-#endif
-
 #endif
diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in
index febf20a..0e3b26d 100644
--- a/config/cmake/HDF518_Examples.cmake.in
+++ b/config/cmake/HDF518_Examples.cmake.in
@@ -1,48 +1,85 @@
 cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
 ###############################################################################################################
-# This script will build and run the examples from a compressed file
+# This script will build and run the examples from a folder
 # Execute from a command line:
-#     ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -VV -O test.log
+#     ctest -S HDF518_Examples.cmake,OPTION=VALUE -C Release -VV -O test.log
 ###############################################################################################################
 
-set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
 set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
-set(STATICLIBRARIES "@H5_ENABLE_STATIC_LIB@")
-set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
 set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
-set(CTEST_BUILD_CONFIGURATION "Release")
-#set(NO_MAC_FORTRAN "true")
-#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
-set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON")
-#set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}")
+
+# handle input parameters to script.
+#INSTALLDIR - HDF5-1.8 root folder
+#CTEST_BUILD_CONFIGURATION - Release, Debug, RelWithDebInfo
+#CTEST_SOURCE_NAME - name of source folder; HDF4Examples
+#STATIC_LIBRARIES - Default is YES
+#FORTRAN_LIBRARIES - Default is NO
+##NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac)
+if(DEFINED CTEST_SCRIPT_ARG)
+    # transform ctest script arguments of the form
+    # script.ctest,var1=value1,var2=value2
+    # to variables with the respective names set to the respective values
+    string(REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
+    foreach(current_var ${script_args})
+        if ("${current_var}" MATCHES "^([^=]+)=(.+)$")
+            set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
+        endif()
+    endforeach()
+endif()
+if(NOT DEFINED INSTALLDIR)
+    set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
+endif()
+if(NOT DEFINED CTEST_BUILD_CONFIGURATION)
+    set(CTEST_BUILD_CONFIGURATION "Release")
+endif()
+if(NOT DEFINED CTEST_SOURCE_NAME)
+    set(CTEST_SOURCE_NAME "HDF5Examples")
+endif()
+if(NOT DEFINED STATIC_LIBRARIES)
+    set(STATICLIBRARIES "YES")
+endif()
+if(NOT DEFINED FORTRAN_LIBRARIES)
+    set(FORTRANLIBRARIES "NO")
+endif()
+
+#TAR_SOURCE - name of tarfile
+#if(NOT DEFINED TAR_SOURCE)
+#  set(CTEST_USE_TAR_SOURCE "HDF5Examples-1.2.1-Source")
+#endif()
 
 ###############################################################################################################
 #     Adjust the following SET Commands as needed
 ###############################################################################################################
 if(WIN32)
-  if(STATICLIBRARIES)
+  if(${STATICLIBRARIES})
     set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
-  endif(STATICLIBRARIES)
+  endif()
   set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake")
   set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build)
   set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
   set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
 else(WIN32)
-  if(STATICLIBRARIES)
+  if(${STATICLIBRARIES})
     set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
-  endif(STATICLIBRARIES)
+  endif()
   set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake")
   set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib")
   set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
   set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
   set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
 endif(WIN32)
+if(${FORTRANLIBRARIES})
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
+else()
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=OFF")
+endif()
+set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF5_PACKAGE_NAME:STRING=@HDF5_PACKAGE@@HDF_PACKAGE_EXT@")
 
 ###############################################################################################################
 # For any comments please contact cdashhelp at hdfgroup.org
 #
 ###############################################################################################################
- 
+
 #-----------------------------------------------------------------------------
 # MAC machines need special option
 #-----------------------------------------------------------------------------
@@ -53,14 +90,14 @@ if(APPLE)
   set(ENV{CC} "${XCODE_CC}")
   set(ENV{CXX} "${XCODE_CXX}")
   if(NOT NO_MAC_FORTRAN)
-    # Shared fortran is not supported, build static 
+    # Shared fortran is not supported, build static
     set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
-  else(NOT NO_MAC_FORTRAN)
+  else()
     set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=OFF")
-  endif(NOT NO_MAC_FORTRAN)
+  endif()
   set(BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
-endif(APPLE)
- 
+endif()
+
 #-----------------------------------------------------------------------------
 set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
 ## --------------------------
@@ -69,28 +106,28 @@ if(CTEST_USE_TAR_SOURCE)
   ## --------------------------
   if(WIN32)
     message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip]")
-    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
-  else(WIN32)
+    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}\\${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
+  else()
     message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]")
-    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
-  endif(WIN32)
- 
+    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
+  endif()
+
   if(NOT rv EQUAL 0)
     message(STATUS "extracting... [error-(${rv}) clean up]")
     file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}")
     message(FATAL_ERROR "error: extract of ${CTEST_SOURCE_NAME} failed")
-  endif(NOT rv EQUAL 0)
+  endif()
 endif(CTEST_USE_TAR_SOURCE)
- 
+
 #-----------------------------------------------------------------------------
 ## Clear the build directory
 ## --------------------------
 set(CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)
 if (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
   ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
-else (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+else ()
   file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
-endif (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+endif ()
 
 # Use multiple CPU cores to build
 include(ProcessorCount)
@@ -98,17 +135,17 @@ ProcessorCount(N)
 if(NOT N EQUAL 0)
   if(NOT WIN32)
     set(CTEST_BUILD_FLAGS -j${N})
-  endif(NOT WIN32)
+  endif()
   set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N})
 endif()
 set (CTEST_CONFIGURE_COMMAND
     "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
 )
- 
+
 #-----------------------------------------------------------------------------
 ## -- set output to english
 set($ENV{LC_MESSAGES}  "en_EN")
- 
+
 #-----------------------------------------------------------------------------
 configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake)
 ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}")
@@ -120,7 +157,7 @@ ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
 ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
 if(res GREATER 0)
   message (FATAL_ERROR "tests FAILED")
-endif(res GREATER 0)
+endif()
 #-----------------------------------------------------------------------------
-############################################################################################################## 
+##############################################################################################################
 message(STATUS "DONE")
\ No newline at end of file
diff --git a/config/cmake/HDF5Macros.cmake b/config/cmake/HDF5Macros.cmake
index ee9ed84..d88e672 100644
--- a/config/cmake/HDF5Macros.cmake
+++ b/config/cmake/HDF5Macros.cmake
@@ -1,7 +1,13 @@
 #-------------------------------------------------------------------------------
 macro (H5_SET_LIB_OPTIONS libtarget libname libtype)
   set (LIB_OUT_NAME "${libname}")
+  # SOVERSION passed in ARGN when shared
   if (${libtype} MATCHES "SHARED")
+    if (ARGN)
+      set (PACKAGE_SOVERSION ${ARGN})
+    else (ARGN)
+      set (PACKAGE_SOVERSION ${HDF5_PACKAGE_SOVERSION})
+    endif (ARGN)
     if (WIN32)
       set (LIBHDF_VERSION ${HDF5_PACKAGE_VERSION_MAJOR})
     else (WIN32)
@@ -9,9 +15,9 @@ macro (H5_SET_LIB_OPTIONS libtarget libname libtype)
     endif (WIN32)
     set_target_properties (${libtarget} PROPERTIES VERSION ${LIBHDF_VERSION})
     if (WIN32)
-        set (${LIB_OUT_NAME} "${LIB_OUT_NAME}-${HDF5_PACKAGE_SOVERSION}")
+        set (${LIB_OUT_NAME} "${LIB_OUT_NAME}-${PACKAGE_SOVERSION}")
     else (WIN32)
-        set_target_properties (${libtarget} PROPERTIES SOVERSION ${HDF5_PACKAGE_SOVERSION})
+        set_target_properties (${libtarget} PROPERTIES SOVERSION ${PACKAGE_SOVERSION})
     endif (WIN32)
   endif (${libtype} MATCHES "SHARED")
   HDF_SET_LIB_OPTIONS (${libtarget} ${LIB_OUT_NAME} ${libtype})
@@ -26,6 +32,18 @@ macro (H5_SET_LIB_OPTIONS libtarget libname libtype)
           BUILD_WITH_INSTALL_RPATH ${HDF5_BUILD_WITH_INSTALL_NAME}
       )
     endif (HDF5_BUILD_WITH_INSTALL_NAME)
+    if (HDF5_BUILD_FRAMEWORKS)
+      if (${libtype} MATCHES "SHARED")
+        # adapt target to build frameworks instead of dylibs
+        set_target_properties(${libtarget} PROPERTIES
+            XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+            FRAMEWORK TRUE
+            FRAMEWORK_VERSION ${HDF5_PACKAGE_VERSION_MAJOR}
+            MACOSX_FRAMEWORK_IDENTIFIER org.hdfgroup.${libtarget}
+            MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${HDF5_PACKAGE_VERSION_MAJOR}
+            MACOSX_FRAMEWORK_BUNDLE_VERSION ${HDF5_PACKAGE_VERSION_MAJOR})
+      endif (${libtype} MATCHES "SHARED")
+    endif (HDF5_BUILD_FRAMEWORKS)
   endif (APPLE)
 
 endmacro (H5_SET_LIB_OPTIONS)
diff --git a/config/cmake/HDFCompilerFlags.cmake b/config/cmake/HDFCompilerFlags.cmake
new file mode 100644
index 0000000..c637c73
--- /dev/null
+++ b/config/cmake/HDFCompilerFlags.cmake
@@ -0,0 +1,274 @@
+#-----------------------------------------------------------------------------
+# Compiler specific flags : Shouldn't there be compiler tests for these
+#-----------------------------------------------------------------------------
+if (CMAKE_COMPILER_IS_GNUCC)
+  if (CMAKE_BUILD_TYPE MATCHES Debug)
+    set (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99")
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
+      set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Og -ftrapv -fno-common")
+    endif ()
+  else (CMAKE_BUILD_TYPE MATCHES Debug)
+    set (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99")
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
+      set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstdarg-opt")
+    endif ()
+  endif (CMAKE_BUILD_TYPE MATCHES Debug)
+endif (CMAKE_COMPILER_IS_GNUCC)
+if (CMAKE_COMPILER_IS_GNUCXX)
+  if (CMAKE_BUILD_TYPE MATCHES Debug)
+    set (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS} -std=c99")
+    if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
+      set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og -ftrapv -fno-common")
+    endif ()
+  else (CMAKE_BUILD_TYPE MATCHES Debug)
+    set (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS} -std=c99")
+    if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
+      set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstdarg-opt")
+    endif ()
+  endif (CMAKE_BUILD_TYPE MATCHES Debug)
+endif (CMAKE_COMPILER_IS_GNUCXX)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to disable compiler warnings
+#-----------------------------------------------------------------------------
+option (HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF)
+if (HDF5_DISABLE_COMPILER_WARNINGS)
+  # MSVC uses /w to suppress warnings.  It also complains if another
+  # warning level is given, so remove it.
+  if (MSVC)
+    set (HDF5_WARNINGS_BLOCKED 1)
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w")
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w")
+  endif (MSVC)
+  if (WIN32)
+    add_definitions (-D_CRT_SECURE_NO_WARNINGS)
+  endif (WIN32)
+  # Borland uses -w- to suppress warnings.
+  if (BORLAND)
+    set (HDF5_WARNINGS_BLOCKED 1)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-")
+  endif (BORLAND)
+
+  # Most compilers use -w to suppress warnings.
+  if (NOT HDF5_WARNINGS_BLOCKED)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
+  endif (NOT HDF5_WARNINGS_BLOCKED)
+endif (HDF5_DISABLE_COMPILER_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# CDash is configured to only allow 3000 warnings, so
+# break into groups (from the config/gnu-flags file)
+#-----------------------------------------------------------------------------
+if (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC)
+  if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline")
+  else (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -erroff=%none -DBSD_COMP")
+  endif (NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+    # Append warning flags
+    # Don't use the '-Wtraditional' flag, we're way past having K&R C code
+    # set (H5_CFLAGS "${H5_CFLAGS} -Wtraditional")
+    # Don't use the '-Wtraditional-conversion' flag, there's too many warnings
+    #  from GCC's assert macro
+    # set (H5_CFLAGS "${H5_CFLAGS} -Wtraditional-conversion")
+
+    # Append warning flags from gcc-3* case
+    # (don't use -Wpadded flag for normal builds, many of the warnings its
+    #   issuing can't be fixed and they are making it hard to detect other,
+    #   more important warnings)
+    #set (H5_CFLAGS "${H5_CFLAGS} -Wfloat-equal -Wmissing-format-attribute -Wpadded")
+    set (H5_CFLAGS1 "${H5_CFLAGS1} -Wfloat-equal -Wmissing-format-attribute")
+
+    # Append warning flags from gcc-3.2* case
+    set (H5_CFLAGS1 "${H5_CFLAGS1} -Wmissing-noreturn -Wpacked -Wdisabled-optimization")
+
+    # Enable more format checking flags, beyond the basic -Wformat included
+    # in -Wall
+    set (H5_CFLAGS1 "${H5_CFLAGS1} -Wformat=2")
+
+    # The "unreachable code" warning appears to be reliable now...
+    # (this warning was removed in gcc 4.5+)
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
+      set (H5_CFLAGS1 "${H5_CFLAGS1} -Wunreachable-code")
+    endif()
+
+    # Append warning flags from gcc-3.3* case
+    set (H5_CFLAGS1 "${H5_CFLAGS1} -Wendif-labels")
+
+    # Append warning flags from gcc-3.4* case
+    set (H5_CFLAGS2 "${H5_CFLAGS2} -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch")
+
+    # Append more extra warning flags that only gcc4.0+ know about
+    set (H5_CFLAGS2 "${H5_CFLAGS2} -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros")
+
+    # Append more extra warning flags that only gcc 4.1+ know about
+    set (H5_CFLAGS3 "${H5_CFLAGS3} -Wunsafe-loop-optimizations -Wc++-compat")
+
+    # Append more extra warning flags that only gcc 4.2+ know about
+    set (H5_CFLAGS3 "${H5_CFLAGS3} -Wstrict-overflow")
+
+    # Append more extra warning flags that only gcc 4.3+ know about
+    #
+    # Technically, variable-length arrays are part of the C99 standard, but
+    #   we should approach them a bit cautiously... -QAK
+    set (H5_CFLAGS3 "${H5_CFLAGS3} -Wlogical-op -Wlarger-than=2048 -Wvla")
+
+    # Append more extra warning flags that only gcc 4.4+ know about
+    set (H5_CFLAGS4 "${H5_CFLAGS4} -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat")
+
+    # Append more extra warning flags that only gcc 4.5+ know about
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5)
+      set (H5_CFLAGS4 "${H5_CFLAGS4} -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants")
+    endif()
+
+    # Append more extra warning flags that only gcc 4.6+ know about
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.6)
+      set (H5_CFLAGS5 "${H5_CFLAGS5} -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines")
+    endif()
+
+    # Append more extra warning flags that only gcc 4.7+ know about
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7)
+      set (H5_CFLAGS5 "${H5_CFLAGS5} -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn")
+    endif()
+
+    # Append more extra warning flags that only gcc 4.8+ know about
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.8)
+      set (H5_CFLAGS5 "${H5_CFLAGS5} -Wsuggest-attribute=format")
+    endif()
+
+    # Append more extra warning flags that only gcc 4.9+ know about
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
+      set (H5_CFLAGS5 "${H5_CFLAGS5} -Wdate-time -Wopenmp-simd")
+    endif()
+
+    # (There was no release of gcc 5.0)
+
+    # Append more extra warning flags that only gcc 5.1+ know about
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.1)
+      set (H5_CFLAGS6 "${H5_CFLAGS6} -Warray-bounds=2 -Wc99-c11-compat")
+    endif()
+
+endif (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to enable all warnings
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_ALL_WARNINGS "Enable all warnings" OFF)
+if (HDF5_ENABLE_ALL_WARNINGS)
+  if (MSVC)
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Wall")
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wall")
+  else (MSVC)
+    if (CMAKE_COMPILER_IS_GNUCC)
+      set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic ${H5_CFLAGS1} ${H5_CFLAGS2} ${H5_CFLAGS3} ${H5_CFLAGS4}")
+    endif (CMAKE_COMPILER_IS_GNUCC)
+  endif (MSVC)
+endif (HDF5_ENABLE_ALL_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to enable warnings by groups
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_GROUPZERO_WARNINGS "Enable group zero warnings" OFF)
+if (HDF5_ENABLE_GROUPZERO_WARNINGS)
+  if (MSVC)
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W1")
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W1")
+  else (MSVC)
+    if (CMAKE_COMPILER_IS_GNUCC)
+      set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic")
+    endif (CMAKE_COMPILER_IS_GNUCC)
+  endif (MSVC)
+endif (HDF5_ENABLE_GROUPZERO_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to enable warnings by groups
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_GROUPONE_WARNINGS "Enable group one warnings" OFF)
+if (HDF5_ENABLE_GROUPONE_WARNINGS)
+  if (MSVC)
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W2")
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W2")
+  else (MSVC)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS1}")
+  endif (MSVC)
+endif (HDF5_ENABLE_GROUPONE_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to enable warnings by groups
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_GROUPTWO_WARNINGS "Enable group two warnings" OFF)
+if (HDF5_ENABLE_GROUPTWO_WARNINGS)
+  if (MSVC)
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
+  else (MSVC)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS2}")
+  endif (MSVC)
+endif (HDF5_ENABLE_GROUPTWO_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to enable warnings by groups
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_GROUPTHREE_WARNINGS "Enable group three warnings" OFF)
+if (HDF5_ENABLE_GROUPTHREE_WARNINGS)
+  if (MSVC)
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
+    string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
+  else (MSVC)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS3}")
+  endif (MSVC)
+endif (HDF5_ENABLE_GROUPTHREE_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to enable warnings by groups
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_GROUPFOUR_WARNINGS "Enable group four warnings" OFF)
+if (HDF5_ENABLE_GROUPFOUR_WARNINGS)
+  if (NOT MSVC)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS4}")
+  endif (NOT MSVC)
+endif (HDF5_ENABLE_GROUPFOUR_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to enable warnings by groups
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_GROUPFIVE_WARNINGS "Enable group five warnings" OFF)
+if (HDF5_ENABLE_GROUPFIVE_WARNINGS)
+  if (NOT MSVC)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS5}")
+  endif (NOT MSVC)
+endif (HDF5_ENABLE_GROUPFIVE_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# Option to allow the user to enable warnings by groups
+#-----------------------------------------------------------------------------
+option (HDF5_ENABLE_GROUPSIX_WARNINGS "Enable group six warnings" OFF)
+if (HDF5_ENABLE_GROUPSIX_WARNINGS)
+  if (NOT MSVC)
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${H5_CFLAGS6}")
+  endif (NOT MSVC)
+endif (HDF5_ENABLE_GROUPSIX_WARNINGS)
+
+#-----------------------------------------------------------------------------
+# This is in here to help some of the GCC based IDES like Eclipse
+# and code blocks parse the compiler errors and warnings better.
+#-----------------------------------------------------------------------------
+if (CMAKE_COMPILER_IS_GNUCC)
+  set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0")
+endif (CMAKE_COMPILER_IS_GNUCC)
+if (CMAKE_COMPILER_IS_GNUCXX)
+  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0")
+endif (CMAKE_COMPILER_IS_GNUCXX)
diff --git a/config/cmake/README.txt.cmake.in b/config/cmake/README.txt.cmake.in
index 79482bd..b03f6d0 100644
--- a/config/cmake/README.txt.cmake.in
+++ b/config/cmake/README.txt.cmake.in
@@ -1,11 +1,11 @@
 @HDF5_PACKAGE_NAME@ version @HDF5_PACKAGE_VERSION_STRING@
 ------------------------------------------------------------------------------
 
-This directory contains the binary (release) distribution of 
+This directory contains the binary (release) distribution of
 @HDF5_PACKAGE_NAME@ @HDF5_PACKAGE_VERSION_MAJOR@ that was compiled on;
-    @BINARY_PLATFORM at . 
+    @BINARY_PLATFORM at .
 
-It was built with the following options: 
+It was built with the following options:
     -- @LIB_TYPE@ C/C++/Fortran libraries
     -- SZIP (encoder enabled) and ZLIB
     -- @LIB_TYPE@ HDF5 tools
@@ -24,7 +24,7 @@ Installation
 
 After Installation
 ===========================================================================
-The examples folder, HDF5Examples-0.1.1-Source, located in the 
+The examples folder, HDF5Examples, located in the
 HDF5 install folder, can be built and tested with CMake and the supplied
 HDF518_Examples.cmake file. The HDF518_Examples.cmake expects HDF5 to have
 been installed in the default location with above compilers. Also, the CMake 
@@ -32,19 +32,30 @@ utility should be installed.
 
 To test the installation with the examples;
     Create a directory to run the examples.
-    Copy HDF5Examples-0.1.1-Source folder to this directory.
+    Copy HDF5Examples folder to this directory.
     Copy HDF518_Examples.cmake to this directory.
-    Edit HDF518_Examples.cmake line 8 to set INSTALLDIR to where HDF5 is installed.
-       (The default should be correct unless you installed into a different folder.)
-    Execute from this directory: 
-        ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -V -O test.log
+    The default source folder is defined as "HDF5Examples". It can be changed
+        with the CTEST_SOURCE_NAME script option.
+    The default installation folder is defined as "@CMAKE_INSTALL_PREFIX@".
+        It can be changed with the INSTALLDIR script option.
+    The default ctest configuration is defined as "Release". It can be changed
+        with the CTEST_BUILD_CONFIGURATION script option. Note that this must
+        be the same as the value used with the -C command line option.
+    The default build configuration is defined to build and use static libraries.
+        Shared libraries can be used with the STATICLIBRARIES script option set to "NO".
+    Other options can be changed by editing the HDF518_Examples.cmake file.
+
+    If the defaults are okay, execute from this directory:
+        ctest -S HDF518_Examples.cmake -C Release -V -O test.log
+    If the defaults need change, execute from this directory:
+        ctest -S HDF518_Examples.cmake,CTEST_SOURCE_NAME=MyExamples,INSTALLDIR=MyLocation -C Release -V -O test.log
 
 When executed, the ctest script will save the results to the log file, test.log, as
-indicated by the ctest command. If you wish the to see more build and test information, 
+indicated by the ctest command. If you wish the to see more build and test information,
 add "-VV" to the ctest command. The output should show;
       100% tests passed, 0 tests failed out of 156.
 
-For more information see USING_CMake_Examples.txt in the install folder. 
+For more information see USING_CMake_Examples.txt in the install folder.
 ===========================================================================
 
 Documentation for this release can be found at the following URL:
diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake
index c782b8f..d571837 100644
--- a/config/cmake/cacheinit.cmake
+++ b/config/cmake/cacheinit.cmake
@@ -4,16 +4,12 @@
 # EXTERNAL cache entries
 ########################
 
-set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries" FORCE)
-
-set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
+set (CMAKE_INSTALL_FRAMEWORK_PREFIX "Library/Frameworks" CACHE STRING "Frameworks installation directory" FORCE)
 
 set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
 
 set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
 
-set (HDF5_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
-
 set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
 
 set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
@@ -48,6 +44,8 @@ set (HDF5_USE_16_API_DEFAULT OFF CACHE BOOL "Use the HDF5 1.6.x API by default"
 
 set (HDF5_ENABLE_THREADSAFE OFF CACHE BOOL "(WINDOWS)Enable Threadsafety" FORCE)
 
+set (HDF_TEST_EXPRESS "2" CACHE STRING "Control testing framework (0-3)" FORCE)
+
 set (HDF5_PACKAGE_EXTLIBS OFF CACHE BOOL "(WINDOWS)CPACK - include external libraries" FORCE)
 
 set (HDF5_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE)
diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in
index 667d3e6..52d6baf 100644
--- a/config/cmake/hdf5-config.cmake.in
+++ b/config/cmake/hdf5-config.cmake.in
@@ -6,6 +6,8 @@
 string(TOUPPER @HDF5_PACKAGE@ HDF5_PACKAGE_NAME)
 
 set (${HDF5_PACKAGE_NAME}_VALID_COMPONENTS
+    static
+    shared
     C
     CXX
     Fortran
@@ -47,10 +49,6 @@ set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${${HDF5_
 set (${HDF5_PACKAGE_NAME}_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@")
 set_and_check (${HDF5_PACKAGE_NAME}_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@")
 
-if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN)
-  set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@")
-endif ()
-  
 if (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB)
   set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@")
 endif ()
@@ -68,12 +66,6 @@ if (${HDF5_PACKAGE_NAME}_BUILD_TOOLS)
   set_and_check (${HDF5_PACKAGE_NAME}_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin")
 endif ()
 
-if (HDF5_BUILD_SHARED_LIBS)
-  set (H5_BUILT_AS_DYNAMIC_LIB 1)
-else ()
-  set (H5_BUILT_AS_STATIC_LIB 1)
-endif ()
-
 #-----------------------------------------------------------------------------
 # Version Strings
 #-----------------------------------------------------------------------------
@@ -95,14 +87,33 @@ if (NOT TARGET "@HDF5_PACKAGE@")
   include (@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -targets.cmake)
 endif ()
 
-# Handle default component :
+# Handle default component(static) :
 if (NOT ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
-    set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C HL)
-    set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_C true)
+    set (${HDF5_PACKAGE_NAME}_LIB_TYPE)
+    set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C HL static)
+    set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_static_C true)
 endif ()
 
 # Handle requested components:
 list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
+foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
+  if (${comp} STREQUAL "shared")
+    list (REMOVE_ITEM ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS ${comp})
+    set (${HDF5_PACKAGE_NAME}_LIB_TYPE ${${HDF5_PACKAGE_NAME}_LIB_TYPE} ${comp})
+
+    if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN)
+      set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@/shared")
+    endif ()
+  elseif (${comp} STREQUAL "static")
+    list (REMOVE_ITEM ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS ${comp})
+    set (${HDF5_PACKAGE_NAME}_LIB_TYPE ${${HDF5_PACKAGE_NAME}_LIB_TYPE} ${comp})
+
+    if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN)
+      set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@/static")
+    endif ()
+  endif ()
+endforeach ()
+foreach (libtype IN LISTS ${HDF5_PACKAGE_NAME}_LIB_TYPE)
   foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
     set (hdf5_comp2)
     if (${comp} STREQUAL "C")
@@ -122,26 +133,28 @@ list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
       set (hdf5_comp2 "hdf5_hl_f90cstub")
       set (hdf5_comp "hdf5_hl_fortran")
     endif ()
-    list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}" HAVE_COMP) 
-    if (${HAVE_COMP} LESS 0) 
-      set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0)
+    list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}-${libtype}" HAVE_COMP)
+    if (${HAVE_COMP} LESS 0)
+      set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 0)
     else ()
       if (hdf5_comp2)
-        list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp2}" HAVE_COMP2) 
+        list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp2}-${libtype}" HAVE_COMP2)
         if (${HAVE_COMP2} LESS 0)
-          set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0)
+          set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 0)
         else ()
-          set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1)
-          string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
-          set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${HDF5_PACKAGE_NAME}_LIBRARIES} ${hdf5_comp2} ${hdf5_comp})
+          set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 1)
+          string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_${libtype}_LIBRARY COMP_LIBRARY)
+          set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp2}-${libtype} ${hdf5_comp}-${libtype})
         endif ()
       else ()
-        set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1)
-        string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
-        set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${HDF5_PACKAGE_NAME}_LIBRARIES} ${hdf5_comp})
+        set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 1)
+        string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_${libtype}_LIBRARY COMP_LIBRARY)
+        set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp}-${libtype})
       endif ()
     endif ()
   endforeach ()
+endforeach ()
 
-  check_required_components(${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
-  
\ No newline at end of file
+foreach (libtype IN LISTS ${HDF5_PACKAGE_NAME}_LIB_TYPE)
+  check_required_components(${HDF5_PACKAGE_NAME}_${libtype})
+endforeach ()
diff --git a/config/cmake/libhdf5.settings.cmake.in b/config/cmake/libhdf5.settings.cmake.in
index a036ff8..8ef67a5 100644
--- a/config/cmake/libhdf5.settings.cmake.in
+++ b/config/cmake/libhdf5.settings.cmake.in
@@ -23,8 +23,8 @@ Compiling Options:
                        CPPFLAGS: @CPPFLAGS@
                     H5_CPPFLAGS: @H5_CPPFLAGS@
                     AM_CPPFLAGS: @AM_CPPFLAGS@
-               Shared Libraries: @H5_ENABLE_SHARED_LIB@
-               Static Libraries: @H5_ENABLE_STATIC_LIB@
+               Shared C Library: @H5_ENABLE_SHARED_LIB@
+               Static C Library: @H5_ENABLE_STATIC_LIB@
   Statically Linked Executables: @BUILD_STATIC_EXECS@
                         LDFLAGS: @CMAKE_SHARED_LINKER_FLAGS@
                      AM_LDFLAGS: @AM_LDFLAGS@
@@ -42,11 +42,16 @@ Languages:
 @BUILD_FORTRAN_CONDITIONAL_TRUE@                  Fortran Flags: @CMAKE_Fortran_FLAGS@
 @BUILD_FORTRAN_CONDITIONAL_TRUE@               H5 Fortran Flags: @H5_FCFLAGS@
 @BUILD_FORTRAN_CONDITIONAL_TRUE@               AM Fortran Flags: @AM_FCFLAGS@
+ at BUILD_FORTRAN_CONDITIONAL_TRUE@         Shared Fortran Library: @H5_ENABLE_SHARED_LIB@
+ at BUILD_FORTRAN_CONDITIONAL_TRUE@         Static Fortran Library: YES
+
                             C++: @HDF5_BUILD_CPP_LIB@
 @BUILD_CXX_CONDITIONAL_TRUE@                   C++ Compiler: @CMAKE_CXX_COMPILER@
 @BUILD_CXX_CONDITIONAL_TRUE@                      C++ Flags: @CMAKE_CXX_FLAGS@
 @BUILD_CXX_CONDITIONAL_TRUE@                   H5 C++ Flags: @H5_CXXFLAGS@
 @BUILD_CXX_CONDITIONAL_TRUE@                   AM C++ Flags: @AM_CXXFLAGS@
+ at BUILD_CXX_CONDITIONAL_TRUE@             Shared C++ Library: @H5_ENABLE_SHARED_LIB@
+ at BUILD_CXX_CONDITIONAL_TRUE@             Static C++ Library: YES
 
 Features:
 ---------
@@ -56,7 +61,6 @@ Features:
             Default API Mapping: @DEFAULT_API_VERSION@
  With Deprecated Public Symbols: @HDF5_ENABLE_DEPRECATED_SYMBOLS@
          I/O filters (external): @EXTERNAL_FILTERS@
-         I/O filters (internal): @FILTERS@
                             MPE: @H5_HAVE_LIBLMPE@
                      Direct VFD: @H5_HAVE_DIRECT@
                         dmalloc: @H5_HAVE_LIBDMALLOC@
diff --git a/config/cmake/mccacheinit.cmake b/config/cmake/mccacheinit.cmake
index 0aba85a..5646c99 100644
--- a/config/cmake/mccacheinit.cmake
+++ b/config/cmake/mccacheinit.cmake
@@ -16,7 +16,7 @@ set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE)
 
 set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
 
-set (HDF5_ENABLE_F2003 OFF CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
+set (HDF5_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
 
 set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE)
 
diff --git a/config/cmake/scripts/CTestScript.cmake b/config/cmake/scripts/CTestScript.cmake
new file mode 100755
index 0000000..abe252e
--- /dev/null
+++ b/config/cmake/scripts/CTestScript.cmake
@@ -0,0 +1,290 @@
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+########################################################
+# This dashboard is maintained by The HDF Group
+# For any comments please contact cdashhelp at hdfgroup.org
+#
+########################################################
+# -----------------------------------------------------------
+# -- Get environment
+# -----------------------------------------------------------
+if(NOT SITE_OS_NAME)
+  ## machine name not provided - attempt to discover with uname
+  ## -- set hostname
+  ## --------------------------
+  find_program(HOSTNAME_CMD NAMES hostname)
+  exec_program(${HOSTNAME_CMD} ARGS OUTPUT_VARIABLE HOSTNAME)
+  set(CTEST_SITE  "${HOSTNAME}${CTEST_SITE_EXT}")
+  find_program(UNAME NAMES uname)
+  macro(getuname name flag)
+    exec_program("${UNAME}" ARGS "${flag}" OUTPUT_VARIABLE "${name}")
+  endmacro(getuname)
+
+  getuname(osname -s)
+  getuname(osrel  -r)
+  getuname(cpu    -m)
+  message(STATUS "Dashboard script uname output: ${osname}-${osrel}-${cpu}\n")
+
+  set(CTEST_BUILD_NAME  "${osname}-${osrel}-${cpu}")
+  if(USE_AUTOTOOLS)
+    set(CTEST_BUILD_NAME  "AT-${CTEST_BUILD_NAME}")
+  endif()
+  if(SITE_BUILDNAME_SUFFIX)
+    set(CTEST_BUILD_NAME  "${CTEST_BUILD_NAME}-${SITE_BUILDNAME_SUFFIX}")
+  endif()
+  set(BUILD_OPTIONS "${ADD_BUILD_OPTIONS}")
+else(NOT SITE_OS_NAME)
+  ## machine name provided
+  ## --------------------------
+  if(CMAKE_HOST_UNIX)
+    set(CTEST_BUILD_NAME "${SITE_OS_NAME}-${SITE_OS_VERSION}-${SITE_OS_BITS}-${SITE_COMPILER_NAME}-${SITE_COMPILER_VERSION}")
+  else()
+    set(CTEST_BUILD_NAME "${SITE_OS_NAME}-${SITE_OS_VERSION}-${SITE_COMPILER_NAME}")
+  endif()
+  if(SITE_BUILDNAME_SUFFIX)
+    set(CTEST_BUILD_NAME ${CTEST_BUILD_NAME}-${SITE_BUILDNAME_SUFFIX})
+  endif()
+  set(BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSITE:STRING=${CTEST_SITE} -DBUILDNAME:STRING=${CTEST_BUILD_NAME}")
+endif(NOT SITE_OS_NAME)
+
+#-----------------------------------------------------------------------------
+# MAC machines need special option
+#-----------------------------------------------------------------------------
+if(APPLE)
+  # Compiler choice
+  execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE)
+  set(ENV{CC} "${XCODE_CC}")
+  set(ENV{CXX} "${XCODE_CXX}")
+
+  if(NOT NO_MAC_FORTRAN)
+    # Shared fortran is not supported, build static 
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
+  else(NOT NO_MAC_FORTRAN)
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
+  endif(NOT NO_MAC_FORTRAN)
+
+  set(BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
+endif(APPLE)
+
+#-----------------------------------------------------------------------------
+set(NEED_REPOSITORY_CHECKOUT 0)
+set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
+if(CTEST_USE_TAR_SOURCE)
+  ## Uncompress source if tar file provided
+  ## --------------------------
+  if(WIN32)
+    message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} x ${CTEST_DASHBOARD_ROOT}\\${CTEST_USE_TAR_SOURCE}.zip]")
+    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}\\${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
+  else()
+    message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE}.tar]")
+    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
+  endif()
+
+  if(NOT rv EQUAL 0)
+    message(STATUS "extracting... [error-(${rv}) clean up]")
+    file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}")
+    message(FATAL_ERROR "error: extract of ${CTEST_USE_TAR_SOURCE} failed")
+  endif()
+
+  file(RENAME ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE} ${CTEST_SOURCE_DIRECTORY})
+  set(LOCAL_SKIP_UPDATE "TRUE")
+else(CTEST_USE_TAR_SOURCE)
+  if(LOCAL_UPDATE)
+    if(CTEST_USE_GIT_SOURCE)
+      find_program(CTEST_GIT_COMMAND NAMES git git.cmd)
+      set(CTEST_GIT_UPDATE_OPTIONS)
+
+      if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}")
+        set(NEED_REPOSITORY_CHECKOUT 1)
+      endif()
+
+       if(${NEED_REPOSITORY_CHECKOUT})
+        if(REPOSITORY_BRANCH)
+          set(GITUpdateOptions "clone \"${REPOSITORY_URL}\" --branch  \"${REPOSITORY_BRANCH}\" \"${CTEST_SOURCE_DIRECTORY}\" --recurse-submodules")
+        else()
+          set(GITUpdateOptions "clone \"${REPOSITORY_URL}\" \"${CTEST_SOURCE_DIRECTORY}\" --recurse-submodules")
+        endif()
+        set(CTEST_CHECKOUT_COMMAND "${CTEST_GIT_COMMAND} ${GITUpdateOptions}")
+      else()
+        set(GITUpdateOptions "pull")
+      endif()
+      set(CTEST_UPDATE_COMMAND "${CTEST_GIT_COMMAND}")
+    else(CTEST_USE_GIT_SOURCE)
+      ## --------------------------
+      ## use subversion to get source
+      #-----------------------------------------------------------------------------
+      ## cygwin does not handle the find_package() call
+      ## --------------------------
+      set(CTEST_UPDATE_COMMAND "SVNCommand")
+      if(NOT SITE_CYGWIN})
+        find_package (Subversion)
+        set(CTEST_SVN_COMMAND "${Subversion_SVN_EXECUTABLE}")
+        set(CTEST_UPDATE_COMMAND "${Subversion_SVN_EXECUTABLE}")
+      else()
+        set(CTEST_SVN_COMMAND "/usr/bin/svn")
+        set(CTEST_UPDATE_COMMAND "/usr/bin/svn")
+      endif()
+
+      if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}")
+        set(NEED_REPOSITORY_CHECKOUT 1)
+      endif()
+
+      if(NOT CTEST_REPO_VERSION)
+        set(CTEST_REPO_VERSION "HEAD")
+      endif()
+      if(${NEED_REPOSITORY_CHECKOUT})
+        set(CTEST_CHECKOUT_COMMAND
+            "${CTEST_SVN_COMMAND} co ${REPOSITORY_URL} \"${CTEST_SOURCE_DIRECTORY}\" -r ${CTEST_REPO_VERSION}")
+      else(${NEED_REPOSITORY_CHECKOUT})
+        if(CTEST_REPO_VERSION)
+          set(CTEST_SVN_UPDATE_OPTIONS "-r ${CTEST_REPO_VERSION}")
+        endif()
+      endif(${NEED_REPOSITORY_CHECKOUT})
+    endif(CTEST_USE_GIT_SOURCE)
+  endif(LOCAL_UPDATE)
+endif(CTEST_USE_TAR_SOURCE)
+
+#-----------------------------------------------------------------------------
+## Clear the build directory
+## --------------------------
+set(CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)
+if(NOT EXISTS "${CTEST_BINARY_DIRECTORY}")
+  file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+else()
+  ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
+endif()
+
+# Use multiple CPU cores to build
+include(ProcessorCount)
+ProcessorCount(N)
+if(NOT N EQUAL 0)
+  if(NOT WIN32)
+    set(CTEST_BUILD_FLAGS -j${N})
+  endif()
+  set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N})
+endif()
+
+#-----------------------------------------------------------------------------
+# Send the main script as a note.
+list(APPEND CTEST_NOTES_FILES
+    "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}"
+    "${CMAKE_CURRENT_LIST_FILE}"
+    "${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake"
+)
+
+#-----------------------------------------------------------------------------
+# Check for required variables.
+# --------------------------
+foreach(req
+    CTEST_CMAKE_GENERATOR
+    CTEST_SITE
+    CTEST_BUILD_NAME
+  )
+  if(NOT DEFINED ${req})
+    message(FATAL_ERROR "The containing script must set ${req}")
+  endif()
+endforeach(req)
+
+#-----------------------------------------------------------------------------
+# Initialize the CTEST commands
+#------------------------------
+if(LOCAL_MEMCHECK_TEST)
+  find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
+  set (CTEST_CONFIGURE_COMMAND
+      "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/mccacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
+  )
+else()
+  if(LOCAL_COVERAGE_TEST)
+    find_program(CTEST_COVERAGE_COMMAND NAMES gcov)
+  endif()
+  set (CTEST_CONFIGURE_COMMAND
+      "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
+  )
+endif()
+
+#-----------------------------------------------------------------------------
+## -- set output to english
+set($ENV{LC_MESSAGES}  "en_EN")
+
+# Print summary information.
+foreach(v
+    CTEST_SITE
+    CTEST_BUILD_NAME
+    CTEST_SOURCE_DIRECTORY
+    CTEST_BINARY_DIRECTORY
+    CTEST_CMAKE_GENERATOR
+    CTEST_BUILD_CONFIGURATION
+    CTEST_GIT_COMMAND
+    CTEST_CHECKOUT_COMMAND
+    CTEST_CONFIGURE_COMMAND
+    CTEST_SCRIPT_DIRECTORY
+    CTEST_USE_LAUNCHERS
+  )
+  set(vars "${vars}  ${v}=[${${v}}]\n")
+endforeach(v)
+message(STATUS "Dashboard script configuration:\n${vars}\n")
+
+#-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
+  ## NORMAL process
+  ## -- LOCAL_UPDATE updates the source folder from svn
+  ## -- LOCAL_SUBMIT reports to CDash server
+  ## -- LOCAL_SKIP_TEST skips the test process (only builds)
+  ## -- LOCAL_MEMCHECK_TEST executes the Valgrind testing
+  ## -- LOCAL_COVERAGE_TEST executes code coverage process
+  ## --------------------------
+  ctest_start (${MODEL} TRACK ${MODEL})
+  if(LOCAL_UPDATE)
+    ctest_update (SOURCE "${CTEST_SOURCE_DIRECTORY}")
+  endif()
+  configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake)
+  ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}")
+  ctest_configure (BUILD "${CTEST_BINARY_DIRECTORY}")
+  if(LOCAL_SUBMIT)
+    ctest_submit (PARTS Update Configure Notes)
+  endif()
+
+  ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
+  if(LOCAL_SUBMIT)
+    ctest_submit (PARTS Build)
+  endif()
+
+  if(NOT LOCAL_SKIP_TEST)
+    if(NOT LOCAL_MEMCHECK_TEST)
+      ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
+      if(LOCAL_SUBMIT)
+        ctest_submit (PARTS Test)
+      endif()
+      if(res GREATER 0)
+        message(FATAL_ERROR "Failed tests: ${res}\n")
+      endif()
+    else()
+      ctest_memcheck (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args})
+      if(LOCAL_SUBMIT)
+        ctest_submit (PARTS MemCheck)
+      endif(LOCAL_SUBMIT)
+    endif()
+    if(LOCAL_COVERAGE_TEST)
+      ctest_coverage (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
+      if(LOCAL_SUBMIT)
+        ctest_submit (PARTS Coverage)
+      endif()
+    endif()
+  endif(NOT LOCAL_SKIP_TEST)
+
+  if(NOT LOCAL_MEMCHECK_TEST AND NOT LOCAL_NO_PACKAGE)
+    ##-----------------------------------------------
+    ## Package the product
+    ##-----------------------------------------------
+    execute_process(COMMAND cpack -C ${CTEST_BUILD_CONFIGURATION} -V
+      WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY}
+      RESULT_VARIABLE cpackResult
+      OUTPUT_VARIABLE cpackLog
+      ERROR_VARIABLE cpackLog.err
+    )
+    file(WRITE ${CTEST_BINARY_DIRECTORY}/cpack.log "${cpackLog.err}" "${cpackLog}")
+    if(cpackResult GREATER 0)
+      message (FATAL_ERROR "Failed packaging: ${cpackResult}\n")
+    endif()
+  endif(NOT LOCAL_MEMCHECK_TEST AND NOT LOCAL_NO_PACKAGE)
+#-----------------------------------------------------------------------------
diff --git a/config/cmake/scripts/HDF518config.cmake b/config/cmake/scripts/HDF518config.cmake
new file mode 100755
index 0000000..5cc73cf
--- /dev/null
+++ b/config/cmake/scripts/HDF518config.cmake
@@ -0,0 +1,261 @@
+#############################################################################################
+### ${CTEST_SCRIPT_ARG} is of the form OPTION=VALUE                                       ###
+### BUILD_GENERATOR required [Unix, VS2015, VS201564, VS2013, VS201364, VS2012, VS201264] ###
+### ctest -S HDF518config.cmake,BUILD_GENERATOR=VS201264 -C Release -V -O hdf518.log      ###
+#############################################################################################
+
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+############################################################################
+# Usage:
+#     ctest -S HDF518config.cmake,OPTION=VALUE -C Release -VV -O test.log
+# where valid options for OPTION are:
+#     BUILD_GENERATOR - The cmake build generator:
+#            Unix    * Unix Makefiles
+#            VS2015    * Visual Studio 14 2015
+#            VS201564 * Visual Studio 14 2015 Win64
+#            VS2013    * Visual Studio 12 2013
+#            VS201364 * Visual Studio 12 2013 Win64
+#            VS2012    * Visual Studio 11 2012
+#            VS201264 * Visual Studio 11 2012 Win64
+#
+#     INSTALLDIR  -  root folder where hdf5 is installed
+#     CTEST_BUILD_CONFIGURATION  - Release, Debug, etc
+#     CTEST_SOURCE_NAME  -  source folder
+#     STATIC_LIBRARIES  -  Build/use static libraries
+#     FORTRAN_LIBRARIES -  Build/use fortran libraries
+#     NO_MAC_FORTRAN  - Yes to be SHARED on a Mac
+##############################################################################
+
+set(CTEST_SOURCE_VERSION 1.8.16)
+set(CTEST_SOURCE_VERSEXT "")
+
+##############################################################################
+# handle input parameters to script.
+#BUILD_GENERATOR - which CMake generator to use, required
+#INSTALLDIR - HDF5-1.8 root folder
+#CTEST_BUILD_CONFIGURATION - Release, Debug, RelWithDebInfo
+#CTEST_SOURCE_NAME - name of source folder; HDF5-1.8.16
+#STATIC_LIBRARIES - Default is YES
+#FORTRAN_LIBRARIES - Default is NO
+#NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac
+if(DEFINED CTEST_SCRIPT_ARG)
+    # transform ctest script arguments of the form
+    # script.ctest,var1=value1,var2=value2
+    # to variables with the respective names set to the respective values
+    string(REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
+    foreach(current_var ${script_args})
+        if ("${current_var}" MATCHES "^([^=]+)=(.+)$")
+            set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
+        endif()
+    endforeach()
+endif()
+
+# build generator must be defined
+if(NOT DEFINED BUILD_GENERATOR)
+  message(FATAL_ERROR "BUILD_GENERATOR must be defined - Unix, VS2013, VS201364, VS2012, or VS201264")
+else()
+  if(${BUILD_GENERATOR} STREQUAL "Unix")
+    set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2015")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 14 2015")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201564")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 14 2015 Win64")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2013")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201364")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2012")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201264")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64")
+  else()
+    message(FATAL_ERROR "Invalid BUILD_GENERATOR must be - Unix, VS2013, VS201364, VS2012, or VS201264")
+  endif()
+endif()
+
+if(NOT DEFINED INSTALLDIR)
+  if(WIN32)
+    set(INSTALLDIR "C:\\Program\ Files\\myhdf5")
+  else()
+    set(INSTALLDIR "/usr/local/myhdf5")
+  endif()
+endif()
+if(NOT DEFINED CTEST_BUILD_CONFIGURATION)
+    set(CTEST_BUILD_CONFIGURATION "Release")
+endif()
+if(NOT DEFINED CTEST_SOURCE_NAME)
+    set(CTEST_SOURCE_NAME "hdf5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}")
+endif()
+if(NOT DEFINED STATIC_LIBRARIES)
+    set(STATICLIBRARIES "YES")
+endif()
+if(NOT DEFINED FORTRAN_LIBRARIES)
+    set(FORTRANLIBRARIES "NO")
+endif()
+
+set(CTEST_BINARY_NAME "build")
+set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}")
+if(WIN32)
+  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
+  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
+else()
+  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
+  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
+endif()
+
+###################################################################
+#########       Following describes compiler           ############
+if(WIN32)
+  set(SITE_OS_NAME "Windows")
+  set(SITE_OS_VERSION "WIN7")
+  if(${BUILD_GENERATOR} STREQUAL "VS201564")
+    set(SITE_OS_BITS "64")
+    set(SITE_COMPILER_NAME "vs2015")
+    set(SITE_COMPILER_VERSION "14")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2015")
+    set(SITE_OS_BITS "32")
+    set(SITE_COMPILER_NAME "vs2015")
+    set(SITE_COMPILER_VERSION "14")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201364")
+    set(SITE_OS_BITS "64")
+    set(SITE_COMPILER_NAME "vs2013")
+    set(SITE_COMPILER_VERSION "12")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2013")
+    set(SITE_OS_BITS "32")
+    set(SITE_COMPILER_NAME "vs2013")
+    set(SITE_COMPILER_VERSION "12")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201264")
+    set(SITE_OS_BITS "64")
+    set(SITE_COMPILER_NAME "vs2012")
+    set(SITE_COMPILER_VERSION "11")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2012")
+    set(SITE_OS_BITS "32")
+    set(SITE_COMPILER_NAME "vs2012")
+    set(SITE_COMPILER_VERSION "11")
+  endif()
+##  Set the following to unique id your computer  ##
+  set(CTEST_SITE "WIN7${BUILD_GENERATOR}.XXXX")
+else()
+##  Set the following to unique id your computer  ##
+  if(APPLE)
+    set(CTEST_SITE "MAC.XXXX")
+  else()
+    set(CTEST_SITE "LINUX.XXXX")
+  endif()
+endif()
+###################################################################
+
+###################################################################
+#########       Following is for submission to CDash   ############
+###################################################################
+set(MODEL "Experimental")
+###################################################################
+
+###################################################################
+#####       Following controls CDash submission               #####
+#set(LOCAL_SUBMIT "TRUE")
+#####       Following controls test process                   #####
+#set(LOCAL_SKIP_TEST "TRUE")
+#set(LOCAL_MEMCHECK_TEST "TRUE")
+#set(LOCAL_COVERAGE_TEST "TRUE")
+#####       Following controls cpack command                  #####
+#set(LOCAL_NO_PACKAGE "TRUE")
+#####       Following controls source update                  #####
+#set(LOCAL_UPDATE "TRUE")
+set(REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8_16")
+#uncomment to use a compressed source file: *.tar on linux or mac *.zip on windows
+#set(CTEST_USE_TAR_SOURCE "${CTEST_SOURCE_VERSION}")
+###################################################################
+
+###################################################################
+####  Change default configuration of options in config/cmake/cacheinit.cmake file ###
+####  format: set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DXXX:YY=ZZZZ")
+
+###################################################################
+if(${STATICLIBRARIES})
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
+  #########       Following describes computer           ############
+  ## following is optional to describe build                       ##
+  set(SITE_BUILDNAME_SUFFIX "STATIC")
+endif()
+###################################################################
+
+### uncomment/comment and change the following lines for other configuration options
+
+####      ext libraries       ####
+### ext libs from tgz
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=TGZ -DTGZPATH:PATH=${CTEST_SCRIPT_DIRECTORY}")
+### ext libs from svn
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=SVN")
+### ext libs on system
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib -DZLIB_INCLUDE_DIR:PATH=some_location/include")
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib -DSZIP_INCLUDE_DIR:PATH=some_location/include")
+### disable ext libs building
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF")
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
+####      fortran       ####
+if(${FORTRANLIBRARIES})
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=ON")
+  ### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON")
+else()
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
+  ### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=OFF")
+endif()
+
+### disable test program builds
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF")
+
+### disable packaging
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON")
+### Create install package with external libraries (szip, zlib, jpeg)
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")
+
+### change install prefix
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=${INSTALLDIR}")
+
+###################################################################
+
+if(WIN32)
+  include(${CTEST_SCRIPT_DIRECTORY}\\CTestScript.cmake)
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.exe")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.exe" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+  endif()
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.msi")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.msi" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+  endif()
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.zip")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.zip" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+  endif()
+else()
+  include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake)
+  if(APPLE)
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.dmg")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+    endif()
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.tar.gz")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+    endif()
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.sh")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+    endif()
+  else()
+    if(CYGWIN)
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-CYGWIN.sh")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-CYGWIN.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+      endif()
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-CYGWIN.tar.gz")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-CYGWIN.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+      endif()
+    else()
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Linux.sh")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+      endif()
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Linux.tar.gz")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Linux.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+      endif()
+    endif()
+  endif()
+endif()
diff --git a/config/cmake/userblockTest.cmake b/config/cmake/userblockTest.cmake
index 2e0740b..0775cbe 100644
--- a/config/cmake/userblockTest.cmake
+++ b/config/cmake/userblockTest.cmake
@@ -1,4 +1,4 @@
-# runTest.cmake executes a command and captures the output in a file. File is then compared
+# userblockTest.cmake executes a command and captures the output in a file. File is then compared
 # against a reference file. Exit status of command can also be compared.
 
 # arguments checking
@@ -48,7 +48,7 @@ if (TEST_CHECKUB STREQUAL "YES")
         WORKING_DIRECTORY ${TEST_FOLDER}
         RESULT_VARIABLE TEST_RESULT
         OUTPUT_FILE ${TEST_HFILE}.len.txt
-        OUTPUT_VARIABLE TEST_ERROR
+        OUTPUT_VARIABLE TEST_OUT
         ERROR_VARIABLE TEST_ERROR
     )
     if (NOT ${TEST_RESULT} STREQUAL "0")
@@ -56,9 +56,9 @@ if (TEST_CHECKUB STREQUAL "YES")
     endif (NOT ${TEST_RESULT} STREQUAL "0")
     file (READ ${TEST_HFILE}.len.txt TEST_O_STRING_LEN)
   endif (TEST_OFILE)
-   
+
   MATH( EXPR TEST_STRING_SIZE "${TEST_U_STRING_LEN} + ${TEST_O_STRING_LEN}" )
- 
+
   if (NOT TEST_O_STRING_LEN STREQUAL "0")
     #$JAM_BIN/getub -c $s2 $origfile > $cmpfile
     EXECUTE_PROCESS (
@@ -66,13 +66,13 @@ if (TEST_CHECKUB STREQUAL "YES")
         WORKING_DIRECTORY ${TEST_FOLDER}
         RESULT_VARIABLE TEST_RESULT
         OUTPUT_FILE ${TEST_HFILE}-ub.cmp
-        OUTPUT_VARIABLE TEST_ERROR
+        OUTPUT_VARIABLE TEST_OUT
         ERROR_VARIABLE TEST_ERROR
         OUTPUT_STRIP_TRAILING_WHITESPACE
     )
     #cat $ufile >> $cmpfile
     file (STRINGS ${TEST_UFILE} TEST_STREAM NEWLINE_CONSUME)
-    file (APPEND ${TEST_HFILE}-ub.cmp "${TEST_STREAM}") 
+    file (APPEND ${TEST_HFILE}-ub.cmp "${TEST_STREAM}")
   else (NOT TEST_O_STRING_LEN STREQUAL "0")
     file (STRINGS ${TEST_UFILE} TEST_STREAM NEWLINE_CONSUME)
     file (WRITE ${TEST_HFILE}-ub.cmp ${TEST_STREAM})
@@ -84,7 +84,7 @@ if (TEST_CHECKUB STREQUAL "YES")
       WORKING_DIRECTORY ${TEST_FOLDER}
       RESULT_VARIABLE TEST_RESULT
       OUTPUT_FILE ${TEST_HFILE}.cmp
-      OUTPUT_VARIABLE TEST_ERROR
+      OUTPUT_VARIABLE TEST_OUT
       ERROR_VARIABLE TEST_ERROR
       OUTPUT_STRIP_TRAILING_WHITESPACE
   )
@@ -107,7 +107,7 @@ else (TEST_CHECKUB STREQUAL "YES")
         COMMAND ${TEST_PROGRAM} ${TEST_HFILE}
         WORKING_DIRECTORY ${TEST_FOLDER}
         RESULT_VARIABLE TEST_H_STRING_LEN
-        OUTPUT_VARIABLE TEST_ERROR
+        OUTPUT_VARIABLE TEST_OUT
         ERROR_VARIABLE TEST_ERROR
     )
   if (NOT TEST_H_STRING_LEN STREQUAL "0")
diff --git a/config/cmake/vfdTest.cmake b/config/cmake/vfdTest.cmake
index d3cb87e..4685d88 100644
--- a/config/cmake/vfdTest.cmake
+++ b/config/cmake/vfdTest.cmake
@@ -29,7 +29,7 @@ EXECUTE_PROCESS (
     WORKING_DIRECTORY ${TEST_FOLDER}
     OUTPUT_FILE ${TEST_OUTPUT}_${TEST_VFD}.out
     ERROR_FILE ${TEST_OUTPUT}_${TEST_VFD}.err
-    OUTPUT_VARIABLE TEST_ERROR
+    OUTPUT_VARIABLE TEST_OUT
     ERROR_VARIABLE TEST_ERROR
 )
 
@@ -37,7 +37,7 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}")
 
 if (ERROR_APPEND)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT}_${TEST_VFD}.err TEST_STREAM)
-  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT}_${TEST_VFD}.out "${TEST_STREAM}") 
+  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT}_${TEST_VFD}.out "${TEST_STREAM}")
 endif (ERROR_APPEND)
 
 # if the return value is !=${TEST_EXPECT} bail out
diff --git a/config/cmake_ext_mod/CPack.Info.plist.in b/config/cmake_ext_mod/CPack.Info.plist.in
deleted file mode 100644
index 6cf2a94..0000000
--- a/config/cmake_ext_mod/CPack.Info.plist.in
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>@CPACK_PACKAGE_FILE_NAME@</string>
-	<key>CFBundleIconFile</key>
-	<string>@CPACK_BUNDLE_ICON@</string>
-	<key>CFBundleIdentifier</key>
-	<string>org. at CPACK_PACKAGE_VENDOR@. at CPACK_PACKAGE_NAME@@CPACK_MODULE_VERSION_SUFFIX@</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>FMWK</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>@CPACK_PACKAGE_VERSIO@</string>
-	<key>CFBundleShortVersionString</key>
-	<string>@CPACK_SHORT_VERSION_STRING@</string>
-	<key>CSResourcesFileMapped</key>
-	<true/>
-	<key>CFBundleName</key>
-	<string>@CPACK_BUNDLE_NAME@</string>
-	<key>CFBundleGetInfoString</key>
-	<string>@CPACK_APPLE_GUI_INFO_STRING@</string>
-	<key>NSHumanReadableCopyright</key>
-	<string>@CPACK_APPLE_GUI_COPYRIGHT@</string>
-</dict>
-</plist>
diff --git a/config/cmake_ext_mod/ConfigureChecks.cmake b/config/cmake_ext_mod/ConfigureChecks.cmake
index 588b5d5..fd502e5 100644
--- a/config/cmake_ext_mod/ConfigureChecks.cmake
+++ b/config/cmake_ext_mod/ConfigureChecks.cmake
@@ -31,13 +31,13 @@ if (APPLE)
 endif (APPLE)
 
 # Check for Darwin (not just Apple - we also want to catch OpenDarwin)
-if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 
-    set (${HDF_PREFIX}_HAVE_DARWIN 1) 
+if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+    set (${HDF_PREFIX}_HAVE_DARWIN 1)
 endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 
 # Check for Solaris
-if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS") 
-    set (${HDF_PREFIX}_HAVE_SOLARIS 1) 
+if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+    set (${HDF_PREFIX}_HAVE_SOLARIS 1)
 endif (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
 
 #-----------------------------------------------------------------------------
@@ -117,13 +117,8 @@ if (NOT WINDOWS)
   CHECK_LIBRARY_EXISTS_CONCAT ("wsock32" gethostbyname ${HDF_PREFIX}_HAVE_LIBWSOCK32)
 endif (NOT WINDOWS)
 
+# UCB (BSD) compatibility library
 CHECK_LIBRARY_EXISTS_CONCAT ("ucb"    gethostname  ${HDF_PREFIX}_HAVE_LIBUCB)
-CHECK_LIBRARY_EXISTS_CONCAT ("socket" connect      ${HDF_PREFIX}_HAVE_LIBSOCKET)
-CHECK_LIBRARY_EXISTS ("c" gethostbyname "" NOT_NEED_LIBNSL)
-
-if (NOT NOT_NEED_LIBNSL)
-  CHECK_LIBRARY_EXISTS_CONCAT ("nsl"    gethostbyname  ${HDF_PREFIX}_HAVE_LIBNSL)
-endif (NOT NOT_NEED_LIBNSL)
 
 # For other tests to use the same libraries
 set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LINK_LIBS})
@@ -146,10 +141,6 @@ MACRO (HDF_FUNCTION_TEST OTHER_TEST)
       set (OTHER_TEST_ADD_LIBRARIES "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
     endif (CMAKE_REQUIRED_LIBRARIES)
 
-    foreach (def ${HDF_EXTRA_TEST_DEFINITIONS})
-      set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}=${${def}}")
-    endforeach (def)
-
     foreach (def
         HAVE_SYS_TIME_H
         HAVE_UNISTD_H
@@ -255,7 +246,6 @@ CHECK_INCLUDE_FILE_CONCAT ("pthread.h"       ${HDF_PREFIX}_HAVE_PTHREAD_H)
 CHECK_INCLUDE_FILE_CONCAT ("srbclient.h"     ${HDF_PREFIX}_HAVE_SRBCLIENT_H)
 CHECK_INCLUDE_FILE_CONCAT ("string.h"        ${HDF_PREFIX}_HAVE_STRING_H)
 CHECK_INCLUDE_FILE_CONCAT ("strings.h"       ${HDF_PREFIX}_HAVE_STRINGS_H)
-CHECK_INCLUDE_FILE_CONCAT ("time.h"          ${HDF_PREFIX}_HAVE_TIME_H)
 CHECK_INCLUDE_FILE_CONCAT ("stdlib.h"        ${HDF_PREFIX}_HAVE_STDLIB_H)
 CHECK_INCLUDE_FILE_CONCAT ("memory.h"        ${HDF_PREFIX}_HAVE_MEMORY_H)
 CHECK_INCLUDE_FILE_CONCAT ("dlfcn.h"         ${HDF_PREFIX}_HAVE_DLFCN_H)
@@ -428,6 +418,19 @@ if (NOT ${HDF_PREFIX}_SIZEOF_OFF64_T)
   set (${HDF_PREFIX}_SIZEOF_OFF64_T 0)
 endif (NOT ${HDF_PREFIX}_SIZEOF_OFF64_T)
 
+#-----------------------------------------------------------------------------
+# Extra C99 types
+#-----------------------------------------------------------------------------
+
+# _Bool type support
+CHECK_INCLUDE_FILE_CONCAT (stdbool.h    ${HDF_PREFIX}_HAVE_STDBOOL_H)
+if (HAVE_STDBOOL_H)
+  set (CMAKE_EXTRA_INCLUDE_FILES stdbool.h)
+  HDF_CHECK_TYPE_SIZE (bool         ${HDF_PREFIX}_SIZEOF_BOOL)
+else (HAVE_STDBOOL_H)
+  HDF_CHECK_TYPE_SIZE (_Bool        ${HDF_PREFIX}_SIZEOF_BOOL)
+endif (HAVE_STDBOOL_H)
+
 if (NOT WINDOWS)
   #-----------------------------------------------------------------------------
   # Check if the dev_t type is a scalar type
@@ -443,6 +446,7 @@ if (NOT WINDOWS)
   #-----------------------------------------------------------------------------
   # Check a bunch of time functions
   #-----------------------------------------------------------------------------
+  CHECK_FUNCTION_EXISTS (gettimeofday      ${HDF_PREFIX}_HAVE_GETTIMEOFDAY)
   foreach (test
       HAVE_TM_GMTOFF
       HAVE___TM_GMTOFF
@@ -503,7 +507,6 @@ CHECK_FUNCTION_EXISTS (longjmp           ${HDF_PREFIX}_HAVE_LONGJMP)
 CHECK_FUNCTION_EXISTS (setjmp            ${HDF_PREFIX}_HAVE_SETJMP)
 CHECK_FUNCTION_EXISTS (siglongjmp        ${HDF_PREFIX}_HAVE_SIGLONGJMP)
 CHECK_FUNCTION_EXISTS (sigsetjmp         ${HDF_PREFIX}_HAVE_SIGSETJMP)
-CHECK_FUNCTION_EXISTS (sigaction         ${HDF_PREFIX}_HAVE_SIGACTION)
 CHECK_FUNCTION_EXISTS (sigprocmask       ${HDF_PREFIX}_HAVE_SIGPROCMASK)
 
 CHECK_FUNCTION_EXISTS (snprintf          ${HDF_PREFIX}_HAVE_SNPRINTF)
@@ -537,10 +540,6 @@ if (NOT ${HDF_PREFIX}_HAVE_SIGSETJMP)
 endif (NOT ${HDF_PREFIX}_HAVE_SIGSETJMP)
 
 #-----------------------------------------------------------------------------
-# Check for Symbols
-CHECK_SYMBOL_EXISTS (tzname "time.h" ${HDF_PREFIX}_HAVE_DECL_TZNAME)
-
-#-----------------------------------------------------------------------------
 # Check a bunch of other functions
 #-----------------------------------------------------------------------------
 if (NOT WINDOWS)
@@ -567,10 +566,6 @@ MACRO (HDF_CXX_FUNCTION_TEST OTHER_TEST)
       set (OTHER_TEST_ADD_LIBRARIES "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
     endif (CMAKE_REQUIRED_LIBRARIES)
 
-    foreach (def ${HDF_EXTRA_TEST_DEFINITIONS})
-      set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}=${${def}}")
-    endforeach (def)
-
     foreach (def
         HAVE_SYS_TIME_H
         HAVE_UNISTD_H
@@ -637,7 +632,7 @@ if (WINDOWS)
           "${CURRENT_TEST_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
       )
     endif (LARGEFILE)
-    set (MACRO_CHECK_FUNCTION_DEFINITIONS 
+    set (MACRO_CHECK_FUNCTION_DEFINITIONS
       "-DHAVE_IOEO ${CMAKE_REQUIRED_FLAGS}")
     if (CMAKE_REQUIRED_LIBRARIES)
       set (CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
@@ -669,7 +664,7 @@ if (WINDOWS)
     if ("${HAVE_IOEO_EXITCODE}" EQUAL 0)
       set (${HDF_PREFIX}_HAVE_IOEO 1 CACHE INTERNAL "Test InitOnceExecuteOnce")
       message (STATUS "Performing Test InitOnceExecuteOnce - Success")
-      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
+      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
         "Performing C SOURCE FILE Test InitOnceExecuteOnce succeded with the following output:\n"
         "${OUTPUT}\n"
         "Return value: ${HAVE_IOEO}\n")
@@ -681,7 +676,7 @@ if (WINDOWS)
       endif (CMAKE_CROSSCOMPILING AND "${HAVE_IOEO_EXITCODE}" MATCHES  "FAILED_TO_RUN")
 
       message (STATUS "Performing Test InitOnceExecuteOnce - Failed")
-      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log 
+      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
         "Performing InitOnceExecuteOnce Test  failed with the following output:\n"
         "${OUTPUT}\n"
         "Return value: ${HAVE_IOEO_EXITCODE}\n")
@@ -693,60 +688,45 @@ endif (WINDOWS)
 #-----------------------------------------------------------------------------
 # Determine how 'inline' is used
 #-----------------------------------------------------------------------------
-set (HDF_EXTRA_TEST_DEFINITIONS INLINE_TEST_INLINE)
 foreach (inline_test inline __inline__ __inline)
-  set (INLINE_TEST_INLINE ${inline_test})
-  HDF_FUNCTION_TEST (INLINE_TEST_${inline_test})
+  string (TOUPPER ${inline_test} INLINE_TEST_MACRO)
+  HDF_FUNCTION_TEST (HAVE_${INLINE_TEST_MACRO})
 endforeach (inline_test)
 
-set (HDF_EXTRA_TEST_DEFINITIONS)
-if (INLINE_TEST___inline__)
-  set (${HDF_PREFIX}_inline __inline__)
-else (INLINE_TEST___inline__)
-  if (INLINE_TEST___inline)
-    set (${HDF_PREFIX}_inline __inline)
-  else (INLINE_TEST___inline)
-    if (INLINE_TEST_inline)
-      set (${HDF_PREFIX}_inline inline)
-    endif (INLINE_TEST_inline)
-  endif (INLINE_TEST___inline)
-endif (INLINE_TEST___inline__)
-
 #-----------------------------------------------------------------------------
 # Check how to print a Long Long integer
 #-----------------------------------------------------------------------------
 if (NOT ${HDF_PREFIX}_PRINTF_LL_WIDTH OR ${HDF_PREFIX}_PRINTF_LL_WIDTH MATCHES "unknown")
   set (PRINT_LL_FOUND 0)
   message (STATUS "Checking for appropriate format for 64 bit long:")
-  foreach (HDF5_PRINTF_LL l64 l L q I64 ll)
-    set (CURRENT_TEST_DEFINITIONS "-DPRINTF_LL_WIDTH=${HDF5_PRINTF_LL}")
-    if (${HDF_PREFIX}_SIZEOF_LONG_LONG)
-      set (CURRENT_TEST_DEFINITIONS "${CURRENT_TEST_DEFINITIONS} -DHAVE_LONG_LONG")
-    endif (${HDF_PREFIX}_SIZEOF_LONG_LONG)
-    TRY_RUN (HDF5_PRINTF_LL_TEST_RUN   HDF5_PRINTF_LL_TEST_COMPILE
-        ${CMAKE_BINARY_DIR}
-        ${HDF_RESOURCES_EXT_DIR}/HDFTests.c
-        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CURRENT_TEST_DEFINITIONS}
-        OUTPUT_VARIABLE OUTPUT
+  set (CURRENT_TEST_DEFINITIONS "-DPRINTF_LL_WIDTH")
+  if (${HDF_PREFIX}_SIZEOF_LONG_LONG)
+    set (CURRENT_TEST_DEFINITIONS "${CURRENT_TEST_DEFINITIONS} -DHAVE_LONG_LONG")
+  endif (${HDF_PREFIX}_SIZEOF_LONG_LONG)
+  TRY_RUN (${HDF_PREFIX}_PRINTF_LL_TEST_RUN   ${HDF_PREFIX}_PRINTF_LL_TEST_COMPILE
+      ${CMAKE_BINARY_DIR}
+      ${HDF_RESOURCES_EXT_DIR}/HDFTests.c
+      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CURRENT_TEST_DEFINITIONS}
+      OUTPUT_VARIABLE OUTPUT
+  )
+  if (${HDF_PREFIX}_PRINTF_LL_TEST_COMPILE)
+    if (${HDF_PREFIX}_PRINTF_LL_TEST_RUN MATCHES 0)
+      string(REGEX REPLACE ".*PRINTF_LL_WIDTH=\\[(.*)\\].*" "\\1" ${HDF_PREFIX}_PRINTF_LL "${OUTPUT}")
+      set (${HDF_PREFIX}_PRINTF_LL_WIDTH "\"${${HDF_PREFIX}_PRINTF_LL}\"" CACHE INTERNAL "Width for printf for type `long long' or `__int64', us. `ll")
+      set (PRINT_LL_FOUND 1)
+    else (${HDF_PREFIX}_PRINTF_LL_TEST_RUN MATCHES 0)
+      message ("Width test failed with result: ${${HDF_PREFIX}_PRINTF_LL_TEST_RUN}")
+    endif (${HDF_PREFIX}_PRINTF_LL_TEST_RUN MATCHES 0)
+  else (${HDF_PREFIX}_PRINTF_LL_TEST_COMPILE)
+    file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+        "Test ${HDF_PREFIX}_PRINTF_LL_WIDTH failed with the following output:\n ${OUTPUT}\n"
     )
-    if (HDF5_PRINTF_LL_TEST_COMPILE)
-      if (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
-        set (${HDF_PREFIX}_PRINTF_LL_WIDTH "\"${HDF5_PRINTF_LL}\"" CACHE INTERNAL "Width for printf for type `long long' or `__int64', us. `ll")
-        set (PRINT_LL_FOUND 1)
-      else (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
-        message ("Width with ${HDF5_PRINTF_LL} failed with result: ${HDF5_PRINTF_LL_TEST_RUN}")
-      endif (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
-    else (HDF5_PRINTF_LL_TEST_COMPILE)
-      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
-          "Test ${HDF_PREFIX}_PRINTF_LL_WIDTH for ${HDF5_PRINTF_LL} failed with the following output:\n ${OUTPUT}\n"
-      )
-    endif (HDF5_PRINTF_LL_TEST_COMPILE)
-  endforeach (HDF5_PRINTF_LL)
+  endif (${HDF_PREFIX}_PRINTF_LL_TEST_COMPILE)
 
   if (PRINT_LL_FOUND)
-    message (STATUS "Checking for apropriate format for 64 bit long: found ${${HDF_PREFIX}_PRINTF_LL_WIDTH}")
+    message (STATUS "Checking for appropriate format for 64 bit long: found ${${HDF_PREFIX}_PRINTF_LL_WIDTH}")
   else (PRINT_LL_FOUND)
-    message (STATUS "Checking for apropriate format for 64 bit long: not found")
+    message (STATUS "Checking for appropriate format for 64 bit long: not found")
     set (${HDF_PREFIX}_PRINTF_LL_WIDTH "\"unknown\"" CACHE INTERNAL
         "Width for printf for type `long long' or `__int64', us. `ll"
     )
diff --git a/config/cmake_ext_mod/FindSZIP.cmake b/config/cmake_ext_mod/FindSZIP.cmake
index e8e7f9f..5f0f031 100644
--- a/config/cmake_ext_mod/FindSZIP.cmake
+++ b/config/cmake_ext_mod/FindSZIP.cmake
@@ -156,12 +156,6 @@ if (SZIP_FOUND)
   # Add SZIP_INCLUDE_DIR to CMAKE_REQUIRED_INCLUDES
   set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${SZIP_INCLUDE_DIRS}")
 
-  CHECK_SYMBOL_EXISTS (SZIP_BUILT_AS_DYNAMIC_LIB "SZconfig.h" HAVE_SZIP_DLL)
-
-  if (HAVE_SZIP_DLL STREQUAL "TRUE")
-    set (HAVE_SZIP_DLL "1")
-  endif (HAVE_SZIP_DLL STREQUAL "TRUE")
-
   # Restore CMAKE_REQUIRED_INCLUDES and CMAKE_REQUIRED_FLAGS variables
   set (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_SAVE})
   set (CMAKE_REQUIRED_FLAGS    ${CMAKE_REQUIRED_FLAGS_SAVE})
@@ -174,6 +168,5 @@ if (FIND_SZIP_DEBUG)
   message (STATUS "SZIP_INCLUDE_DIRS: ${SZIP_INCLUDE_DIRS}")
   message (STATUS "SZIP_LIBRARY_DEBUG: ${SZIP_LIBRARY_DEBUG}")
   message (STATUS "SZIP_LIBRARY_RELEASE: ${SZIP_LIBRARY_RELEASE}")
-  message (STATUS "HAVE_SZIP_DLL: ${HAVE_SZIP_DLL}")
   message (STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
 endif (FIND_SZIP_DEBUG)
diff --git a/config/cmake_ext_mod/HDFLibMacros.cmake b/config/cmake_ext_mod/HDFLibMacros.cmake
index 32c2fb0..3f91405 100644
--- a/config/cmake_ext_mod/HDFLibMacros.cmake
+++ b/config/cmake_ext_mod/HDFLibMacros.cmake
@@ -1,12 +1,12 @@
 #-------------------------------------------------------------------------------
-MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
+macro (EXTERNAL_JPEG_LIBRARY compress_type jpeg_pic)
   # May need to build JPEG with PIC on x64 machines with gcc
   # Need to use CMAKE_ANSI_CFLAGS define so that compiler test works
 
   if (${compress_type} MATCHES "SVN")
     EXTERNALPROJECT_ADD (JPEG
         SVN_REPOSITORY ${JPEG_URL}
-        # [SVN_REVISION rev] 
+        # [SVN_REVISION rev]
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
@@ -18,7 +18,7 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
             -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${jpeg_pic}
-    ) 
+    )
   elseif (${compress_type} MATCHES "GIT")
     EXTERNALPROJECT_ADD (JPEG
         GIT_REPOSITORY ${JPEG_URL}
@@ -33,7 +33,7 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
             -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${jpeg_pic}
-    ) 
+    )
   elseif (${compress_type} MATCHES "TGZ")
     EXTERNALPROJECT_ADD (JPEG
         URL ${JPEG_URL}
@@ -49,27 +49,34 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
             -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${jpeg_pic}
-    ) 
+    )
   endif (${compress_type} MATCHES "SVN")
-  externalproject_get_property (JPEG BINARY_DIR SOURCE_DIR) 
+  externalproject_get_property (JPEG BINARY_DIR SOURCE_DIR)
 
-  # Create imported target jpeg
-  add_library (jpeg ${libtype} IMPORTED)
-  HDF_IMPORT_SET_LIB_OPTIONS (jpeg "jpeg" ${libtype} "")
-  add_dependencies (JPEG jpeg)
+##include (${BINARY_DIR}/${JPEG_PACKAGE_NAME}${HDF_PACKAGE_EXT}-targets.cmake)
+# Create imported target jpeg-static
+  add_library(jpeg-static STATIC IMPORTED)
+  HDF_IMPORT_SET_LIB_OPTIONS (jpeg-static "jpeg" STATIC "")
+  add_dependencies (JPEG jpeg-static)
+  set (JPEG_STATIC_LIBRARY "jpeg-static")
+  set (JPEG_LIBRARIES ${JPEG_static_LIBRARY})
+  if (BUILD_SHARED_LIBS)
+    # Create imported target jpeg-shared
+    add_library(jpeg-shared SHARED IMPORTED)
+    HDF_IMPORT_SET_LIB_OPTIONS (jpeg-shared "jpeg" SHARED "")
+    add_dependencies (JPEG jpeg-shared)
+    set (JPEG_SHARED_LIBRARY "jpeg-shared")
+    set (JPEG_LIBRARIES ${JPEG_LIBRARIES} ${JPEG_shared_LIBRARY})
+  endif (BUILD_SHARED_LIBS)
 
-#  include (${BINARY_DIR}/JPEG-targets.cmake)  
-  set (JPEG_LIBRARY "jpeg")
-  
   set (JPEG_INCLUDE_DIR_GEN "${BINARY_DIR}")
   set (JPEG_INCLUDE_DIR "${SOURCE_DIR}/src")
   set (JPEG_FOUND 1)
-  set (JPEG_LIBRARIES ${JPEG_LIBRARY})
   set (JPEG_INCLUDE_DIRS ${JPEG_INCLUDE_DIR_GEN} ${JPEG_INCLUDE_DIR})
-ENDMACRO (EXTERNAL_JPEG_LIBRARY)
+endmacro (EXTERNAL_JPEG_LIBRARY)
 
 #-------------------------------------------------------------------------------
-MACRO (PACKAGE_JPEG_LIBRARY compress_type)
+macro (PACKAGE_JPEG_LIBRARY compress_type)
   add_custom_target (JPEG-GenHeader-Copy ALL
       COMMAND ${CMAKE_COMMAND} -E copy_if_different ${JPEG_INCLUDE_DIR_GEN}/jconfig.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
       COMMENT "Copying ${JPEG_INCLUDE_DIR_GEN}/jconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
@@ -78,14 +85,14 @@ MACRO (PACKAGE_JPEG_LIBRARY compress_type)
   if (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
     add_dependencies (JPEG-GenHeader-Copy JPEG)
   endif (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
-ENDMACRO (PACKAGE_JPEG_LIBRARY)
+endmacro (PACKAGE_JPEG_LIBRARY)
 
 #-------------------------------------------------------------------------------
-MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
+macro (EXTERNAL_SZIP_LIBRARY compress_type encoding)
   if (${compress_type} MATCHES "SVN")
     EXTERNALPROJECT_ADD (SZIP
         SVN_REPOSITORY ${SZIP_URL}
-        # [SVN_REVISION rev] 
+        # [SVN_REVISION rev]
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
@@ -98,11 +105,11 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
             -DSZIP_ENABLE_ENCODING:BOOL=${encoding}
-    ) 
+    )
   elseif (${compress_type} MATCHES "GIT")
     EXTERNALPROJECT_ADD (SZIP
         GIT_REPOSITORY ${SZIP_URL}
-        # [SVN_REVISION rev] 
+        # [SVN_REVISION rev]
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
@@ -115,7 +122,7 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
             -DSZIP_ENABLE_ENCODING:BOOL=${encoding}
-    ) 
+    )
   elseif (${compress_type} MATCHES "TGZ")
     EXTERNALPROJECT_ADD (SZIP
         URL ${SZIP_URL}
@@ -132,27 +139,34 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
             -DSZIP_ENABLE_ENCODING:BOOL=${encoding}
-    ) 
+    )
   endif (${compress_type} MATCHES "SVN")
-  externalproject_get_property (SZIP BINARY_DIR SOURCE_DIR) 
+  externalproject_get_property (SZIP BINARY_DIR SOURCE_DIR)
 
-  # Create imported target szip
-  add_library (szip ${libtype} IMPORTED)
-  HDF_IMPORT_SET_LIB_OPTIONS (szip "szip" ${libtype} "")
-  add_dependencies (SZIP szip)
-
-#  include (${BINARY_DIR}/SZIP-targets.cmake)  
-  set (SZIP_LIBRARY "szip")
+##include (${BINARY_DIR}/${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT}-targets.cmake)
+# Create imported target szip-static
+  add_library(szip-static STATIC IMPORTED)
+  HDF_IMPORT_SET_LIB_OPTIONS (szip-static "szip" STATIC "")
+  add_dependencies (SZIP szip-static)
+  set (SZIP_STATIC_LIBRARY "szip-static")
+  set (SZIP_LIBRARIES ${SZIP_static_LIBRARY})
+  if (BUILD_SHARED_LIBS)
+    # Create imported target szip-shared
+    add_library(szip-shared SHARED IMPORTED)
+    HDF_IMPORT_SET_LIB_OPTIONS (szip-shared "szip" SHARED "")
+    add_dependencies (SZIP szip-shared)
+    set (SZIP_SHARED_LIBRARY "szip-shared")
+    set (SZIP_LIBRARIES ${SZIP_LIBRARIES} ${SZIP_shared_LIBRARY})
+  endif (BUILD_SHARED_LIBS)
 
   set (SZIP_INCLUDE_DIR_GEN "${BINARY_DIR}")
   set (SZIP_INCLUDE_DIR "${SOURCE_DIR}/src")
   set (SZIP_FOUND 1)
-  set (SZIP_LIBRARIES ${SZIP_LIBRARY})
   set (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR_GEN} ${SZIP_INCLUDE_DIR})
-ENDMACRO (EXTERNAL_SZIP_LIBRARY)
+endmacro (EXTERNAL_SZIP_LIBRARY)
 
 #-------------------------------------------------------------------------------
-MACRO (PACKAGE_SZIP_LIBRARY compress_type)
+macro (PACKAGE_SZIP_LIBRARY compress_type)
   add_custom_target (SZIP-GenHeader-Copy ALL
       COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
       COMMENT "Copying ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
@@ -161,14 +175,14 @@ MACRO (PACKAGE_SZIP_LIBRARY compress_type)
   if (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
     add_dependencies (SZIP-GenHeader-Copy SZIP)
   endif (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
-ENDMACRO (PACKAGE_SZIP_LIBRARY)
+endmacro (PACKAGE_SZIP_LIBRARY)
 
 #-------------------------------------------------------------------------------
-MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
+macro (EXTERNAL_ZLIB_LIBRARY compress_type)
   if (${compress_type} MATCHES "SVN")
     EXTERNALPROJECT_ADD (ZLIB
         SVN_REPOSITORY ${ZLIB_URL}
-        # [SVN_REVISION rev] 
+        # [SVN_REVISION rev]
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
@@ -180,11 +194,11 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
             -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-    ) 
+    )
   elseif (${compress_type} MATCHES "GIT")
     EXTERNALPROJECT_ADD (ZLIB
         GIT_REPOSITORY ${ZLIB_URL}
-        # [SVN_REVISION rev] 
+        # [SVN_REVISION rev]
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
@@ -196,7 +210,7 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
             -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-    ) 
+    )
   elseif (${compress_type} MATCHES "TGZ")
     EXTERNALPROJECT_ADD (ZLIB
         URL ${ZLIB_URL}
@@ -212,32 +226,39 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
             -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-    ) 
+    )
   endif (${compress_type} MATCHES "SVN")
-  externalproject_get_property (ZLIB BINARY_DIR SOURCE_DIR) 
+  externalproject_get_property (ZLIB BINARY_DIR SOURCE_DIR)
 
-  # Create imported target zlib
-  add_library (zlib ${libtype} IMPORTED)
   if (WIN32)
     set (ZLIB_LIB_NAME "zlib")
   else (WIN32)
     set (ZLIB_LIB_NAME "z")
   endif (WIN32)
-  HDF_IMPORT_SET_LIB_OPTIONS (zlib ${ZLIB_LIB_NAME} ${libtype} "")
-  add_dependencies (ZLIB zlib)
+##include (${BINARY_DIR}/${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT}-targets.cmake)
+# Create imported target zlib-static
+  add_library(zlib-static STATIC IMPORTED)
+  HDF_IMPORT_SET_LIB_OPTIONS (zlib-static ${ZLIB_LIB_NAME} STATIC "")
+  add_dependencies (ZLIB zlib-static)
+  set (ZLIB_STATIC_LIBRARY "zlib-static")
+  set (ZLIB_LIBRARIES ${ZLIB_static_LIBRARY})
+  if (BUILD_SHARED_LIBS)
+    # Create imported target zlib-shared
+    add_library(zlib-shared SHARED IMPORTED)
+    HDF_IMPORT_SET_LIB_OPTIONS (zlib-shared ${ZLIB_LIB_NAME} SHARED "")
+    add_dependencies (ZLIB zlib-shared)
+    set (ZLIB_SHARED_LIBRARY "zlib-shared")
+    set (ZLIB_LIBRARIES ${ZLIB_LIBRARIES} ${ZLIB_SHARED_LIBRARY})
+  endif (BUILD_SHARED_LIBS)
 
-#  include (${BINARY_DIR}/ZLIB-targets.cmake)  
-  set (ZLIB_LIBRARY "zlib")
-  
   set (ZLIB_INCLUDE_DIR_GEN "${BINARY_DIR}")
   set (ZLIB_INCLUDE_DIR "${SOURCE_DIR}")
   set (ZLIB_FOUND 1)
-  set (ZLIB_LIBRARIES ${ZLIB_LIBRARY})
   set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR_GEN} ${ZLIB_INCLUDE_DIR})
-ENDMACRO (EXTERNAL_ZLIB_LIBRARY)
+endmacro (EXTERNAL_ZLIB_LIBRARY)
 
 #-------------------------------------------------------------------------------
-MACRO (PACKAGE_ZLIB_LIBRARY compress_type)
+macro (PACKAGE_ZLIB_LIBRARY compress_type)
   add_custom_target (ZLIB-GenHeader-Copy ALL
       COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_INCLUDE_DIR_GEN}/zconf.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
       COMMENT "Copying ${ZLIB_INCLUDE_DIR_GEN}/zconf.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
@@ -246,4 +267,4 @@ MACRO (PACKAGE_ZLIB_LIBRARY compress_type)
   if (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
     add_dependencies (ZLIB-GenHeader-Copy ZLIB)
   endif (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
-ENDMACRO (PACKAGE_ZLIB_LIBRARY)
+endmacro (PACKAGE_ZLIB_LIBRARY)
diff --git a/config/cmake_ext_mod/HDFMacros.cmake b/config/cmake_ext_mod/HDFMacros.cmake
index c9de5ac..b2c4997 100644
--- a/config/cmake_ext_mod/HDFMacros.cmake
+++ b/config/cmake_ext_mod/HDFMacros.cmake
@@ -20,7 +20,7 @@ endmacro (IDE_GENERATED_PROPERTIES)
 macro (IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES)
   #  install (FILES ${HEADERS}
   #       DESTINATION include/R3D/${NAME}
-  #       COMPONENT Headers       
+  #       COMPONENT Headers
   #  )
 
   string (REPLACE "/" "\\\\" source_group_path ${SOURCE_PATH}  )
@@ -35,15 +35,9 @@ endmacro (IDE_SOURCE_PROPERTIES)
 
 #-------------------------------------------------------------------------------
 macro (TARGET_NAMING libtarget libtype)
-  if (WIN32)
-    if (${libtype} MATCHES "SHARED")
-      set_target_properties (${libtarget} PROPERTIES OUTPUT_NAME "${libtarget}dll")
-    endif (${libtype} MATCHES "SHARED")
-  else (WIN32)
-    if (${libtype} MATCHES "SHARED")
-      set_target_properties (${libtarget} PROPERTIES OUTPUT_NAME "${libtarget}${ARGN}")
-    endif (${libtype} MATCHES "SHARED")
-  endif (WIN32)
+  if (${libtype} MATCHES "SHARED")
+    set_target_properties (${libtarget} PROPERTIES OUTPUT_NAME "${libtarget}${ARGN}")
+  endif (${libtype} MATCHES "SHARED")
 endmacro (TARGET_NAMING)
 
 #-------------------------------------------------------------------------------
@@ -96,7 +90,7 @@ macro (HDF_SET_LIB_OPTIONS libtarget libname libtype)
       set (LIB_DEBUG_NAME "${libname}_debug")
     endif (WIN32)
   endif (${libtype} MATCHES "SHARED")
-  
+
   set_target_properties (${libtarget}
       PROPERTIES
       OUTPUT_NAME_DEBUG          ${LIB_DEBUG_NAME}
@@ -104,7 +98,7 @@ macro (HDF_SET_LIB_OPTIONS libtarget libname libtype)
       OUTPUT_NAME_MINSIZEREL     ${LIB_RELEASE_NAME}
       OUTPUT_NAME_RELWITHDEBINFO ${LIB_RELEASE_NAME}
   )
-  
+
   #----- Use MSVC Naming conventions for Shared Libraries
   if (MINGW AND ${libtype} MATCHES "SHARED")
     set_target_properties (${libtarget}
@@ -182,7 +176,7 @@ macro (TARGET_C_PROPERTIES wintarget libtype addcompileflags addlinkflags)
         PROPERTIES
             COMPILE_FLAGS "${addcompileflags}"
             LINK_FLAGS "${addlinkflags}"
-    ) 
+    )
   endif (MSVC)
 endmacro (TARGET_C_PROPERTIES)
 
@@ -193,7 +187,7 @@ macro (TARGET_MSVC_PROPERTIES wintarget libtype addcompileflags addlinkflags)
         PROPERTIES
             COMPILE_FLAGS "${addcompileflags}"
             LINK_FLAGS "${addlinkflags}"
-    ) 
+    )
   endif (MSVC)
 endmacro (TARGET_MSVC_PROPERTIES)
 
@@ -212,13 +206,13 @@ macro (TARGET_FORTRAN_WIN_PROPERTIES forttarget libtype addcompileflags addlinkf
           PROPERTIES
               COMPILE_FLAGS "/dll ${addcompileflags}"
               LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
-      ) 
+      )
     else (${libtype} MATCHES "SHARED")
       set_target_properties (${forttarget}
           PROPERTIES
               COMPILE_FLAGS "${addcompileflags}"
               LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
-      ) 
+      )
     endif (${libtype} MATCHES "SHARED")
   endif (MSVC)
 endmacro (TARGET_FORTRAN_WIN_PROPERTIES)
@@ -241,6 +235,8 @@ macro (HDF_README_PROPERTIES target_fortran)
       set (BINARY_PLATFORM "${BINARY_PLATFORM} 7")
     elseif (${CMAKE_SYSTEM_VERSION} MATCHES "6.2")
       set (BINARY_PLATFORM "${BINARY_PLATFORM} 8")
+    elseif (${CMAKE_SYSTEM_VERSION} MATCHES "6.3")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM} 10")
     endif (${CMAKE_SYSTEM_VERSION} MATCHES "6.1")
     set (BINARY_PLATFORM "${BINARY_PLATFORM} ${MSVC_C_ARCHITECTURE_ID}")
     if (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
@@ -251,6 +247,8 @@ macro (HDF_README_PROPERTIES target_fortran)
       set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2012")
     elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "18.*")
       set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2013")
+    elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "19.*")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2015")
     else (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
       set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}")
     endif (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
@@ -269,9 +267,15 @@ macro (HDF_README_PROPERTIES target_fortran)
   if (target_fortran)
     set (BINARY_PLATFORM "${BINARY_PLATFORM} / ${CMAKE_Fortran_COMPILER_ID} Fortran")
   endif (target_fortran)
-    
+
+  if (BUILD_SHARED_LIBS)
+    set (LIB_TYPE "Static and Shared")
+  else (BUILD_SHARED_LIBS)
+    set (LIB_TYPE "Static")
+  endif (BUILD_SHARED_LIBS)
+
   configure_file (
-      ${HDF_RESOURCES_DIR}/README.txt.cmake.in 
+      ${HDF_RESOURCES_DIR}/README.txt.cmake.in
       ${CMAKE_BINARY_DIR}/README.txt @ONLY
   )
 endmacro (HDF_README_PROPERTIES)
diff --git a/config/cmake_ext_mod/HDFTests.c b/config/cmake_ext_mod/HDFTests.c
index 1c23ac3..8478d1b 100644
--- a/config/cmake_ext_mod/HDFTests.c
+++ b/config/cmake_ext_mod/HDFTests.c
@@ -213,7 +213,7 @@ SIMPLE_TEST(struct stat sb; sb.st_blocks=0);
 
 int main(void)
 {
-  char *llwidthArgs[] = { "l64", "l", "L", "q", "ll", NULL };
+  char *llwidthArgs[] = { "I64", "l64", "l", "L", "q", "ll", NULL };
   char *s = malloc(128);
   char **currentArg = NULL;
   LL_TYPE x = (LL_TYPE)1048576 * (LL_TYPE)1048576;
@@ -454,13 +454,19 @@ SIMPLE_TEST(struct text_info w; w.screenwidth=0);
 
 #endif /* HAVE_TM_GMTOFF */
 
-
-#if defined( INLINE_TEST_inline ) || defined( INLINE_TEST___inline__ ) || defined( INLINE_TEST___inline )
+#if defined( HAVE_INLINE ) || defined( HAVE___INLINE__ ) || defined( HAVE___INLINE )
 #ifndef __cplusplus
+#if defined( HAVE_INLINE )
+#  define INLINE_KW inline
+#elif defined ( HAVE___INLINE__ )
+#  define INLINE_KW __inline__
+#elif defined ( HAVE___INLINE )
+#  define INLINE_KW __inline
+#endif /* HAVE_INLINE */
 typedef int foo_t;
-static INLINE_TEST_INLINE foo_t static_foo () { return 0; }
-INLINE_TEST_INLINE foo_t foo () {return 0; }
-int main() { return 0; }
-#endif
+static INLINE_KW foo_t static_foo () { return 0; }
+INLINE_KW foo_t foo () {return 0; }
+int main(void) { return 0; }
+#endif /* __cplusplus */
+#endif /* defined( HAVE_INLINE ) || defined( HAVE___INLINE__ ) || defined( HAVE___INLINE ) */
 
-#endif /* INLINE_TEST */
diff --git a/config/cmake_ext_mod/HDFUseFortran.cmake b/config/cmake_ext_mod/HDFUseFortran.cmake
index 4955d20..275f2ea 100644
--- a/config/cmake_ext_mod/HDFUseFortran.cmake
+++ b/config/cmake_ext_mod/HDFUseFortran.cmake
@@ -3,7 +3,7 @@
 #
 #-------------------------------------------------------------------------------
 ENABLE_LANGUAGE (Fortran)
-  
+
 #-----------------------------------------------------------------------------
 # Detect name mangling convention used between Fortran and C
 #-----------------------------------------------------------------------------
@@ -12,7 +12,6 @@ FortranCInterface_HEADER (
     ${CMAKE_BINARY_DIR}/FCMangle.h
     MACRO_NAMESPACE "H5_FC_"
     SYMBOL_NAMESPACE "H5_FC_"
-    SYMBOLS mysub mymod:my_sub
 )
 
 file (STRINGS ${CMAKE_BINARY_DIR}/FCMangle.h CONTENTS REGEX "H5_FC_GLOBAL\\(.*,.*\\) +(.*)")
@@ -28,7 +27,6 @@ set (H5_FC_FUNC_ "H5_FC_FUNC_(name,NAME) ${CMAKE_MATCH_1}")
 # so this one is used for a sizeof test.
 #-----------------------------------------------------------------------------
 MACRO (CHECK_FORTRAN_FEATURE FUNCTION CODE VARIABLE)
-  if (NOT DEFINED ${VARIABLE})
     message (STATUS "Testing Fortran ${FUNCTION}")
     if (CMAKE_REQUIRED_LIBRARIES)
       set (CHECK_FUNCTION_EXISTS_ADD_LIBRARIES
@@ -37,12 +35,12 @@ MACRO (CHECK_FORTRAN_FEATURE FUNCTION CODE VARIABLE)
       set (CHECK_FUNCTION_EXISTS_ADD_LIBRARIES)
     endif (CMAKE_REQUIRED_LIBRARIES)
     file (WRITE
-        ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
+        ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f90
         "${CODE}"
     )
-    TRY_COMPILE (${VARIABLE}
+    TRY_COMPILE (RESULT_VAR
         ${CMAKE_BINARY_DIR}
-        ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
+        ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f90
         CMAKE_FLAGS "${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}"
         OUTPUT_VARIABLE OUTPUT
     )
@@ -51,21 +49,21 @@ MACRO (CHECK_FORTRAN_FEATURE FUNCTION CODE VARIABLE)
 #    message ( "Test result ${OUTPUT}")
 #    message ( "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ")
 
-    if (${VARIABLE})
+    if (${RESULT_VAR})
       set (${VARIABLE} 1 CACHE INTERNAL "Have Fortran function ${FUNCTION}")
       message (STATUS "Testing Fortran ${FUNCTION} - OK")
       file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
           "Determining if the Fortran ${FUNCTION} exists passed with the following output:\n"
           "${OUTPUT}\n\n"
       )
-    else (${VARIABLE})
+    else ()
       message (STATUS "Testing Fortran ${FUNCTION} - Fail")
-      set (${VARIABLE} "" CACHE INTERNAL "Have Fortran function ${FUNCTION}")
+      set (${VARIABLE} 0 CACHE INTERNAL "Have Fortran function ${FUNCTION}")
       file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
           "Determining if the Fortran ${FUNCTION} exists failed with the following output:\n"
           "${OUTPUT}\n\n")
-    endif (${VARIABLE})
-  endif (NOT DEFINED ${VARIABLE})
+    endif ()
+
 ENDMACRO (CHECK_FORTRAN_FEATURE)
 
 #-----------------------------------------------------------------------------
@@ -77,6 +75,7 @@ ENDMACRO (CHECK_FORTRAN_FEATURE)
 #-----------------------------------------------------------------------------
 
 # Check for Non-standard extension intrinsic function SIZEOF
+set(FORTRAN_HAVE_SIZEOF FALSE)
 CHECK_FORTRAN_FEATURE(sizeof
   "
        PROGRAM main
@@ -87,6 +86,7 @@ CHECK_FORTRAN_FEATURE(sizeof
 )
 
 # Check for F2008 standard intrinsic function C_SIZEOF
+set(FORTRAN_HAVE_C_SIZEOF FALSE)
 CHECK_FORTRAN_FEATURE(c_sizeof
   "
        PROGRAM main
@@ -111,7 +111,18 @@ CHECK_FORTRAN_FEATURE(storage_size
   FORTRAN_HAVE_STORAGE_SIZE
 )
 
+# Check for F2008 standard intrinsic module "ISO_FORTRAN_ENV"
+set(HAVE_ISO_FORTRAN_ENV FALSE)
+CHECK_FORTRAN_FEATURE(ISO_FORTRAN_ENV
+  "
+       PROGRAM main
+         USE, INTRINSIC :: ISO_FORTRAN_ENV
+       END PROGRAM
+  "
+  HAVE_ISO_FORTRAN_ENV
+)
 
+set(FORTRAN_DEFAULT_REAL_NOT_DOUBLE FALSE)
 CHECK_FORTRAN_FEATURE(RealIsNotDouble
   "
        MODULE type_mod
@@ -141,6 +152,7 @@ CHECK_FORTRAN_FEATURE(RealIsNotDouble
 #-----------------------------------------------------------------------------
 # Checks if the ISO_C_BINDING module meets all the requirements
 #-----------------------------------------------------------------------------
+set(FORTRAN_HAVE_ISO_C_BINDING FALSE)
 CHECK_FORTRAN_FEATURE(iso_c_binding
   "
        PROGRAM main
@@ -148,7 +160,7 @@ CHECK_FORTRAN_FEATURE(iso_c_binding
             IMPLICIT NONE
             TYPE(C_PTR) :: ptr
             TYPE(C_FUNPTR) :: funptr
-            INTEGER(C_INT64_T) :: c_int64_type 
+            INTEGER(C_INT64_T) :: c_int64_type
             CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr
             ptr = C_LOC(ichr(1:1))
        END PROGRAM
diff --git a/config/cmake_ext_mod/grepTest.cmake b/config/cmake_ext_mod/grepTest.cmake
index 579d855..a090057 100644
--- a/config/cmake_ext_mod/grepTest.cmake
+++ b/config/cmake_ext_mod/grepTest.cmake
@@ -27,13 +27,13 @@ endif (NOT TEST_REFERENCE)
 message (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
 
 # run the test program, capture the stdout/stderr and the result var
-EXECUTE_PROCESS (
+execute_process (
     COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
     WORKING_DIRECTORY ${TEST_FOLDER}
     RESULT_VARIABLE TEST_RESULT
     OUTPUT_FILE ${TEST_OUTPUT}
     ERROR_FILE ${TEST_OUTPUT}.err
-    OUTPUT_VARIABLE TEST_ERROR
+    OUTPUT_VARIABLE TEST_OUT
     ERROR_VARIABLE TEST_ERROR
 )
 
@@ -44,16 +44,16 @@ message (STATUS "COMMAND Error: ${TEST_ERROR}")
 file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
 
 # TEST_REFERENCE should always be matched
-STRING(REGEX MATCH "${TEST_REFERENCE}" TEST_MATCH ${TEST_STREAM}) 
-STRING(COMPARE EQUAL "${TEST_REFERENCE}" "${TEST_MATCH}" TEST_RESULT) 
+string (REGEX MATCH "${TEST_REFERENCE}" TEST_MATCH ${TEST_STREAM})
+string (COMPARE EQUAL "${TEST_REFERENCE}" "${TEST_MATCH}" TEST_RESULT)
 if (${TEST_RESULT} STREQUAL "0")
   message (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not contain ${TEST_REFERENCE}")
 endif (${TEST_RESULT} STREQUAL "0")
 
-STRING(REGEX MATCH "${TEST_FILTER}" TEST_MATCH ${TEST_STREAM}) 
+string (REGEX MATCH "${TEST_FILTER}" TEST_MATCH ${TEST_STREAM})
 if (${TEST_EXPECT} STREQUAL "1")
   # TEST_EXPECT (1) interperts TEST_FILTER as NOT to match
-  STRING(LENGTH "${TEST_MATCH}" TEST_RESULT) 
+  string (LENGTH "${TEST_MATCH}" TEST_RESULT)
   if (NOT ${TEST_RESULT} STREQUAL "0")
     message (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did contain ${TEST_FILTER}")
   endif (NOT ${TEST_RESULT} STREQUAL "0")
diff --git a/config/cmake_ext_mod/prunTest.cmake b/config/cmake_ext_mod/prunTest.cmake
index 3d5ec31..089c203 100644
--- a/config/cmake_ext_mod/prunTest.cmake
+++ b/config/cmake_ext_mod/prunTest.cmake
@@ -30,7 +30,7 @@ set (ERROR_APPEND 1)
 message (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
 
 if (TEST_ENV_VAR)
-  set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}") 
+  set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}")
 endif (TEST_ENV_VAR)
 
 # run the test program, capture the stdout/stderr and the result var
@@ -40,7 +40,7 @@ EXECUTE_PROCESS (
     RESULT_VARIABLE TEST_RESULT
     OUTPUT_FILE ${TEST_OUTPUT}
     ERROR_FILE ${TEST_OUTPUT}.err
-    OUTPUT_VARIABLE TEST_ERROR
+    OUTPUT_VARIABLE TEST_OUT
     ERROR_VARIABLE TEST_ERROR
 )
 
@@ -51,49 +51,49 @@ file (WRITE ${TEST_FOLDER}/P_${TEST_REFERENCE} "${TEST_STREAM}")
 
 if (ERROR_APPEND)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
-  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") 
+  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (ERROR_APPEND)
 
 if (TEST_APPEND)
-  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_APPEND} ${TEST_ERROR}\n") 
+  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_APPEND} ${TEST_ERROR}\n")
 endif (TEST_APPEND)
 
 message (STATUS "COMMAND Error: ${TEST_ERROR}")
 
 if (TEST_MASK)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
-  STRING(REGEX REPLACE "Storage:[^\n]+\n" "Storage:   <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}") 
+  STRING(REGEX REPLACE "Storage:[^\n]+\n" "Storage:   <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}")
   file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (TEST_MASK)
 
 if (TEST_MASK_MOD)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
-  STRING(REGEX REPLACE "Modified:[^\n]+\n" "Modified:  XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}") 
+  STRING(REGEX REPLACE "Modified:[^\n]+\n" "Modified:  XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
   file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (TEST_MASK_MOD)
 
 if (TEST_MASK_ERROR)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
-  STRING(REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE "H5Eset_auto[1-2]*" "H5Eset_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}") 
+  STRING(REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}")
+  STRING(REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}")
+  STRING(REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}")
+  STRING(REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}")
+  STRING(REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}")
+  STRING(REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
+  STRING(REGEX REPLACE "H5Eset_auto[1-2]*" "H5Eset_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
   file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (TEST_MASK_ERROR)
 
 if (TEST_FILTER)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
-  STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}") 
+  STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}")
   file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (TEST_FILTER)
 
 #if (TEST_REF_FILTER)
 #  message (STATUS "TEST_REF_FILTER: ${TEST_APPEND}${TEST_REF_FILTER}")
 #  file (READ ${TEST_FOLDER}/P_${TEST_REFERENCE} TEST_STREAM)
-#  STRING(REGEX REPLACE "${TEST_APPEND}" "${TEST_REF_FILTER}" TEST_STREAM "${TEST_STREAM}") 
+#  STRING(REGEX REPLACE "${TEST_APPEND}" "${TEST_REF_FILTER}" TEST_STREAM "${TEST_STREAM}")
 #  file (WRITE ${TEST_FOLDER}/P_${TEST_REFERENCE} "${TEST_STREAM}")
 #endif (TEST_REF_FILTER)
 
diff --git a/config/cmake_ext_mod/runTest.cmake b/config/cmake_ext_mod/runTest.cmake
index bfaae2b..c2b7527 100644
--- a/config/cmake_ext_mod/runTest.cmake
+++ b/config/cmake_ext_mod/runTest.cmake
@@ -32,30 +32,30 @@ endif (NOT TEST_ERRREF)
 message (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
 
 if (TEST_ENV_VAR)
-  set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}") 
+  set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}")
 endif (TEST_ENV_VAR)
 
 if (NOT TEST_INPUT)
   # run the test program, capture the stdout/stderr and the result var
-  EXECUTE_PROCESS (
+  execute_process (
       COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
       WORKING_DIRECTORY ${TEST_FOLDER}
       RESULT_VARIABLE TEST_RESULT
       OUTPUT_FILE ${TEST_OUTPUT}
       ERROR_FILE ${TEST_OUTPUT}.err
-      OUTPUT_VARIABLE TEST_ERROR
+      OUTPUT_VARIABLE TEST_OUT
       ERROR_VARIABLE TEST_ERROR
   )
 else (NOT TEST_INPUT)
   # run the test program with stdin, capture the stdout/stderr and the result var
-  EXECUTE_PROCESS (
+  execute_process (
       COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
       WORKING_DIRECTORY ${TEST_FOLDER}
       RESULT_VARIABLE TEST_RESULT
       INPUT_FILE ${TEST_INPUT}
       OUTPUT_FILE ${TEST_OUTPUT}
       ERROR_FILE ${TEST_OUTPUT}.err
-      OUTPUT_VARIABLE TEST_ERROR
+      OUTPUT_VARIABLE TEST_OUT
       ERROR_VARIABLE TEST_ERROR
   )
 endif (NOT TEST_INPUT)
@@ -64,11 +64,11 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}")
 
 if (ERROR_APPEND)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
-  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") 
+  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (ERROR_APPEND)
 
 if (TEST_APPEND)
-  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_APPEND} ${TEST_RESULT}\n") 
+  file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_APPEND} ${TEST_RESULT}\n")
 endif (TEST_APPEND)
 
 # if the return value is !=${TEST_EXPECT} bail out
@@ -80,13 +80,13 @@ message (STATUS "COMMAND Error: ${TEST_ERROR}")
 
 if (TEST_MASK)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
-  STRING(REGEX REPLACE "Storage:[^\n]+\n" "Storage:   <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}") 
+   string (REGEX REPLACE "Storage:[^\n]+\n" "Storage:   <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}")
   file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (TEST_MASK)
 
 if (TEST_MASK_MOD)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
-  STRING(REGEX REPLACE "Modified:[^\n]+\n" "Modified:  XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}") 
+   string (REGEX REPLACE "Modified:[^\n]+\n" "Modified:  XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
   file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (TEST_MASK_MOD)
 
@@ -96,13 +96,13 @@ if (TEST_MASK_ERROR)
   else (NOT TEST_ERRREF)
     file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
   endif (NOT TEST_ERRREF)
-  STRING(REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}") 
-  STRING(REGEX REPLACE "H5Eset_auto[1-2]*" "H5Eset_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}") 
+   string (REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}")
+   string (REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}")
+   string (REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}")
+   string (REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}")
+   string (REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}")
+   string (REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
+   string (REGEX REPLACE "H5Eset_auto[1-2]*" "H5Eset_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
   if (NOT TEST_ERRREF)
     file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
   else (NOT TEST_ERRREF)
@@ -112,7 +112,7 @@ endif (TEST_MASK_ERROR)
 
 if (TEST_FILTER)
   file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
-  STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}") 
+   string (REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}")
   file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
 endif (TEST_FILTER)
 
@@ -123,21 +123,21 @@ if (NOT TEST_SKIP_COMPARE)
   endif (WIN32 AND NOT MINGW)
 
   # now compare the output with the reference
-  EXECUTE_PROCESS (
+  execute_process (
       COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
       RESULT_VARIABLE TEST_RESULT
   )
   if (NOT ${TEST_RESULT} STREQUAL 0)
   set (TEST_RESULT 0)
   file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
-  LIST (LENGTH test_act len_act)
+  list (LENGTH test_act len_act)
   file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
-  LIST (LENGTH test_ref len_ref)
+  list (LENGTH test_ref len_ref)
   if (NOT ${len_act} STREQUAL "0")
-    MATH (EXPR _FP_LEN "${len_ref} - 1")
+    math (EXPR _FP_LEN "${len_ref} - 1")
     foreach (line RANGE 0 ${_FP_LEN})
-      LIST (GET test_act ${line} str_act)
-      LIST (GET test_ref ${line} str_ref)
+      list (GET test_act ${line} str_act)
+      list (GET test_ref ${line} str_ref)
       if (NOT "${str_act}" STREQUAL "${str_ref}")
         if (NOT "${str_act}" STREQUAL "")
           set (TEST_RESULT 1)
@@ -157,7 +157,7 @@ if (NOT TEST_SKIP_COMPARE)
   if (NOT ${TEST_RESULT} STREQUAL 0)
     message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
   endif (NOT ${TEST_RESULT} STREQUAL 0)
-  
+
   if (TEST_ERRREF)
     if (WIN32 AND NOT MINGW)
       file (READ ${TEST_FOLDER}/${TEST_ERRREF} TEST_STREAM)
@@ -165,22 +165,22 @@ if (NOT TEST_SKIP_COMPARE)
     endif (WIN32 AND NOT MINGW)
 
     # now compare the error output with the error reference
-    EXECUTE_PROCESS (
+    execute_process (
         COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT}.err ${TEST_FOLDER}/${TEST_ERRREF}
         RESULT_VARIABLE TEST_RESULT
     )
     if (NOT ${TEST_RESULT} STREQUAL 0)
     set (TEST_RESULT 0)
     file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT}.err test_act)
-    LIST (LENGTH test_act len_act)
+    list (LENGTH test_act len_act)
     file (STRINGS ${TEST_FOLDER}/${TEST_ERRREF} test_ref)
-    LIST (LENGTH test_ref len_ref)
-    MATH (EXPR _FP_LEN "${len_ref} - 1")
+    list (LENGTH test_ref len_ref)
+    math (EXPR _FP_LEN "${len_ref} - 1")
     if (NOT ${len_act} STREQUAL "0")
-      MATH (EXPR _FP_LEN "${len_ref} - 1")
+      math (EXPR _FP_LEN "${len_ref} - 1")
       foreach (line RANGE 0 ${_FP_LEN})
-        LIST (GET test_act ${line} str_act)
-        LIST (GET test_ref ${line} str_ref)
+        list (GET test_act ${line} str_act)
+        list (GET test_ref ${line} str_ref)
         if (NOT "${str_act}" STREQUAL "${str_ref}")
           if (NOT "${str_act}" STREQUAL "")
             set (TEST_RESULT 1)
diff --git a/config/craynv b/config/craynv
deleted file mode 100644
index 479d5c8..0000000
--- a/config/craynv
+++ /dev/null
@@ -1,198 +0,0 @@
-#                                                      -*- shell-script -*-
-#
-# Copyright by The HDF Group.
-# Copyright by the Board of Trustees of the University of Illinois.
-# All rights reserved.
-#
-# This file is part of HDF5.  The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the files COPYING and Copyright.html.  COPYING can be found at the root
-# of the source code distribution tree; Copyright.html can be found at the
-# root level of an installed copy of the electronic HDF5 document set and
-# is linked from the top-level documents page.  It can also be found at
-# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
-# access to either file, you may request a copy from help at hdfgroup.org.
-
-
-# This file is part of the HDF5 build script.  It is processed shortly
-# after configure starts and defines, among other things, flags for
-# the various compile modes.
-
-# Disabling Dependency Tracking
-# ---------------------
-#
-# The Cray X1 machines that The HDF Group tests on seem to have trouble doing
-# dependency tracking (probably because they use Cray's C++ compiler,
-# which autoconf may not recognize).  Until this is fixed by autoconf
-# or a user complains, disable dependency tracking on Crays.
-enable_dependency_tracking="no"
-
-# Choosing a C Compiler
-# ---------------------
-#
-# The user should be able to specify the compiler by setting the CC
-# environment variable to the name of the compiler and any switches it 
-# requires for proper operation.  If CC is unset then this script may
-# set it.  If CC is unset by time this script completes then configure 
-# will try `gcc' and `cc' in that order (perhaps some others too).
-#
-# Note: Code later in this file may depend on the value of $CC_BASENAME
-#       in order to distinguish between different compilers when
-#       deciding which compiler command-line switches to use.  This
-#       variable is set based on the incoming value of $CC and is only
-#       used within this file.
-
-if test "X-" =  "X-$CC"; then
-    CC=cc
-    CC_BASENAME=cc
-fi
-# no need to use RANLIB
-RANLIB=:
-
-# C Compiler and Preprocessor Flags
-# ---------------------------------
-#
-# Flags that end with `_CFLAGS' are always passed to the compiler.
-# Flags that end with `_CPPFLAGS' are passed to the compiler when
-# compiling but not when linking.
-#
-# DEBUG_CFLAGS         Flags to pass to the compiler to create a
-# DEBUG_CPPFLAGS       library suitable for use with debugging
-#                      tools. Usually this list will exclude
-#                      optimization switches (like `-O') and include
-#                      switches that turn on symbolic debugging
-#                      support (like `-g').
-#
-# PROD_CFLAGS          Flags to pass to the compiler to create a
-# PROFILE_CPPFLAGS     library suitable for performance testing (like 
-#                      `-pg').  This may or may not include debugging 
-#                      or production flags.
-#                      
-# H5_CFLAGS		Flags can be added to this variable which
-#			might already be partially initialized.  These 
-#			flags will always be passed to the compiler
-#			and should include switches to turn on full
-#			warnings.  HDF5 attempts to be ANSI and Posix
-#			compliant and employ good programming
-#			practices resulting in few if any
-#			warnings.
-#
-#			Warning flags do not have to be added to H5_CFLAGS
-#			variable if the compiler is the GNU gcc
-#			compiler or a descendent of gcc such as EGCS or PGCC.
-#
-# AM_CFLAGS             Flags added directly into this variable will
-#                       be propogated to the compiler wrapper scripts (h5cc,
-#                       h5c++, et cetera) in addition to being used to compile 
-#                       the library.
-#
-# These flags should be set according to the compiler being used.
-# There are two ways to check the compiler.  You can try using `-v' or 
-# `--version' to see if the compiler will print a version string.  You 
-# can use the value of $CC_BASENAME which is the base name of the
-# first word in $CC (note that the value of CC may have changed
-# above).
-
-case $CC_BASENAME in
-    gcc)
-       H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions
-       DEBUG_CFLAGS="-g -fverbose-asm"
-       DEBUG_CPPFLAGS=
-       PROD_CFLAGS="-O3 -fomit-frame-pointer"
-       PROD_CPPFLAGS=
-       PROFILE_CFLAGS="-pg"
-       PROFILE_CPPFLAGS=
-       ;;
-
-    cc)
-       H5_CFLAGS="$H5_CFLAGS" 
-       DEBUG_CFLAGS="-g"
-       DEBUG_CPPFLAGS=
-       PROD_CFLAGS=""
-       PROD_CPPFLAGS=
-       PROFILE_CFLAGS=
-       PROFILE_CPPFLAGS=
-       ;;
-
-    *)
-       H5_CFLAGS="$H5_CFLAGS -ansi"
-       DEBUG_CFLAGS="-g"
-       DEBUG_CPPFLAGS=
-       PROD_CFLAGS="-O"
-       PROD_CPPFLAGS=
-       PROFILE_CFLAGS="-pg"
-       PROFILE_CPPFLAGS=
-       ;;
-esac
-
-
-
-# Overriding Configure Tests
-# --------------------------
-#
-# Values for overriding configuration tests when cross compiling.
-# This includes compiling on some machines where the serial front end
-# compiles for a parallel back end.
-
-# Set this to `yes' or `no' depending on whether the target is big
-# endian or little endian.
-#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
-
-# Set this to the width required by printf() to print type `long
-# long'.  For instance, if the format would be `%lld' then set it to
-# `ll' or if the format would be `%qd' set it to `q'.
-#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
-
-# Hard set the flag to indicate that converting denormalized floating-point
-# values doesn't work.
-hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'}
-
-# The default Fortran 90 compiler
-
-if test "X-" = "X-$F9X"; then
-    F9X=ftn
-fi
-
-if test "X-" = "X-$f9x_flags_set"; then
-    # -Wl passes flags to the linker and -M# will ignore warnings with
-    # number#. Warning 405 and 412 were stopping the executable from
-    # being built.
-    # The -em flag enables .mod files, which is what HDF5 builds.
-    F9XSUFFIXFLAG=""
-    FSEARCH_DIRS=""
-    H5_FCFLAGS="$H5_FCFLAGS -em"
-    DEBUG_FCFLAGS="-g"
-    PROD_FCFLAGS=""
-    PROFILE_FCFLAGS=""
-    f9x_flags_set=yes
-fi
-
-# The default C++ compiler
-
-if test -z "$CXX"; then
-    CXX="CC"
-    CXX_BASENAME=CC
-fi
-
-case $CXX_BASENAME in
-    g++)
-       H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions
-       DEBUG_CXXFLAGS="-g -fverbose-asm"
-       DEBUG_CPPFLAGS=
-       PROD_CXXFLAGS="-O3 -fomit-frame-pointer"
-       PROD_CPPFLAGS=
-       PROFILE_CXXFLAGS="-pg"
-       PROFILE_CPPFLAGS=
-       ;;
-
-    *)
-       H5_CXXFLAGS="$H5_CXXFLAGS" 
-       DEBUG_CXXFLAGS="-g"
-       DEBUG_CPPFLAGS=
-       PROD_CXXFLAGS=""
-       PROD_CPPFLAGS=
-       PROFILE_CXXFLAGS=
-       PROFILE_CPPFLAGS=
-       ;;
-esac
-
diff --git a/config/dec-flags b/config/dec-flags
deleted file mode 100644
index 8f3fa1a..0000000
--- a/config/dec-flags
+++ /dev/null
@@ -1,150 +0,0 @@
-#							-*- shell-script -*-
-#
-# Copyright by The HDF Group.
-# Copyright by the Board of Trustees of the University of Illinois.
-# All rights reserved.
-#
-# This file is part of HDF5.  The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the files COPYING and Copyright.html.  COPYING can be found at the root
-# of the source code distribution tree; Copyright.html can be found at the
-# root level of an installed copy of the electronic HDF5 document set and
-# is linked from the top-level documents page.  It can also be found at
-# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
-# access to either file, you may request a copy from help at hdfgroup.org.
-
-
-# This file should be sourced into configure if the compiler is a DEC
-# compiler.  It is careful not to do anything if the compiler is not
-# DEC; otherwise `cc_flags_set' is set to `yes'
-#
-
-# Get the compiler version unless it's already known.
-#
-#   cc_vendor:    The compiler vendor: DEC
-#   cc_version:   Version number, like: V5.2-038
-#
-if test X = "X$cc_flags_set"; then
-    cc_vendor=DEC
-    cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |head -1`"
-    case "$cc_version" in
-	DEC*)
-	    cc_version="`echo $cc_version |\
-			sed 's/.*DEC C \(V[0-9][-\.0-9]*\).*/\1/'`"
-	;;
-	Compaq*)
-	    cc_version="`echo $cc_version |\
-			sed 's/.*Compaq C \(V[0-9][-\.0-9]*\).*/\1/'`"
-	;;
-    esac
-
-    if test X != "$gcc_version"; then
-	echo "compiler '$CC' is $cc_vendor-$cc_version"
-    else
-        cc_vendor=
-    fi
-fi
-
-# Warn about old compilers that don't work right.
-case "$cc_vendor-$cc_version" in
-    DEC-V5.2-038)
-        cat <<EOF
-    **
-    ** This compiler may generate incorrect code when optimizations are
-    ** enabled. Please upgrade to a newer version (we're not sure which
-    ** version actually works) before reporting bugs to the HDF5 team.
-    **
-EOF
-	sleep 5
-	;;
-esac
-
-# Compiler flags
-case "$cc_vendor-$cc_version" in
-    DEC-V5.*)
-	# Production
-	PROD_CFLAGS="-std -verbose -warnprotos -ieee -misalign -O4  -ansi_args -fp_reorder -readonly_strings -inline speed"
-	PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS"
-
-	# Debug
-	DEBUG_CFLAGS="-g -std -verbose -warnprotos -ieee -misalign"
-	DEBUG_CPPFLAGS=
-
-	# Profile
-	PROFILE_CFLAGS="-pg -std -verbose -warnprotos -ieee -misalign"
-	PROFILE_CPPFLAGS=
-
-	# Flags are set
-	cc_flags_set=yes
-	;;
-
-    DEC-V6.*)
-	# Production
-	PROD_CFLAGS="-c99 -verbose -warnprotos -ieee -misalign -O4 -fp_reorder -readonly_strings -inline speed"
-	PROD_CPPFLAGS="-D_INTRINSICS -D_INLINE_INTRINSICS"
-
-	# Debug
-	DEBUG_CFLAGS="-g -c99 -verbose -warnprotos -ieee -misalign"
-	DEBUG_CPPFLAGS=
-
-	# Profile
-	PROFILE_CFLAGS="-pg -c99 -verbose -warnprotos -ieee -misalign"
-	PROFILE_CPPFLAGS=
-
-	# Flags are set
-	cc_flags_set=yes
-	;;
-esac
-
-# If no flags were set then clear the compiler vendor and version info.
-if test X = "X$cc_flags_set"; then
-    cc_vendor=
-    cc_version=
-fi
-
-# The default Fortran 90 compiler
-
-if test "X-" = "X-$FC"; then
-  FC=f90
-fi
-
-if test "X-" = "X-$f9x_flags_set"; then
-  F9XSUFFIXFLAG=""
-  FSEARCH_DIRS=""
-  H5_FCFLAGS="$H5_FCFLAGS -Olimit 2048 -std1"
-  DEBUG_FCFLAGS="-Olimit 2048 -std1"
-  PROD_FCFLAGS="-Olimit 2048 -std1"
-  PROFILE_FCFLAGS="-Olimit 2048 -std1"
-  f9x_flags_set=yes
-fi
-
-# The default C++ compiler
-
-if test -z "$CXX"; then
-    CXX=cxx
-    CXX_BASENAME=cxx
-fi
-
-
-case $CXX_BASENAME in
-    g++)
-	H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions
-	DEBUG_CXXFLAGS="-g -fverbose-asm"
-	DEBUG_CPPFLAGS=
-	PROD_CXXFLAGS="-O3 -fomit-frame-pointer"
-	PROD_CPPFLAGS=
-	PROFILE_CXXFLAGS="-pg"
-	PROFILE_CPPFLAGS=
-	;;
-
-    *)
-	H5_CXXFLAGS="$H5_CXXFLAGS -tlocal -D__USE_STD_IOSTREAM"
-	DEBUG_CXXFLAGS="-g"
-	DEBUG_CPPFLAGS=
-	PROD_CXXFLAGS="-O"
-	PROD_CPPFLAGS=
-	PROFILE_CXXFLAGS="-pg"
-	PROFILE_CPPFLAGS=
-	;;
-esac
-
diff --git a/config/gnu-flags b/config/gnu-flags
index 5f36eaa..e7f8f14 100644
--- a/config/gnu-flags
+++ b/config/gnu-flags
@@ -19,10 +19,10 @@
 # if the compiler is not GNU; otherwise `cc_flags_set' is set to `yes'
 #
 
-# Get the compiler version in a way that works for gcc, egcs, and
-# pgcc unless a compiler version is already known
+# Get the compiler version in a way that works for gcc
+# unless a compiler version is already known
 #
-#   cc_vendor:    The compiler name: gcc, egcs, or pgcc
+#   cc_vendor:    The compiler name: gcc
 #   cc_version:   Version number: 2.91.60, 2.7.2.1
 #
 if test X = "X$cc_flags_set"; then
@@ -55,61 +55,9 @@ if test X = "X$cc_flags_set"; then
     cc_vers_all=`expr $cc_vers_major '*' 1000000 + $cc_vers_minor '*' 1000 + $cc_vers_patch`
 fi
 
-# GCC compilers before gcc-2.8.1 have problems with `long long'.
-if test gcc = "$cc_vendor" -a "$cc_vers_all" -lt 2008001; then
-    cat <<EOF
-    **
-    ** This compiler may be unable to properly compile the long long
-    ** data type used extensively by hdf5. There may be other code 
-    ** generation problems also, especially when optimizations are 
-    ** enabled.  Please upgrade to at least GNU gcc version 2.8.1 
-    ** before reporting bugs to the HDF5 team.
-    **
-EOF
-    sleep 5
-
-# GCC v2.96 (shipped with RH7.x) has problems with `float'-> `double' conversions.
-elif test gcc = "$cc_vendor" -a "$cc_vers_all" -eq 2096000; then
-   cat <<EOF
-    **
-    ** This compiler may have problems converting 'float' values to
-    ** 'double' values.  There may be other code generation problems
-    ** as well.
-    **
-    ** Please use a different version of gcc before reporting bugs.
-    **
-EOF
-       sleep 5
-
-# Current EGCS compilers have problems with `long long' and register
-# allocation when optimizations are turned on for x86 systems.
-elif test egcs = "$cc_vendor" -a "$cc_vers_all" -le 2091066; then
-       cat <<EOF
-    **
-    ** This compiler may have problems allocating registers when
-    ** optimizations are enabled on some platforms.
-    **
-EOF
-       sleep 5
-
-# All current versions of PGCC have problems also.
-elif test pgcc = "$cc_vendor" -a "$cc_vers_all" -le 2091066; then	    
-    cat <<EOF
-    **
-    ** This compiler may have problems allocating registers for long
-    ** long data types when optimizations are enabled. There may be
-    ** other code generation problems as well. We know of no version
-    ** of pgcc which is capable of compiling HDF5 in production mode.
-    ** Please use gcc-2.8 or egcs-1.1.1 before reporting bugs.
-    **
-EOF
-    sleep 5
-
-fi
-
 # Common GCC flags for various situations
 case "$cc_vendor-$cc_version" in
-  gcc*|egcs*|pgcc*)
+  gcc*)
     # Architecture-specific flags
     arch=
     case "$host_os-$host_cpu" in
@@ -146,33 +94,40 @@ case "$cc_vendor-$cc_version" in
     esac
 
     # General
-    H5_CFLAGS="$H5_CFLAGS $arch -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline"
+    H5_CFLAGS="$H5_CFLAGS $arch -std=c99 -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline"
 
     # Production
     case "$cc_vendor-$cc_version" in
-      gcc-2.95.[34])
-        PROD_CFLAGS="-O3"
-        ;;
-      gcc-3.*)
+      gcc-[34].*)
         PROD_CFLAGS="-O3"
         ;;
-      gcc-4.*)
-        PROD_CFLAGS="-O3"
+      gcc-5.*)
+        PROD_CFLAGS="-O3 -fstdarg-opt"
         ;;
       *)
-        PROD_CFLAGS="-O"
+        PROD_CFLAGS="-O -finline-functions"
         ;;
     esac
-
-    PROD_CFLAGS="$PROD_CFLAGS -fomit-frame-pointer -finline-functions"
     PROD_CPPFLAGS=
 
     # Debug
-    DEBUG_CFLAGS="-g -fverbose-asm"
+    case "$cc_vendor-$cc_version" in
+      gcc-5.*)
+        DEBUG_CFLAGS="-Og -g -ftrapv -fno-common"
+        ;;
+      *)
+        DEBUG_CFLAGS="-g"
+        ;;
+    esac
+    #DEBUG_CFLAGS="$DEBUG_CFLAGS -fsanitize=undefined"
     DEBUG_CPPFLAGS=
 
+    # Try out the new "stack protector" feature introduced in gcc 4.1
+    # (We should also think about adding some of the other memory protection options)
+    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
+
     # Profile
-    PROFILE_CFLAGS="-g -pg"
+    PROFILE_CFLAGS="-Og -g -pg"
     PROFILE_CPPFLAGS=
 
     # Flags are set
@@ -186,13 +141,10 @@ esac
 # the information from the previous version and adding modifications to that.
 case "$cc_vendor-$cc_version" in
 
-# Closer to the gcc 4.10 release, we should check for additional flags to
+# Closer to the gcc 5.2 release, we should check for additional flags to
 # include and break it out into it's own section, like the other versions
 # below. -QAK
-  gcc-4.9*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
+  gcc-5*)
     # Append warning flags
     # Don't use the '-Wtraditional' flag, we're way past having K&R C code
     # H5_CFLAGS="$H5_CFLAGS -Wtraditional"
@@ -259,16 +211,13 @@ case "$cc_vendor-$cc_version" in
     # Append more extra warning flags that only gcc 4.9+ know about
     H5_CFLAGS="$H5_CFLAGS -Wdate-time -Wopenmp-simd"
 
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
-    ;;
+    # (There was no release of gcc 5.0)
 
-  gcc-4.8*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
+    # Append more extra warning flags that only gcc 5.1+ know about
+    H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat"
+    ;;
 
+  gcc-4.9*)
     # Append warning flags
     # Don't use the '-Wtraditional' flag, we're way past having K&R C code
     # H5_CFLAGS="$H5_CFLAGS -Wtraditional"
@@ -332,16 +281,76 @@ case "$cc_vendor-$cc_version" in
     # Append more extra warning flags that only gcc 4.8+ know about
     H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
 
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
+    # Append more extra warning flags that only gcc 4.9+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wdate-time -Wopenmp-simd"
     ;;
 
-  gcc-4.7*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
+  gcc-4.8*)
+    # Append warning flags
+    # Don't use the '-Wtraditional' flag, we're way past having K&R C code
+    # H5_CFLAGS="$H5_CFLAGS -Wtraditional"
+    # Don't use the '-Wtraditional-conversion' flag, there's too many warnings
+    #  from GCC's assert macro
+    # H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
+
+    # Append warning flags from gcc-3* case
+    # (don't use -Wpadded flag for normal builds, many of the warnings its
+    #   issuing can't be fixed and they are making it hard to detect other,
+    #   more important warnings)
+    #H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
+    H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
+
+    # Append warning flags from gcc-3.2* case
+    H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
+
+    # Enable more format checking flags, beyond the basic -Wformat included
+    # in -Wall
+    H5_CFLAGS="$H5_CFLAGS -Wformat=2"
+
+    # The "unreachable code" warning appears to be reliable now...
+    H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
+
+    # Append warning flags from gcc-3.3* case
+    H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
+
+    # Append warning flags from gcc-3.4* case
+    H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
+
+    # Replace old -W flag with new -Wextra flag
+    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
+
+    # Append more extra warning flags that only gcc4.0+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
+
+    # Append more extra warning flags that only gcc 4.1+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
+
+    # Append more extra warning flags that only gcc 4.2+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
+
+    # Append more extra warning flags that only gcc 4.3+ know about
+    #
+    # Technically, variable-length arrays are part of the C99 standard, but
+    #   we should approach them a bit cautiously... -QAK
+    H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
+
+    # Append more extra warning flags that only gcc 4.4+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
+
+    # Append more extra warning flags that only gcc 4.5+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init"
 
+    # Append more extra warning flags that only gcc 4.6+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+
+    # Append more extra warning flags that only gcc 4.7+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
+
+    # Append more extra warning flags that only gcc 4.8+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+    ;;
+
+  gcc-4.7*)
     # Append warning flags
     # Don't use the '-Wtraditional' flag, we're way past having K&R C code
     # H5_CFLAGS="$H5_CFLAGS -Wtraditional"
@@ -402,17 +411,9 @@ case "$cc_vendor-$cc_version" in
 
     # Append more extra warning flags that only gcc 4.7+ know about
     H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
-
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
     ;;
 
   gcc-4.6*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -466,17 +467,9 @@ case "$cc_vendor-$cc_version" in
 
     # Append more extra warning flags that only gcc 4.6+ know about
     H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
-
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
     ;;
 
   gcc-4.5*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -527,17 +520,9 @@ case "$cc_vendor-$cc_version" in
 
     # Append more extra warning flags that only gcc 4.5+ know about
     H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
-
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
     ;;
 
   gcc-4.4*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -584,17 +569,9 @@ case "$cc_vendor-$cc_version" in
 
     # Append more extra warning flags that only gcc 4.4+ know about
     H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
-
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
     ;;
 
   gcc-4.3*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -638,17 +615,9 @@ case "$cc_vendor-$cc_version" in
     # Technically, variable-length arrays are part of the C99 standard, but
     #   we should approach them a bit cautiously... -QAK
     H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wvla"
-
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
     ;;
 
   gcc-4.2*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -686,17 +655,9 @@ case "$cc_vendor-$cc_version" in
 
     # Append more extra warning flags that only gcc 4.2+ know about
     H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
-
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
     ;;
 
   gcc-4.1.*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -731,17 +692,9 @@ case "$cc_vendor-$cc_version" in
 
     # Append more extra warning flags that only gcc 4.1+ know about
     H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
-
-    # Try out the new "stack protector" feature in gcc 4.1
-    # (Strictly speaking this isn't really a "warning" flag, so it's added to
-    #   the debugging flags)
-    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
     ;;
 
   gcc-4.0*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -776,9 +729,6 @@ case "$cc_vendor-$cc_version" in
     ;;
 
   gcc-3.4*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -810,9 +760,6 @@ case "$cc_vendor-$cc_version" in
     ;;
 
   gcc-3.3*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -838,9 +785,6 @@ case "$cc_vendor-$cc_version" in
     ;;
 
   gcc-3.2*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -863,9 +807,6 @@ case "$cc_vendor-$cc_version" in
     ;;
 
   gcc-3*)
-    # Replace -ansi flag with -std=c99 flag
-    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
-
     # Disable warnings about using 'long long' type
     H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
 
@@ -876,11 +817,6 @@ case "$cc_vendor-$cc_version" in
     #H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
     H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
     ;;
-
-  gcc-2.9[56]*)
-    # Disable warnings about using 'long long' type
-    H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
-    ;;
 esac
 
 # Clear cc info if no flags set
diff --git a/config/hpux11.23 b/config/hpux11.23
deleted file mode 100644
index 339cc84..0000000
--- a/config/hpux11.23
+++ /dev/null
@@ -1,96 +0,0 @@
-#							-*- shell-script -*-
-#
-# Copyright by The HDF Group.
-# Copyright by the Board of Trustees of the University of Illinois.
-# All rights reserved.
-#
-# This file is part of HDF5.  The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the files COPYING and Copyright.html.  COPYING can be found at the root
-# of the source code distribution tree; Copyright.html can be found at the
-# root level of an installed copy of the electronic HDF5 document set and
-# is linked from the top-level documents page.  It can also be found at
-# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
-# access to either file, you may request a copy from help at hdfgroup.org.
-
-
-# This file is part of the HDF5 build script.  It is processed shortly
-# after configure starts and defines, among other things, flags for
-# the various compile modes.
-#
-# See BlankForm in this directory for details.
-
-# Default compiler is `cc'
-if test "X-" =  "X-$CC"; then
-  CC=cc
-  CC_BASENAME=cc
-fi
-
-# Flags
-case "X-$CC" in
-  X-gcc)
-    H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions
-    DEBUG_CFLAGS="-g -fverbose-asm"
-    DEBUG_CPPFLAGS=
-    PROD_CFLAGS="-O3"
-    PROD_CPPFLAGS=
-    PROFILE_CFLAGS="-pg"
-    PROFILE_CPPFLAGS=
-    ;;
-
-  *)
-    H5_CFLAGS="$H5_CFLAGS -Ae -Wp,-H65536" #increase the size of macro definition table. For test/dtypes.c
-    DEBUG_CFLAGS=-g
-    DEBUG_CPPFLAGS="-Ae"
-    PROD_CFLAGS=-O
-    PROD_CPPFLAGS="-Ae"
-    PROFILE_CFLAGS=
-    PROFILE_CPPFLAGS="-Ae"
-    ;;
-esac
-
-# The default Fortran 90 compiler
-
-if test "X$FC" = "X"; then
-  FC=f90
-fi
-
-if test "X$f9x_flags_set" = "X"; then
-  F9XSUFFIXFLAG=""
-  FSEARCH_DIRS=""
-  H5_FCFLAGS="$H5_FCFLAGS -O"
-  DEBUG_FCFLAGS="-O"
-  PROD_FCFLAGS="-O"
-  PROFILE_FCFLAGS="-O"
-  f9x_flags_set=yes
-fi
-
-# The default C++ compiler
-
-if test -z "$CXX"; then
-  CXX=aCC
-  CXX_BASENAME=aCC
-fi
-
-case "X-$CXX" in
-  X-aCC)
-    # +Z for PIC
-    H5_CXXFLAGS="$H5_CXXFLAGS +Z  -D_INCLUDE_LONGLONG"
-    H5_CFLAGS="$H5_CFLAGS -g +O2"
-    DEBUG_CXXFLAGS=-g
-    DEBUG_CPPFLAGS=
-    PROD_CXXFLAGS="-O -s"
-    PROD_CPPFLAGS=
-    PROFILE_CPPFLAGS=
-    ;;
-
-  *)
-    H5_CXXFLAGS="$H5_CXXFLAGS -D_INCLUDE_LONGLONG"
-    H5_CFLAGS="$H5_CFLAGS"
-    DEBUG_CXXFLAGS=
-    DEBUG_CPPFLAGS=
-    PROD_CXXFLAGS=
-    PROD_CPPFLAGS=
-    PROFILE_CPPFLAGS=
-    ;;
-esac
diff --git a/config/ia64-linux-gnu b/config/ia64-linux-gnu
deleted file mode 100644
index 9f1b262..0000000
--- a/config/ia64-linux-gnu
+++ /dev/null
@@ -1,144 +0,0 @@
-#							-*- shell-script -*-
-#
-# Copyright by The HDF Group.
-# Copyright by the Board of Trustees of the University of Illinois.
-# All rights reserved.
-#
-# This file is part of HDF5.  The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the files COPYING and Copyright.html.  COPYING can be found at the root
-# of the source code distribution tree; Copyright.html can be found at the
-# root level of an installed copy of the electronic HDF5 document set and
-# is linked from the top-level documents page.  It can also be found at
-# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
-# access to either file, you may request a copy from help at hdfgroup.org.
-
-
-# This file is part of the HDF5 build script.  It is processed shortly
-# after configure starts and defines, among other things, flags for
-# the various compile modes.
-
-# Use Intel C compiler by default (if it's available).
-# Use mpicc for parallel by default.
-if test "X$CC" = "X"; then
-    if test "X-$enable_parallel" = "X-yes"; then
-	CC=mpicc
-	CC_BASENAME=mpicc
-    elif which icc > /dev/null; then
-	CC=icc
-	CC_BASENAME=icc
-    fi
-fi
-
-# Define RUNPARALLEL if parallel mode is enabled or a parallel compiler used.
-if test "X-$enable_parallel" = "X-yes" -o X-$CC_BASENAME = X-mpicc; then
-    RUNPARALLEL=${RUNPARALLEL="mpirun -np \$\${NPROCS:=6}"}
-fi
-
-#----------------------------------------------------------------------------
-# Compiler flags. The CPPFLAGS values should not include package debug
-# flags like `-DH5G_DEBUG' since these are added with the
-# `--enable-debug' switch of configure.
-
-case $CC_BASENAME in
-    ecc|icc)
-	. $srcdir/config/intel-flags
-	;;
-
-    gcc)
-	. $srcdir/config/gnu-flags
-	;;
-
-    *)
-	H5_CFLAGS="$H5_CFLAGS -ansi"
-	DEBUG_CFLAGS="-g"
-	DEBUG_CPPFLAGS=
-	PROD_CFLAGS="-O"
-	PROD_CPPFLAGS=
-	PROFILE_CFLAGS="-pg"
-	PROFILE_CPPFLAGS=
-	;;
-esac
-
-# The default Fortran 90 compiler
-
-# Use Intel Fortran compiler by default.
-if test X-$enable_fortran = X-yes -a "X-$FC" = "X-"; then
-    if test "X-$enable_parallel" = "X-yes"; then
-	FC=mpif90
-    else
-	FC="ifort"
-    fi
-fi
-
-case $FC in
-  *efc|*ifort)
-    # this is for efc v7.  Older efc do not work with these.
-    # -Vaxlib is for non-standard fortran calls like exit().
-    MORE_FCFLAGS='-fpp -DDEC$=DEC_ -DMS$=MS_ -Vaxlib'
-    H5_FCFLAGS="$H5_FCFLAGS $MORE_FCFLAGS"
-    f9x_flags_set=yes
-    ;;
-
-  *)
-    f9x_flags_set=yes
-    ;;
-esac
-
-# The following is not right and need work.
-if test "X$f9x_flags_set" = "X"; then
-  F9XSUFFIXFLAG=""
-  FSEARCH_DIRS=""
-  H5_FCFLAGS="$H5_FCFLAGS"
-  DEBUG_FCFLAGS=""
-  PROD_FCFLAGS=""
-  PROFILE_FCFLAGS=""
-  f9x_flags_set=yes
-fi
-
-# The Default settings for C++
-# Intel changed C++ compiler's name from "icc" to "icpc" in version 8.1
-if test -z "$CXX"; then
-    CXX=icpc
-    CXX_BASENAME=icpc
-fi
-
-# A patch to make g++ getting the default settings.
-# CXX_BASENAME should have been set in configure.
-if test "X$CXX" = "Xg++"; then
-    CXX_BASENAME=g++
-fi
-
-
-case $CXX_BASENAME in
-    ecc|icc)	# Intel compilers
-	# Default to C99 standard.
-	H5_CXXFLAGS="${H5_CXXFLAGS:--std=c99}"
-	DEBUG_CXXFLAGS="-g -w2 -Wall"
-	DEBUG_CPPFLAGS=
-	PROD_CXXFLAGS=""     #Default optimization O2 is used
-	PROD_CPPFLAGS=
-	PROFILE_CXXFLAGS="-pg"
-	PROFILE_CPPFLAGS=
-	;;
-    g++)
-	H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions
-	DEBUG_CXXFLAGS="-g -fverbose-asm"
-	DEBUG_CPPFLAGS=
-	PROD_CXXFLAGS="-O3 -fomit-frame-pointer"
-	PROD_CPPFLAGS=
-	PROFILE_CXXFLAGS="-pg"
-	PROFILE_CPPFLAGS=
-	;;
-
-    *)
-	# Default to C99 standard.
-	H5_CXXFLAGS="${H5_CXXFLAGS:--std=c99}"
-	DEBUG_CXXFLAGS="-g"
-	DEBUG_CPPFLAGS=
-	PROD_CXXFLAGS="-O"
-	PROD_CPPFLAGS=
-	PROFILE_CXXFLAGS="-pg"
-	PROFILE_CPPFLAGS=
-	;;
-esac
diff --git a/config/ibm-flags b/config/ibm-flags
index a1dfa2a..462372d 100644
--- a/config/ibm-flags
+++ b/config/ibm-flags
@@ -57,7 +57,10 @@ if test "XL" = "$cc_vendor"; then
     enable_shared="${enable_shared:-no}"
     # Make sure this is applied to other API compile options such as C++.
     AM_CFLAGS="$AM_CFLAGS"
-    H5_CFLAGS="-qlanglvl=stdc99 $H5_CFLAGS"
+    # -qflag=w:w makes the lowest level of reported compile issues to be "warning"
+    # instead of "information". This suppresses a very large number of messages
+    # concerning the portability of __inline__.
+    H5_CFLAGS="-qlanglvl=stdc99 -qflag=w:w $H5_CFLAGS"
     DEBUG_CFLAGS="-g -qfullpath"
     DEBUG_CPPFLAGS=
     # -O causes test/dtypes to fail badly. Turn it off for now.
diff --git a/config/lt_vers.am b/config/lt_vers.am
index fc14613..0ab7b2b 100644
--- a/config/lt_vers.am
+++ b/config/lt_vers.am
@@ -18,9 +18,9 @@
 # See libtool versioning documentation online.
 # After making changes, run bin/reconfigure to update other configure related
 # files like Makefile.in.
-LT_VERS_INTERFACE = 10
-LT_VERS_REVISION = 1 
-LT_VERS_AGE = 0
+LT_VERS_INTERFACE = 11
+LT_VERS_REVISION = 0
+LT_VERS_AGE = 1
 
 ## If the API changes *at all*, increment LT_VERS_INTERFACE and
 ## reset LT_VERS_REVISION to 0.
@@ -44,6 +44,30 @@ LT_VERS_AGE = 0
 ## bin/h5vers, don't move LT_VERS_REVISION from the fourth line
 ## without also editing the script!
 
+## Version numbers for wrapper shared library files.
+LT_CXX_VERS_INTERFACE = 11
+LT_CXX_VERS_REVISION = 0
+LT_CXX_VERS_AGE = 0
+
+LT_F_VERS_INTERFACE = 10
+LT_F_VERS_REVISION = 2
+LT_F_VERS_AGE = 0
+
+LT_HL_VERS_INTERFACE = 10
+LT_HL_VERS_REVISION = 2
+LT_HL_VERS_AGE = 0
+
+LT_HL_CXX_VERS_INTERFACE = 11
+LT_HL_CXX_VERS_REVISION = 0
+LT_HL_CXX_VERS_AGE = 0
+
+LT_HL_F_VERS_INTERFACE = 10
+LT_HL_F_VERS_REVISION = 2
+LT_HL_F_VERS_AGE = 0
+
+LT_TOOLS_VERS_INTERFACE = 10
+LT_TOOLS_VERS_REVISION = 2
+LT_TOOLS_VERS_AGE = 0
 
 # Copyright by The HDF Group.
 # Copyright by the Board of Trustees of the University of Illinois.
diff --git a/config/nec-superux14.1 b/config/nec-superux14.1
deleted file mode 100644
index dc1a15d..0000000
--- a/config/nec-superux14.1
+++ /dev/null
@@ -1,179 +0,0 @@
-#							-*- shell-script -*-
-#
-# Copyright by The HDF Group.
-# Copyright by the Board of Trustees of the University of Illinois.
-# All rights reserved.
-#
-# This file is part of HDF5.  The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the files COPYING and Copyright.html.  COPYING can be found at the root
-# of the source code distribution tree; Copyright.html can be found at the
-# root level of an installed copy of the electronic HDF5 document set and
-# is linked from the top-level documents page.  It can also be found at
-# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
-# access to either file, you may request a copy from help at hdfgroup.org.
-
-
-# This file is part of the HDF5 build script.  It is processed shortly
-# after configure starts and defines, among other things, flags for
-# the various compile modes.
-# [ak] created for a nec sx6 running superux with native compilers
-# [ak] -xint is neccessary because of src/H5FDmulti.c[H5Pset_fapl_multi]
-# [ak]  integer division of unsigned longs for _memb_addr
- 
-#----------------------------------------------------------------------------
-# Compiler flags. The CPPFLAGS values should not include package debug
-# flags like `-DH5G_DEBUG' since these are added with the
-# `--enable-debug' switch of configure.
-#----------------------------------------------------------------------------
-
-
-# Choosing a C Compiler
-# ---------------------
-#
-# The user should be able to specify the compiler by setting the CC
-# environment variable to the name of the compiler and any switches it 
-# requires for proper operation.  If CC is unset then this script may
-# set it.  If CC is unset by time this script completes then configure 
-# will try `gcc' and `cc' in that order (perhaps some others too).
-#
-# Note: Code later in this file may depend on the value of $CC_BASENAME
-#       in order to distinguish between different compilers when
-#       deciding which compiler command-line switches to use.  This
-#       variable is set based on the incoming value of $CC and is only
-#       used within this file.
-
-if test "X-" =  "X-$CC"; then
-    CC="sxc++ -Xa -size_t64 -xint -K c99"
-    CC_BASENAME=sxc++
-fi
-# The default archiver is `sxar'
-AR=${AR:-sxar}
-RANLIB=${RANLIB:=":"}
-
-if test "X-" = "X-$CXX"; then
-    CXX="sxc++ -size_t64 -xint -Kexceptions"
-    CXX_BASENAME=sxc++
-fi
-
-if test "X-" = "X-$F9X"; then
-    FC="sxf90 -size_t64 -ew "
-    FC_BASENAME=sxf90
-fi
-
-# C Compiler and Preprocessor Flags
-# ---------------------------------
-#
-# Flags that end with `_CFLAGS' are always passed to the compiler.
-# Flags that end with `_CPPFLAGS' are passed to the compiler when
-# compiling but not when linking.
-#
-# DEBUG_CFLAGS		Flags to pass to the compiler to create a
-# DEBUG_CPPFLAGS	library suitable for use with debugging
-#			tools. Usually this list will exclude
-#			optimization switches (like `-O') and include
-#			switches that turn on symbolic debugging
-#			support (like `-g').
-#
-# PROD_CFLAGS		Flags to pass to the compiler to create a
-# PROD_CPPFLAGS		production version of the library.  These
-#			usualy exclude symbolic debugging switches
-#			(like `-g') and include optimization switches
-#			(like `-O').
-#
-# PROFILE_CFLAGS	Flags to pass to the compiler to create a
-# PROFILE_CPPFLAGS	library suitable for performance testing (like 
-# 			`-pg').  This may or may not include debugging 
-# 			or production flags.
-#
-# H5_CFLAGS		Flags can be added to this variable which
-#			might already be partially initialized.  These 
-#			flags will always be passed to the compiler
-#			and should include switches to turn on full
-#			warnings.  HDF5 attempts to be ANSI and Posix
-#			compliant and employ good programming
-#			practices resulting in few if any
-#			warnings.
-#
-#			Warning flags do not have to be added to H5_CFLAGS
-#			variable if the compiler is the GNU gcc
-#			compiler or a descendent of gcc such as EGCS or PGCC.
-#
-# AM_CFLAGS             Flags added directly into this variable will
-#                       be propogated to the compiler wrapper scripts (h5cc,
-#                       h5c++, et cetera) in addition to being used to compile 
-#                       the library.
-#
-# These flags should be set according to the compiler being used.
-# There are two ways to check the compiler.  You can try using `-v' or 
-# `--version' to see if the compiler will print a version string.  You 
-# can use the value of $CC_BASENAME which is the base name of the
-# first word in $CC (note that the value of CC may have changed
-# above).
-
-case $CC_BASENAME in
-    cc)
-        H5_CFLAGS="$H5_CFLAGS"
-	DEBUG_CFLAGS="-Cdebug -g -wall"
-	DEBUG_CPPFLAGS=
-	PROD_CFLAGS="-Cnoopt"
-	PROD_CPPFLAGS=
-	PROFILE_CFLAGS="-p"
-	PROFILE_CPPFLAGS=
-	;;
-
-    *)
-	H5_CFLAGS="$H5_CFLAGS"
-	DEBUG_CFLAGS="-g"
-	DEBUG_CPPFLAGS=
-	PROD_CFLAGS=""
-	PROD_CPPFLAGS=
-	PROFILE_CFLAGS="-p"
-	PROFILE_CPPFLAGS=
-	;;
-esac
-
-case $CXX_BASENAME in
-    c++)
-         H5_CXXFLAGS="$H5_CXXFLAGS -Tlocal"
-         ;;
-
-    *)
-         H5_CXXFLAGS="$H5_CXXFLAGS"
-         ;;
-esac
- 
-case $FC_BASENAME in
-    f90)
-         H5_FCFLAGS="$F9XFLAGS"
-         ;;
-
-    *)
-         H5_FCFLAGS="$F9XFLAGS"
-         ;;
-esac
-
-# Overriding Configure Tests
-# --------------------------
-#
-ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=0}
-hdf5_cv_gettimeofday_tz=no
-# I have to add the follwoing two lines when -K c99 was used
-ac_cv_func_getrusage=no
-ac_cv_func_gethostname=no
-hdf5_cv_vsnprintf_works=no
-hdf5_cv_printf_ll=l
-hdf5_cv_system_scope_threads=no
-hdf5_cv_sw_ldouble_to_integer_works=no
-hdf5_cv_fp_to_ullong_right_maximum=no
-hdf5_cv_fp_to_ullong_bottom_bit_works=yes
-hdf5_cv_fp_to_ullong_right_maximum=no
-hdf5_cv_ldouble_to_uint_work=no
-hdf5_cv_ullong_to_fp_cast_works=yes
-hdf5_cv_ullong_to_ldouble_precision_works=no
-hdf5_cv_fp_to_integer_overflow_works=yes
-hdf5_cv_fp_to_ullong_accurate=no
-hdf5_cv_fp_to_ullong_right_maximum=no
-CONFIGURE_LIBS=/usr/lib/libi90sxe.a
-
-
diff --git a/config/powerpc-ibm-aix5.x b/config/powerpc-ibm-aix5.x
deleted file mode 100644
index 50a4e8c..0000000
--- a/config/powerpc-ibm-aix5.x
+++ /dev/null
@@ -1,21 +0,0 @@
-#							-*- shell-script -*-
-#
-# Copyright by The HDF Group.
-# All rights reserved.
-#
-# This file is part of HDF5.  The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the files COPYING and Copyright.html.  COPYING can be found at the root
-# of the source code distribution tree; Copyright.html can be found at the
-# root level of an installed copy of the electronic HDF5 document set and
-# is linked from the top-level documents page.  It can also be found at
-# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
-# access to either file, you may request a copy from help at hdfgroup.org.
-
-# Configuration file for building on the IBM POWER AIX platforms.
-# This file is part of the HDF5 build script.  It is processed shortly
-# after configure starts and defines, among other things, flags for
-# the various compile modes.
-
-# Use the generic ibm-aix.
-. $srcdir/config/ibm-aix
diff --git a/config/solaris2.x b/config/solaris
similarity index 100%
rename from config/solaris2.x
rename to config/solaris
diff --git a/config/sv1-cray b/config/sv1-cray
deleted file mode 100644
index 1bae48d..0000000
--- a/config/sv1-cray
+++ /dev/null
@@ -1,199 +0,0 @@
-#							-*- shell-script -*-
-#
-# Copyright by The HDF Group.
-# Copyright by the Board of Trustees of the University of Illinois.
-# All rights reserved.
-#
-# This file is part of HDF5.  The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the files COPYING and Copyright.html.  COPYING can be found at the root
-# of the source code distribution tree; Copyright.html can be found at the
-# root level of an installed copy of the electronic HDF5 document set and
-# is linked from the top-level documents page.  It can also be found at
-# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
-# access to either file, you may request a copy from help at hdfgroup.org.
-
-
-# This file is part of the HDF5 build script.  It is processed shortly
-# after configure starts and defines, among other things, flags for
-# the various compile modes.
-
-
-#----------------------------------------------------------------------------
-# Compiler flags. The CPPFLAGS values should not include package debug
-# flags like `-DH5G_DEBUG' since these are added with the
-# `--enable-debug' switch of configure.
-#----------------------------------------------------------------------------
-
-
-# Choosing a C Compiler
-# ---------------------
-#
-# The user should be able to specify the compiler by setting the CC
-# environment variable to the name of the compiler and any switches it 
-# requires for proper operation.  If CC is unset then this script may
-# set it.  If CC is unset by time this script completes then configure 
-# will try `gcc' and `cc' in that order (perhaps some others too).
-#
-# Note: Code later in this file may depend on the value of $CC_BASENAME
-#       in order to distinguish between different compilers when
-#       deciding which compiler command-line switches to use.  This
-#       variable is set based on the incoming value of $CC and is only
-#       used within this file.
-
-if test "X-" =  "X-$CC"; then
-  CC=cc
-  CC_BASENAME=cc
-fi
-# no need to use RANLIB
-RANLIB=:
-
-
-# C Compiler and Preprocessor Flags
-# ---------------------------------
-#
-# Flags that end with `_CFLAGS' are always passed to the compiler.
-# Flags that end with `_CPPFLAGS' are passed to the compiler when
-# compiling but not when linking.
-#
-# DEBUG_CFLAGS		Flags to pass to the compiler to create a
-# DEBUG_CPPFLAGS	library suitable for use with debugging
-#			tools. Usually this list will exclude
-#			optimization switches (like `-O') and include
-#			switches that turn on symbolic debugging
-#			support (like `-g').
-#
-# PROD_CFLAGS		Flags to pass to the compiler to create a
-# PROD_CPPFLAGS		production version of the library.  These
-#			usualy exclude symbolic debugging switches
-#			(like `-g') and include optimization switches
-#			(like `-O').
-#
-# PROFILE_CFLAGS	Flags to pass to the compiler to create a
-# PROFILE_CPPFLAGS	library suitable for performance testing (like 
-# 			`-pg').  This may or may not include debugging 
-# 			or production flags.
-#
-# H5_CFLAGS		Flags can be added to this variable which
-#			might already be partially initialized.  These 
-#			flags will always be passed to the compiler
-#			and should include switches to turn on full
-#			warnings.  HDF5 attempts to be ANSI and Posix
-#			compliant and employ good programming
-#			practices resulting in few if any
-#			warnings.
-#
-#			Warning flags do not have to be added to H5_CFLAGS
-#			variable if the compiler is the GNU gcc
-#			compiler or a descendent of gcc such as EGCS or PGCC.
-#
-# AM_CFLAGS             Flags added directly into this variable will
-#                       be propogated to the compiler wrapper scripts (h5cc,
-#                       h5c++, et cetera) in addition to being used to compile 
-#                       the library.
-#
-# These flags should be set according to the compiler being used.
-# There are two ways to check the compiler.  You can try using `-v' or 
-# `--version' to see if the compiler will print a version string.  You 
-# can use the value of $CC_BASENAME which is the base name of the
-# first word in $CC (note that the value of CC may have changed
-# above).
-
-case $CC_BASENAME in
-  gcc)
-    H5_CFLAGS="$H5_CFLAGS -Wsign-compare" #Only works for some versions
-    DEBUG_CFLAGS="-g -fverbose-asm"
-    DEBUG_CPPFLAGS=
-    PROD_CFLAGS="-O3 -fomit-frame-pointer"
-    PROD_CPPFLAGS=
-    PROFILE_CFLAGS="-pg"
-    PROFILE_CPPFLAGS=
-    ;;
-
-  cc)
-    H5_CFLAGS="$H5_CFLAGS"
-    DEBUG_CFLAGS="-g -h zero"
-    DEBUG_CPPFLAGS=
-    PROD_CFLAGS="-O2 -h scalar0 -h vector0 -h task1"
-    PROD_CPPFLAGS=
-    PROFILE_CFLAGS="-pg"
-    PROFILE_CPPFLAGS=
-    ;;
-
-  *)
-    H5_CFLAGS="$H5_CFLAGS -ansi"
-    DEBUG_CFLAGS="-g"
-    DEBUG_CPPFLAGS=
-    PROD_CFLAGS="-O"
-    PROD_CPPFLAGS=
-    PROFILE_CFLAGS="-pg"
-    PROFILE_CPPFLAGS=
-    ;;
-esac
-
-
-# Overriding Configure Tests
-# --------------------------
-#
-# Values for overriding configuration tests when cross compiling.
-# This includes compiling on some machines where the serial front end
-# compiles for a parallel back end.
-
-# Set this to `yes' or `no' depending on whether the target is big
-# endian or little endian.
-#ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
-
-# Set this to the width required by printf() to print type `long
-# long'.  For instance, if the format would be `%lld' then set it to
-# `ll' or if the format would be `%qd' set it to `q'.
-#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
-
-# Hard set the flag to indicate that converting denormalized floating-point
-# values doesn't work.
-hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'}
-
-# The default Fortran 90 compiler
-
-if test "X-" = "X-$FC"; then
-  FC=f90
-fi
-
-if test "X-" = "X-$f9x_flags_set"; then
-  F9XSUFFIXFLAG=""
-  FSEARCH_DIRS=""
-  H5_FCFLAGS="$H5_FCFLAGS -dp"
-  DEBUG_FCFLAGS="-dp"
-  PROD_FCFLAGS="-dp"
-  PROFILE_FCFLAGS="-dp"
-  f9x_flags_set=yes
-fi
-
-# The default C++ compiler
-
-if test -z "$CXX"; then
-  CXX="CC"
-  CXX_BASENAME=CC
-fi
-
-
-case $CXX_BASENAME in
-  g++)
-    H5_CXXFLAGS="$H5_CXXFLAGS -Wsign-compare" #Only works for some versions
-    DEBUG_CXXFLAGS="-g -fverbose-asm"
-    DEBUG_CPPFLAGS=
-    PROD_CXXFLAGS="-O3 -fomit-frame-pointer"
-    PROD_CPPFLAGS=
-    PROFILE_CXXFLAGS="-pg"
-    PROFILE_CPPFLAGS=
-    ;;
-
-  *)
-    H5_CXXFLAGS="$H5_CXXFLAGS -h instantiate=used"
-    DEBUG_CXXFLAGS="-g"
-    DEBUG_CPPFLAGS=
-    PROD_CXXFLAGS="-O"
-    PROD_CPPFLAGS=
-    PROFILE_CXXFLAGS="-pg"
-    PROFILE_CPPFLAGS=
-    ;;
-esac
diff --git a/config/x86_64-redstorm-linux-gnu b/config/x86_64-redstorm-linux-gnu
deleted file mode 100644
index 76f9711..0000000
--- a/config/x86_64-redstorm-linux-gnu
+++ /dev/null
@@ -1,164 +0,0 @@
-#							-*- shell-script -*-
-#
-# Copyright by The HDF Group.
-# Copyright by the Board of Trustees of the University of Illinois.
-# All rights reserved.
-#
-# This file is part of HDF5.  The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the files COPYING and Copyright.html.  COPYING can be found at the root
-# of the source code distribution tree; Copyright.html can be found at the
-# root level of an installed copy of the electronic HDF5 document set and
-# is linked from the top-level documents page.  It can also be found at
-# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
-# access to either file, you may request a copy from help at hdfgroup.org.
-
-
-# This file is part of the HDF5 build script.  It is processed shortly
-# after configure starts and defines, among other things, flags for
-# the various compile modes.
-#
-# See BlankForm in this directory for details.
-
-# This is for the ASCI RED STORM machine
-
-# Define RUNPARALLEL and RUNSERIAL if parallel mode is enabled or a parallel
-# compiler is used.
-if test "X-$enable_parallel" = "X-yes" -o X-$CC_BASENAME = X-mpicc; then
-    RUNSERIAL=${RUNSERIAL:-"yod -sz 1"}
-    RUNPARALLEL=${RUNPARALLEL:-"yod -sz 3"}
-    # Disable stream-vfd option.  It does not work in parallel mode.
-    enable_stream_vfd="${enable_stream_vfd:-no}"
-    # Turn off shared lib option.  It does not work in parallel mode.
-    enable_shared="${enable_shared:-no}"
-fi
-
-H5_CFLAGS="$H5_CFLAGS -DRED_STORM"
-
-# What compiler flags should be used for code development?
-DEBUG_CFLAGS=-g
-DEBUG_CPPFLAGS=
-
-# What compiler flags should be used for building a production
-# library?
-PROD_CFLAGS=-O
-PROD_CPPFLAGS=
-
-# What compiler flags enable code profiling?
-PROFILE_CFLAGS=-pg
-PROFILE_CPPFLAGS=
-
-# Set this to the width required by printf() to print type `long
-# long'.  For instance, if the format would be `%lld' then set it to
-# `ll' or if the format would be `%qd' set it to `q'.
-hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
-
-# Cache the sizeof of the following types to save configure time.
-# These are verified in test/tconfig in case they change.
-ac_cv_type_char=${ac_cv_type_char=yes}
-ac_cv_sizeof_char=${ac_cv_sizeof_char='1'}
-ac_cv_type_short=${ac_cv_type_short=yes}
-ac_cv_sizeof_short=${ac_cv_sizeof_short='2'}
-ac_cv_type_int=${ac_cv_type_int=yes}
-ac_cv_sizeof_int=${ac_cv_sizeof_int='4'}
-ac_cv_type_long=${ac_cv_type_long=yes}
-ac_cv_sizeof_long=${ac_cv_sizeof_long='8'}
-ac_cv_type_float=${ac_cv_type_float=yes}
-ac_cv_sizeof_float=${ac_cv_sizeof_float='4'}
-ac_cv_type_double=${ac_cv_type_double=yes}
-ac_cv_sizeof_double=${ac_cv_sizeof_double='8'}
-ac_cv_type_long_double=${ac_cv_type_long_double=yes}
-# no cache for long double which varies in size in different compilers.
-# gcc defines it as 12 bytes but pgcc defines it as 8 bytes.
-#ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double='8'}
-ac_cv_type_long_long=${ac_cv_type_long_long=yes}
-ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long='8'}
-ac_cv_type_size_t=${ac_cv_type_size_t=yes}
-ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t='8'}
-ac_cv_type_ssize_t=${ac_cv_type_ssize_t=yes}
-ac_cv_sizeof_ssize_t=${ac_cv_sizeof_ssize_t='8'}
-ac_cv_type_off_t=${ac_cv_type_off_t=yes}
-ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t='8'}
-
-# Hard set sizeof of the following types to 0 because they are not supported.
-#ac_cv_type___int64=${ac_cv_type___int64=no}
-#ac_cv_sizeof___int64=${ac_cv_sizeof___int64='0'}
-
-# Hard set malloc of zero bytes to no because it does not work.
-hdf5_cv_malloc_works=${hdf5_cv_malloc_works='no'}
-
-# Cache the sizeof of the following types to save configure time.
-# These are verified in test/tconfig in case they change.
-ac_cv_type_int8_t=${ac_cv_type_int8_t=yes}
-ac_cv_type_int16_t=${ac_cv_type_int16_t=yes}
-ac_cv_type_int32_t=${ac_cv_type_int32_t=yes}
-ac_cv_type_int64_t=${ac_cv_type_int64_t=yes}
-ac_cv_type_uint8_t=${ac_cv_type_uint8_t=yes}
-ac_cv_type_uint16_t=${ac_cv_type_uint16_t=yes}
-ac_cv_type_uint32_t=${ac_cv_type_uint32_t=yes}
-ac_cv_type_uint64_t=${ac_cv_type_uint64_t=yes}
-ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t='1'}
-ac_cv_sizeof_int16_t=${ac_cv_sizeof_int16_t='2'}
-ac_cv_sizeof_int32_t=${ac_cv_sizeof_int32_t='4'}
-ac_cv_sizeof_int64_t=${ac_cv_sizeof_int64_t='8'}
-ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t='1'}
-ac_cv_sizeof_uint16_t=${ac_cv_sizeof_uint16_t='2'}
-ac_cv_sizeof_uint32_t=${ac_cv_sizeof_uint32_t='4'}
-ac_cv_sizeof_uint64_t=${ac_cv_sizeof_uint64_t='8'}
-
-# Cache the sizeof of the following types to save configure time.
-# These are verified in test/tconfig in case they change.
-ac_cv_type_int_least8_t=${ac_cv_type_int_least8_t=yes}
-ac_cv_type_int_least16_t=${ac_cv_type_int_least16_t=yes}
-ac_cv_type_int_least32_t=${ac_cv_type_int_least32_t=yes}
-ac_cv_type_int_least64_t=${ac_cv_type_int_least64_t=yes}
-ac_cv_type_uint_least8_t=${ac_cv_type_uint_least8_t=yes}
-ac_cv_type_uint_least16_t=${ac_cv_type_uint_least16_t=yes}
-ac_cv_type_uint_least32_t=${ac_cv_type_uint_least32_t=yes}
-ac_cv_type_uint_least64_t=${ac_cv_type_uint_least64_t=yes}
-ac_cv_sizeof_int_least8_t=${ac_cv_sizeof_int_least8_t='1'}
-ac_cv_sizeof_int_least16_t=${ac_cv_sizeof_int_least16_t='2'}
-ac_cv_sizeof_int_least32_t=${ac_cv_sizeof_int_least32_t='4'}
-ac_cv_sizeof_int_least64_t=${ac_cv_sizeof_int_least64_t='8'}
-ac_cv_sizeof_uint_least8_t=${ac_cv_sizeof_uint_least8_t='1'}
-ac_cv_sizeof_uint_least16_t=${ac_cv_sizeof_uint_least16_t='2'}
-ac_cv_sizeof_uint_least32_t=${ac_cv_sizeof_uint_least32_t='4'}
-ac_cv_sizeof_uint_least64_t=${ac_cv_sizeof_uint_least64_t='8'}
-
-# Cache the sizeof of the following types to save configure time.
-# These are verified in test/tconfig in case they change.
-ac_cv_type_int_fast8_t=${ac_cv_type_int_fast8_t=yes}
-ac_cv_type_int_fast16_t=${ac_cv_type_int_fast16_t=yes}
-ac_cv_type_int_fast32_t=${ac_cv_type_int_fast32_t=yes}
-ac_cv_type_int_fast64_t=${ac_cv_type_int_fast64_t=yes}
-ac_cv_type_uint_fast8_t=${ac_cv_type_uint_fast8_t=yes}
-ac_cv_type_uint_fast16_t=${ac_cv_type_uint_fast16_t=yes}
-ac_cv_type_uint_fast32_t=${ac_cv_type_uint_fast32_t=yes}
-ac_cv_type_uint_fast64_t=${ac_cv_type_uint_fast64_t=yes}
-ac_cv_sizeof_int_fast8_t=${ac_cv_sizeof_int_fast8_t='1'}
-ac_cv_sizeof_int_fast16_t=${ac_cv_sizeof_int_fast16_t='8'}
-ac_cv_sizeof_int_fast32_t=${ac_cv_sizeof_int_fast32_t='8'}
-ac_cv_sizeof_int_fast64_t=${ac_cv_sizeof_int_fast64_t='8'}
-ac_cv_sizeof_uint_fast8_t=${ac_cv_sizeof_uint_fast8_t='1'}
-ac_cv_sizeof_uint_fast16_t=${ac_cv_sizeof_uint_fast16_t='8'}
-ac_cv_sizeof_uint_fast32_t=${ac_cv_sizeof_uint_fast32_t='8'}
-ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t='8'}
-
-hdf5_cv_system_scope_threads=${hdf5_cv_system_scope_threads="no"}
-
-# Hard set MPI_File_set_size() working for files over 2GB to yes
-hdf5_cv_mpi_file_set_size_big=${hdf5_cv_mpi_file_set_size_big='yes'}
-
-# Hard set variables for v1.7 and higher.
-# Set gettimeofday_tz to yes.
-hdf5_cv_gettimeofday_tz=${hdf5_cv_gettimeofday_tz='yes'}
-hdf5_cv_convert_denormal_float=${hdf5_cv_convert_denormal_float='no'}
-hdf5_cv_fp_to_ullong_bottom_bit_works=${hdf5_cv_fp_to_ullong_bottom_bit_works='no'}
-hdf5_cv_fp_to_ullong_right_maximum=${hdf5_cv_fp_to_ullong_right_maximum='yes'}
-hdf5_cv_ldouble_to_uint_works=${hdf5_cv_ldouble_to_uint_works='yes'}
-hdf5_cv_sw_ldouble_to_integer_works=${hdf5_cv_sw_ldouble_to_integer_works='yes'}
-hdf5_cv_sw_ulong_to_fp_bottom_bit_works=${hdf5_cv_sw_ulong_to_fp_bottom_bit_works='no'}
-hdf5_cv_ullong_to_fp_cast_works=${hdf5_cv_ullong_to_fp_cast_works='yes'}
-hdf5_cv_ullong_to_ldouble_precision_works=${hdf5_cv_ullong_to_ldouble_precision_works='yes'}
-hdf5_cv_vsnprintf_works=${hdf5_cv_vsnprintf_works='yes'}
-hdf5_cv_fp_to_integer_overflow_works=${hdf5_cv_fp_to_integer_overflow_works='yes'}
diff --git a/configure b/configure
index 8d26a2a..89151b5 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.ac Id: configure.ac 27055 2015-05-12 18:35:09Z epourmal .
+# From configure.ac Id: configure.ac 28279 2015-11-04 22:29:54Z lrknox .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for HDF5 1.8.15-patch1.
+# Generated by GNU Autoconf 2.69 for HDF5 1.8.16.
 #
 # Report bugs to <help at hdfgroup.org>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='HDF5'
 PACKAGE_TARNAME='hdf5'
-PACKAGE_VERSION='1.8.15-patch1'
-PACKAGE_STRING='HDF5 1.8.15-patch1'
+PACKAGE_VERSION='1.8.16'
+PACKAGE_STRING='HDF5 1.8.16'
 PACKAGE_BUGREPORT='help at hdfgroup.org'
 PACKAGE_URL=''
 
@@ -1473,7 +1473,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures HDF5 1.8.15-patch1 to adapt to many kinds of systems.
+\`configure' configures HDF5 1.8.16 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1543,7 +1543,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of HDF5 1.8.15-patch1:";;
+     short | recursive ) echo "Configuration of HDF5 1.8.16:";;
    esac
   cat <<\_ACEOF
 
@@ -1576,7 +1576,9 @@ Optional Features:
   --disable-sharedlib-rpath
                           Disable use of the '=Wl,-rpath' linker option
   --enable-production     Determines how to run the compiler.
-  --enable-threadsafe     Enable thread-safe capability
+  --enable-threadsafe     Enable thread-safe capability. Not compatible with
+                          the high-level library, Fortran, or C++ wrappers.
+                          [default=no]
   --enable-debug=all      Turn on debugging in all packages. One may also
                           specify a comma-separated list of package names
                           without the leading H5 or the word no. The default
@@ -1731,7 +1733,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-HDF5 configure 1.8.15-patch1
+HDF5 configure 1.8.16
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2668,7 +2670,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by HDF5 $as_me 1.8.15-patch1, which was
+It was created by HDF5 $as_me 1.8.16, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3539,7 +3541,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='hdf5'
- VERSION='1.8.15-patch1'
+ VERSION='1.8.16'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3725,11 +3727,16 @@ ac_config_commands="$ac_config_commands pubconf"
 ## configure is currently running by using the --host=foo flag.
 ## For machines on which HDF5 is often configured, it can be convenient
 ## to specify the name of the machine rather than its canonical type.
-case $host_alias in
-  redstorm)
-    host_alias=x86_64-redstorm-linux-gnu
-    ;;
-esac
+##
+## There are currently no hosts, but if there were they would be
+## listed by hostname and the alias would point to a file in
+## the config directory:
+##
+##case $host_alias in
+##  <some host>)
+##    host_alias=<config file in config directory>
+##    ;;
+##esac
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
@@ -3968,14 +3975,8 @@ case $host_os in
   freebsd*)
     host_os_novers=freebsd
     ;;
-  osf4.*)
-    host_os_novers=osf4.x
-    ;;
-  osf5.*)
-    host_os_novers=osf5.x
-    ;;
-  solaris2.*)
-    host_os_novers=solaris2.x
+  solaris*)
+    host_os_novers=solaris
     ;;
   *)
     host_os_novers=$host_os
@@ -7739,23 +7740,6 @@ fi
 
 
 ## ----------------------------------------------------------------------
-## Shared libraries are not currently supported under Cygwin, so configure
-## disables them unless --enable-unsupported has been supplied by the user.
-
-if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
-  case "`uname`" in
-    CYGWIN*)
-      if test "X${enable_shared}" = "Xyes"; then
-        echo '    warning: shared libraries are not supported on Cygwin!'
-        echo '    disabling shared libraries'
-        echo '    use --enable-unsupported to override this warning and keep shared libraries enabled'
-      fi
-      enable_shared="no"
-      ;;
-  esac
-fi
-
-## ----------------------------------------------------------------------
 ## Create libtool.  If shared/static libraries are going to be enabled
 ## or disabled, it should happen before these macros.
 
@@ -21452,8 +21436,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-
-
 ## ----------------------------------------------------------------------
 ## Check if we should install only statically linked executables.
 ##   This check needs to occur after libtool is initialized because
@@ -21722,116 +21704,6 @@ _ACEOF
 fi
 
 
-if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then
-  ## ...for Solaris
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
-$as_echo_n "checking for socket in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_socket+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_socket=yes
-else
-  ac_cv_lib_socket_socket=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
-$as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xdr_int in -lnsl" >&5
-$as_echo_n "checking for xdr_int in -lnsl... " >&6; }
-if ${ac_cv_lib_nsl_xdr_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xdr_int ();
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return xdr_int ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_nsl_xdr_int=yes
-else
-  ac_cv_lib_nsl_xdr_int=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_xdr_int" >&5
-$as_echo "$ac_cv_lib_nsl_xdr_int" >&6; }
-if test "x$ac_cv_lib_nsl_xdr_int" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-fi
-
-fi
-
 ## ----------------------------------------------------------------------
 ## Check for system header files.
 ##
@@ -22183,57 +22055,6 @@ done
     ;;
 esac
 
-case "$host" in
-  alpha*-dec*-osf*)
-    ## The <sys/sysinfo.h> and <sys/proc.h> are needed on the DEC
-    ## Alpha to turn off UAC fixing. We do *not* attempt to
-    ## locate these files on other systems because there are too
-    ## many problems with including them.
-    for ac_header in sys/sysinfo.h sys/proc.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-    ;;
-  mips*-sgi*)
-    ## The <sys/fpu.h> is needed on the SGI machines to turn off
-    ## denormalized floating-point values going to zero.  We do *not*
-    ## attempt to locate these files on other systems because there
-    ## may be problems with including them.
-    for ac_header in sys/fpu.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/fpu.h" "ac_cv_header_sys_fpu_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_fpu_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_FPU_H 1
-_ACEOF
-
-fi
-
-done
-
-    for ac_func in get_fpc_csr
-do :
-  ac_fn_c_check_func "$LINENO" "get_fpc_csr" "ac_cv_func_get_fpc_csr"
-if test "x$ac_cv_func_get_fpc_csr" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GET_FPC_CSR 1
-_ACEOF
-
-fi
-done
-
-    ;;
-esac
-
 ## ----------------------------------------------------------------------
 ## Some platforms require that all symbols are resolved when a library
 ## is linked. We can use the -no-undefined flag to tell libtool that
@@ -22476,21 +22297,6 @@ case "$host_cpu-$host_vendor-$host_os" in
     ## Need to add this so that O_DIRECT is visible for the direct
     ## VFD on Linux systems.
     H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS"
-
-    ## Also add BSD support on Linux systems, so <features.h> defines
-    ## __USE_BSD, which is required to get the prototype for strdup
-    ## defined correctly in <string.h> and snprintf & vsnprintf defined
-    ## correctly in <stdio.h>
-    ## Linking to the bsd-compat library is required as per the gcc manual:
-    ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
-    ## however, we do not do this since it breaks the big test on some
-    ## older platforms.
-    H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS"
-
-    ## _BSD_SOURCE is deprecated as of glibc 2.20, in favor of _DEFAULT_SOURCE.
-    ## To avoid warnings, we define _DEFAULT_SOURCE in addition to _BSD_SOURCE,
-    ## which should work for all versions of glibc.
-    H5_CPPFLAGS="-D_DEFAULT_SOURCE $H5_CPPFLAGS"
     ;;
 esac
 
@@ -25291,6 +25097,17 @@ if test "${enable_threadsafe+set}" = set; then :
 fi
 
 
+## --enable-threadsafe is incompatible with --enable-hl unless
+## --enable-unsupported has been specified on the configure line.
+##
+## Note that the high-level library is enabled by default so most
+## users will have to add --disable-hl to the configure options.
+if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
+  if test "X${HDF5_HL}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then
+    as_fn_error $? "The thread-safe library is incompatible with the high-level library. --disable-hl can be used to prevent building the high-level library (recommended). Alternatively, --enable-unsupported will allow building the high-level library, though this configuration is not supported by The HDF Group." "$LINENO" 5
+  fi
+fi
+
 ## The --enable-threadsafe flag is not compatible with --enable-cxx.
 ## If the user tried to specify both flags, throw an error, unless
 ## they also provided the --enable-unsupported flag.
@@ -25606,7 +25423,7 @@ fi
 
 ## ----------------------------------------------------------------------
 ## Check for MONOTONIC_TIMER support (used in clock_gettime).  This has
-## to be done after any POSIX/BSD defines to ensure that the test gets
+## to be done after any POSIX defines to ensure that the test gets
 ## the correct POSIX level on linux.
 ac_fn_c_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include <time.h>
 "
@@ -26154,48 +25971,60 @@ $as_echo "#define const /**/" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler understands  __inline__" >&5
+$as_echo_n "checking if the compiler understands  __inline__... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+static __inline__ void f(void){return;};
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_inline=$ac_kw
+
+$as_echo "#define HAVE___INLINE__ 1" >>confdefs.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  test "$ac_cv_c_inline" != no && break
-done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler understands __inline" >&5
+$as_echo_n "checking if the compiler understands __inline... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+static __inline void f(void){return;};
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define HAVE___INLINE 1" >>confdefs.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-case $ac_cv_c_inline in
-  inline | yes) ;;
-  *)
-    case $ac_cv_c_inline in
-      no) ac_val=;;
-      *) ac_val=$ac_cv_c_inline;;
-    esac
-    cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler understands inline" >&5
+$as_echo_n "checking if the compiler understands inline... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+static inline void f(void){return;};
 _ACEOF
-    ;;
-esac
+if ac_fn_c_try_compile "$LINENO"; then :
 
+$as_echo "#define HAVE_INLINE 1" >>confdefs.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__ extension" >&5
 $as_echo_n "checking for __attribute__ extension... " >&6; }
@@ -27448,58 +27277,6 @@ $as_echo "no" >&6; }
 fi
 
 ## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can handle converting
-## denormalized floating-point values.
-## (This flag should be set for all machines, except for the Crays, where
-## the cache value is set in it's config file)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting denormalized floating-point values is possible" >&5
-$as_echo_n "checking if converting denormalized floating-point values is possible... " >&6; }
-if ${hdf5_cv_convert_denormal_float+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_convert_denormal_float=yes
-fi
-
-
-if test ${hdf5_cv_convert_denormal_float} = "yes"; then
-
-$as_echo "#define CONVERT_DENORMAL_FLOAT 1" >>confdefs.h
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can handle converting
-## floating-point to long long values.
-## (This flag should be _unset_ for all machines, except for Windows, where
-## it's set in the custom Windows H5pubconf.h file)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting floating-point values to long long is not working" >&5
-$as_echo_n "checking if converting floating-point values to long long is not working... " >&6; }
-if ${hdf5_cv_convert_float_llong_not_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_convert_float_llong_not_works=no
-fi
-
-
-if test ${hdf5_cv_convert_float_llong_not_works} = "yes"; then
-
-$as_echo "#define HW_FP_TO_LLONG_NOT_WORKS 1" >>confdefs.h
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: true" >&5
-$as_echo "true" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: false" >&5
-$as_echo "false" >&6; }
-fi
-
-## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine has window style pathname,
 ## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/").
 ## (This flag should be _unset_ for all machines, except for Windows, where
@@ -27523,63 +27300,6 @@ $as_echo "no" >&6; }
 esac
 
 ## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can handle overflow converting
-## all floating-point to all integer types.
-## (This flag should be set for all machines, except for Cray X1 where
-## floating exception is generated when the floating-point value is greater
-## than the maximal integer value).
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if overflows normally converting floating-point to integer values" >&5
-$as_echo_n "checking if overflows normally converting floating-point to integer values... " >&6; }
-
-if ${hdf5_cv_fp_to_integer_overflow_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-    int main(void)
-    {
-        float  f = 2147483648.0f;
-        int    i;
-
-        i = (int)f;
-
-done:
-        exit(0);
-    }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_fp_to_integer_overflow_works=yes
-else
-  hdf5_cv_fp_to_integer_overflow_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-if test ${hdf5_cv_fp_to_integer_overflow_works} = "yes"; then
-
-$as_echo "#define FP_TO_INTEGER_OVERFLOW_WORKS 1" >>confdefs.h
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine is using a special algorithm to convert
 ## 'long double' to '(unsigned) long' values.  (This flag should only be set for
 ## the IBM Power6 Linux.  When the bit sequence of long double is
@@ -27606,59 +27326,72 @@ else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-        int main(void)
-        {
-            long double         ld = 20041683600089727.779961L;
-            long                ll;
-            unsigned long       ull;
-            unsigned char       s[16];
-            unsigned char       s2[8];
-            int                 ret = 1;
-
-            if(sizeof(long double) == 16 && sizeof(long) == 8) {
-                /*make sure the long double type has 16 bytes in size and
-                 * 11 bits of exponent.  If it is,
-                 *the bit sequence should be like below.  It's not
-                 *a decent way to check but this info isn't available. */
-                memcpy(s, &ld, 16);
-                if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 &&
-                    s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 &&
-                    s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) {
-
-                    /* Assign the hexadecimal value of long double type. */
-                    s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3;
-                    s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0;
-                    s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c;
-                    s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20;
-
-                    memcpy(&ld, s, 16);
-
-                    ll = (long)ld;
-                    memcpy(s2, &ll, 8);
-
-                    /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82
-                     * and gets wrong value 20041683600089730 on the IBM Power6 Linux.
-                     * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f
-                     * and gets the correct value 20041683600089727.  It uses some special
-                     * algorithm.  We're going to define the macro and skip the test until
-                     * we can figure out how they do it. */
-                    if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
-                       s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
-                        ret = 0;
+                #include <string.h>
 
-                    ull = (unsigned long)ld;
-                    memcpy(s2, &ull, 8);
+#ifdef FC_DUMMY_MAIN
+#ifndef FC_DUMMY_MAIN_EQ_F77
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int FC_DUMMY_MAIN() { return 1; }
+#endif
+#endif
+int
+main ()
+{
 
-                    /* The unsigned long is the same as signed long. */
-                    if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
-                       s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
-                        ret = 0;
+                long double         ld = 20041683600089727.779961L;
+                long                ll;
+                unsigned long       ull;
+                unsigned char       s[16];
+                unsigned char       s2[8];
+                int                 ret = 1;
+
+                if(sizeof(long double) == 16 && sizeof(long) == 8) {
+                    /*make sure the long double type has 16 bytes in size and
+                     * 11 bits of exponent.  If it is,
+                     *the bit sequence should be like below.  It's not
+                     *a decent way to check but this info isn't available. */
+                    memcpy(s, &ld, 16);
+                    if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 &&
+                        s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 &&
+                        s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) {
+
+                        /* Assign the hexadecimal value of long double type. */
+                        s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3;
+                        s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0;
+                        s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c;
+                        s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20;
+
+                        memcpy(&ld, s, 16);
+
+                        ll = (long)ld;
+                        memcpy(s2, &ll, 8);
+
+                        /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82
+                         * and gets wrong value 20041683600089730 on the IBM Power6 Linux.
+                         * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f
+                         * and gets the correct value 20041683600089727.  It uses some special
+                         * algorithm.  We're going to define the macro and skip the test until
+                         * we can figure out how they do it. */
+                        if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
+                           s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
+                            ret = 0;
+
+                        ull = (unsigned long)ld;
+                        memcpy(s2, &ull, 8);
+
+                        /* The unsigned long is the same as signed long. */
+                        if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
+                           s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
+                            ret = 0;
+                    }
                 }
-            }
+                exit(ret);
 
-    done:
-            exit(ret);
-        }
+  ;
+  return 0;
+}
 
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
@@ -27711,61 +27444,75 @@ else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-        int main(void)
-        {
-            long double         ld;
-            long                ll;
-            unsigned long       ull;
-            unsigned char       s[16];
-            int                 flag=0, ret=1;
+                #include <string.h>
 
-            /*Determine if long double has 16 byte in size, 11 bit exponent, and
-             *the bias is 0x3ff */
-            if(sizeof(long double) == 16) {
-                ld = 1.0L;
-                memcpy(s, &ld, 16);
-                if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
-                    s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00)
-                    flag = 1;
-            }
+#ifdef FC_DUMMY_MAIN
+#ifndef FC_DUMMY_MAIN_EQ_F77
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int FC_DUMMY_MAIN() { return 1; }
+#endif
+#endif
+int
+main ()
+{
 
-            if(flag==1 && sizeof(long)==8) {
-                ll = 0x003fffffffffffffL;
-                ld = (long double)ll;
-                memcpy(s, &ld, 16);
-                /* The library converts the value to 0x434fffffffffffff8000000000000000.
-                 * In decimal it is 18014398509481982.000000, one value short of the original.
-                 * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000.
-                 * The value is correct in decimal. It uses some special
-                 * algorithm.  We're going to define the macro and skip the test until
-                 * we can figure out how they do it. */
-                if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 &&
-                    s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
-                    s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
-                    s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
-                    ret = 0;
-            }
-            if(flag==1 && sizeof(unsigned long)==8) {
-                ull = 0xffffffffffffffffUL;
-                ld = (long double)ull;
-                memcpy(s, &ld, 16);
-                /* Use a different value from signed long to test. The problem is the same
-                 * for both long and unsigned long. The value is 18446744073709551615.
-                 * The library converts the value to 0x43effffffffffffffe000000000000000.
-                 * In decimal it's 18446744073709548544.000000, very different from the original.
-                 * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000.
-                 * The value is correct in decimal. It uses some special
-                 * algorithm.  We're going to define the macro and skip the test until
-                 * we can figure out how they do it. */
-                if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
-                    s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
-                    s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
-                    s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
-                    ret = 0;
-            }
-    done:
-            exit(ret);
-        }
+                long double         ld;
+                long                ll;
+                unsigned long       ull;
+                unsigned char       s[16];
+                int                 flag=0, ret=1;
+
+                /*Determine if long double has 16 byte in size, 11 bit exponent, and
+                 *the bias is 0x3ff */
+                if(sizeof(long double) == 16) {
+                    ld = 1.0L;
+                    memcpy(s, &ld, 16);
+                    if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
+                        s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00)
+                        flag = 1;
+                }
+
+                if(flag==1 && sizeof(long)==8) {
+                    ll = 0x003fffffffffffffL;
+                    ld = (long double)ll;
+                    memcpy(s, &ld, 16);
+                    /* The library converts the value to 0x434fffffffffffff8000000000000000.
+                     * In decimal it is 18014398509481982.000000, one value short of the original.
+                     * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000.
+                     * The value is correct in decimal. It uses some special
+                     * algorithm.  We're going to define the macro and skip the test until
+                     * we can figure out how they do it. */
+                    if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 &&
+                        s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
+                        s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
+                        s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
+                        ret = 0;
+                }
+                if(flag==1 && sizeof(unsigned long)==8) {
+                    ull = 0xffffffffffffffffUL;
+                    ld = (long double)ull;
+                    memcpy(s, &ld, 16);
+                    /* Use a different value from signed long to test. The problem is the same
+                     * for both long and unsigned long. The value is 18446744073709551615.
+                     * The library converts the value to 0x43effffffffffffffe000000000000000.
+                     * In decimal it's 18446744073709548544.000000, very different from the original.
+                     * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000.
+                     * The value is correct in decimal. It uses some special
+                     * algorithm.  We're going to define the macro and skip the test until
+                     * we can figure out how they do it. */
+                    if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
+                        s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
+                        s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
+                        s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
+                        ret = 0;
+                }
+                exit(ret);
+
+  ;
+  return 0;
+}
 
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
@@ -27794,12 +27541,16 @@ fi
 
 ## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine can accurately convert
-## 'long double' to '(unsigned) long long' values.  (This flag should be set for
-## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5.  When the bit sequence
-## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long
-## start to go wrong on these two machines.  Adjusting it higher to
-## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted
-## values wildly wrong.  This test detects this wrong behavior and disable the test.
+## 'long double' to '(unsigned) long long' values. This flag should
+## be set for all machines, except for IBM XL C compilers. Historically,
+## this has also been a problem with OS X (version 10.4) but not current
+## versions of that OS.
+##
+## When the bit sequence of long double is 0x4351ccf385ebc8a0bfcc2a3c...,
+## the values of (unsigned)long long start to go wrong on these
+## two machines.  Adjusting it higher to 0x4351ccf385ebc8a0dfcc... or
+## 0x4351ccf385ebc8a0ffcc... will make the converted values wildly wrong.
+## This test detects this wrong behavior and disable the test.
 ##
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to (unsigned) long long values" >&5
 $as_echo_n "checking if correctly converting long double to (unsigned) long long values... " >&6; }
@@ -27884,10 +27635,13 @@ fi
 
 ## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine can accurately convert
-## '(unsigned) long long' to 'long double' values.  (This flag should be set for
-## all machines, except for Mac OS 10.4, when the bit sequences are 003fff...,
-## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice
-## as big as they should be.
+## '(unsigned) long long' to 'long double' values. This flag should
+## be set for all machines, except for IBM XL C compilers. Historically,
+## this has also been a problem with OS X (version 10.4) but not current
+## versions of that OS.
+##
+## When the bit sequences are 003fff..., 007fff..., 00ffff..., 01ffff...,
+## ..., 7fffff..., the converted values are twice as big as they should be.
 ##
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting (unsigned) long long to long double values" >&5
 $as_echo_n "checking if correctly converting (unsigned) long long to long double values... " >&6; }
@@ -27974,32 +27728,6 @@ $as_echo "no" >&6; }
 fi
 
 ## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine generates bad code
-## for the H5VM_log2_gen() routine in src/H5VMprivate.h
-## (This flag should be set to no for all machines, except for SGI IRIX64,
-## where the cache value is set to yes in it's config file)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if bad code for log2 routine is generated" >&5
-$as_echo_n "checking if bad code for log2 routine is generated... " >&6; }
-if ${hdf5_cv_bad_log2_code_generated+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_bad_log2_code_generated=no
-fi
-
-
-if test ${hdf5_cv_bad_log2_code_generated} = "yes"; then
-
-$as_echo "#define BAD_LOG2_CODE_GENERATED 1" >>confdefs.h
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-## ----------------------------------------------------------------------
 ## Set some variables for general configuration information to be saved
 ## and installed with the libraries (used to generate libhdf5.settings).
 ##
@@ -28845,7 +28573,7 @@ Usage: $0 [OPTIONS]
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-HDF5 config.lt 1.8.15-patch1
+HDF5 config.lt 1.8.16
 configured by $0, generated by GNU Autoconf 2.69.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -30961,7 +30689,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by HDF5 $as_me 1.8.15-patch1, which was
+This file was extended by HDF5 $as_me 1.8.16, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -31027,7 +30755,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-HDF5 config.status 1.8.15-patch1
+HDF5 config.status 1.8.16
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -33402,21 +33130,14 @@ if test "X$HDF_CXX" = "Xyes"; then
   chmod 755 c++/src/h5c++
 fi
 
-## We don't want inline defined for C++ compilers
-## Don't worry about the C++ ifdef wrappers in the H5pubconf file, since
-## 'H5_inline' isn't a C++ keyword.
-cat >> src/H5config.h <<EOF
-
-#if defined(__cplusplus) && defined(inline)
-#undef inline
-#endif
-EOF
-
 ## HDF5 configure code created by autotools with gcc 4.9.2 is adding problematic
 ## linker flags:  -l with no library name; -l <libname>, specifically gfortran or m.
 ## This sed script corrects "-l <libname>" first and then "-l " with no library name.
 ## If the order is not preserved, all instances of "-l " will be removed.
-sed -e '/^postdeps/ s/-l \(a-zA-Z\)/-l\1/g' -e '/^postdeps/ s/-l //g' -i libtool
+## The -i option for sed doesn't work on some systems, so a temporary file is used
+## and used to overwrite the original libtool file.
+sed -e '/^postdeps/ s/-l \(a-zA-Z\)/-l\1/g' -e '/^postdeps/ s/-l //g' libtool > libtool_rev
+mv -f libtool_rev libtool
 
 ## show the configure settings
 cat src/libhdf5.settings
diff --git a/configure.ac b/configure.ac
index bdfcc11..e85fa50 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@
 ## ----------------------------------------------------------------------
 ## Initialize configure.
 ##
-AC_REVISION($Id: configure.ac 27055 2015-05-12 18:35:09Z epourmal $)
+AC_REVISION($Id: configure.ac 28279 2015-11-04 22:29:54Z lrknox $)
 AC_PREREQ([2.69])
 
 ## AC_INIT takes the name of the package, the version number, and an
@@ -26,9 +26,9 @@ AC_PREREQ([2.69])
 ## NOTE: Do not forget to change the version number here when we do a
 ## release!!!
 ##
-AC_INIT([HDF5], [1.8.15-patch1], [help at hdfgroup.org])
+AC_INIT([HDF5], [1.8.16], [help at hdfgroup.org])
 AC_CONFIG_SRCDIR([src/H5.c])
-AC_CONFIG_HEADER([src/H5config.h])
+AC_CONFIG_HEADERS([src/H5config.h])
 
 AC_CONFIG_AUX_DIR([bin])
 AC_CONFIG_MACRO_DIR([m4])
@@ -85,11 +85,16 @@ AC_CONFIG_COMMANDS([pubconf], [
 ## configure is currently running by using the --host=foo flag.
 ## For machines on which HDF5 is often configured, it can be convenient
 ## to specify the name of the machine rather than its canonical type.
-case $host_alias in
-  redstorm)
-    host_alias=x86_64-redstorm-linux-gnu
-    ;;
-esac
+##
+## There are currently no hosts, but if there were they would be
+## listed by hostname and the alias would point to a file in
+## the config directory:
+##
+##case $host_alias in
+##  <some host>)
+##    host_alias=<config file in config directory>
+##    ;;
+##esac
 
 AC_CANONICAL_HOST
 AC_SUBST([CPPFLAGS])
@@ -244,14 +249,8 @@ case $host_os in
   freebsd*)
     host_os_novers=freebsd
     ;;
-  osf4.*)
-    host_os_novers=osf4.x
-    ;;
-  osf5.*)
-    host_os_novers=osf5.x
-    ;;
-  solaris2.*)
-    host_os_novers=solaris2.x
+  solaris*)
+    host_os_novers=solaris
     ;;
   *)
     host_os_novers=$host_os
@@ -678,23 +677,6 @@ fi
 AM_CONDITIONAL([FORTRAN_SHARED_CONDITIONAL], [test "X$H5_FORTRAN_SHARED" = "Xyes"])
 
 ## ----------------------------------------------------------------------
-## Shared libraries are not currently supported under Cygwin, so configure
-## disables them unless --enable-unsupported has been supplied by the user.
-
-if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
-  case "`uname`" in
-    CYGWIN*)
-      if test "X${enable_shared}" = "Xyes"; then
-        echo '    warning: shared libraries are not supported on Cygwin!'
-        echo '    disabling shared libraries'
-        echo '    use --enable-unsupported to override this warning and keep shared libraries enabled'
-      fi
-      enable_shared="no"
-      ;;
-  esac
-fi
-
-## ----------------------------------------------------------------------
 ## Create libtool.  If shared/static libraries are going to be enabled
 ## or disabled, it should happen before these macros.
 LT_PREREQ([2.2])
@@ -704,8 +686,6 @@ LT_PREREQ([2.2])
 ## win32-dll - This will build clean dlls on win32 platforms.
 LT_INIT([dlopen,win32-dll])
 
-
-
 ## ----------------------------------------------------------------------
 ## Check if we should install only statically linked executables.
 ##   This check needs to occur after libtool is initialized because
@@ -847,12 +827,6 @@ esac
 AC_CHECK_LIB([m], [ceil])
 AC_CHECK_LIB([dl], [dlopen])
 
-if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then
-  ## ...for Solaris
-  AC_CHECK_LIB([socket], [socket])
-  AC_CHECK_LIB([nsl], [xdr_int])
-fi
-
 ## ----------------------------------------------------------------------
 ## Check for system header files.
 ##
@@ -889,24 +863,6 @@ case "`uname`" in
     ;;
 esac
 
-case "$host" in
-  alpha*-dec*-osf*)
-    ## The <sys/sysinfo.h> and <sys/proc.h> are needed on the DEC
-    ## Alpha to turn off UAC fixing. We do *not* attempt to
-    ## locate these files on other systems because there are too
-    ## many problems with including them.
-    AC_CHECK_HEADERS([sys/sysinfo.h sys/proc.h])
-    ;;
-  mips*-sgi*)
-    ## The <sys/fpu.h> is needed on the SGI machines to turn off
-    ## denormalized floating-point values going to zero.  We do *not*
-    ## attempt to locate these files on other systems because there
-    ## may be problems with including them.
-    AC_CHECK_HEADERS([sys/fpu.h])
-    AC_CHECK_FUNCS([get_fpc_csr])
-    ;;
-esac
-
 ## ----------------------------------------------------------------------
 ## Some platforms require that all symbols are resolved when a library
 ## is linked. We can use the -no-undefined flag to tell libtool that
@@ -984,21 +940,6 @@ case "$host_cpu-$host_vendor-$host_os" in
     ## Need to add this so that O_DIRECT is visible for the direct
     ## VFD on Linux systems.
     H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS"
-
-    ## Also add BSD support on Linux systems, so <features.h> defines
-    ## __USE_BSD, which is required to get the prototype for strdup
-    ## defined correctly in <string.h> and snprintf & vsnprintf defined
-    ## correctly in <stdio.h>
-    ## Linking to the bsd-compat library is required as per the gcc manual:
-    ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
-    ## however, we do not do this since it breaks the big test on some 
-    ## older platforms.
-    H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS"
-
-    ## _BSD_SOURCE is deprecated as of glibc 2.20, in favor of _DEFAULT_SOURCE.
-    ## To avoid warnings, we define _DEFAULT_SOURCE in addition to _BSD_SOURCE,
-    ## which should work for all versions of glibc.
-    H5_CPPFLAGS="-D_DEFAULT_SOURCE $H5_CPPFLAGS"
     ;;
 esac
 
@@ -1436,9 +1377,21 @@ AC_CACHE_SAVE
 AC_MSG_CHECKING([for thread safe support])
 AC_ARG_ENABLE([threadsafe],
               [AS_HELP_STRING([--enable-threadsafe],
-                              [Enable thread-safe capability])],
+                              [Enable thread-safe capability. Not compatible with the high-level library, Fortran, or C++ wrappers.
+                              [default=no]])],
               [THREADSAFE=$enableval])
 
+## --enable-threadsafe is incompatible with --enable-hl unless
+## --enable-unsupported has been specified on the configure line.
+##
+## Note that the high-level library is enabled by default so most
+## users will have to add --disable-hl to the configure options.
+if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
+  if test "X${HDF5_HL}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then
+    AC_MSG_ERROR([The thread-safe library is incompatible with the high-level library. --disable-hl can be used to prevent building the high-level library (recommended). Alternatively, --enable-unsupported will allow building the high-level library, though this configuration is not supported by The HDF Group.])
+  fi
+fi
+
 ## The --enable-threadsafe flag is not compatible with --enable-cxx.
 ## If the user tried to specify both flags, throw an error, unless
 ## they also provided the --enable-unsupported flag.
@@ -1543,7 +1496,7 @@ fi
 
 ## ----------------------------------------------------------------------
 ## Check for MONOTONIC_TIMER support (used in clock_gettime).  This has
-## to be done after any POSIX/BSD defines to ensure that the test gets
+## to be done after any POSIX defines to ensure that the test gets
 ## the correct POSIX level on linux.
 AC_CHECK_DECL([CLOCK_MONOTONIC],[have_clock_monotonic="yes"],[have_clock_monotonic="no"],[[#include <time.h>]])
 
@@ -1651,7 +1604,27 @@ AC_CHECK_FUNCS([tmpfile asprintf vasprintf vsnprintf waitpid])
 ## Check compiler characteristics
 ##
 AC_C_CONST
-AC_C_INLINE
+
+AC_MSG_CHECKING([if the compiler understands  __inline__])
+AC_COMPILE_IFELSE(
+    [AC_LANG_SOURCE([[static __inline__ void f(void){return;};]])],
+    [AC_DEFINE([HAVE___INLINE__], [1], [Define if the compiler understands __inline__]) AC_MSG_RESULT([yes])],
+    [AC_MSG_RESULT([no])]
+)
+
+AC_MSG_CHECKING([if the compiler understands __inline])
+AC_COMPILE_IFELSE(
+    [AC_LANG_SOURCE([[static __inline void f(void){return;};]])],
+    [AC_DEFINE([HAVE___INLINE], [1], [Define if the compiler understands __inline]) AC_MSG_RESULT([yes])],
+    [AC_MSG_RESULT([no])]
+)
+
+AC_MSG_CHECKING([if the compiler understands inline])
+AC_COMPILE_IFELSE(
+    [AC_LANG_SOURCE([[static inline void f(void){return;};]])],
+    [AC_DEFINE([HAVE_INLINE], [1], [Define if the compiler understands inline]) AC_MSG_RESULT([yes])],
+    [AC_MSG_RESULT([no])]
+)
 
 AC_MSG_CHECKING([for __attribute__ extension])
 AC_TRY_COMPILE(,[int __attribute__((unused)) x],
@@ -2261,40 +2234,6 @@ else
 fi
 
 ## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can handle converting
-## denormalized floating-point values.
-## (This flag should be set for all machines, except for the Crays, where
-## the cache value is set in it's config file)
-##
-AC_MSG_CHECKING([if converting denormalized floating-point values is possible])
-AC_CACHE_VAL([hdf5_cv_convert_denormal_float], [hdf5_cv_convert_denormal_float=yes])
-
-if test ${hdf5_cv_convert_denormal_float} = "yes"; then
-  AC_DEFINE([CONVERT_DENORMAL_FLOAT], [1],
-            [Define if your system can handle converting denormalized floating-point values.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can handle converting
-## floating-point to long long values.
-## (This flag should be _unset_ for all machines, except for Windows, where
-## it's set in the custom Windows H5pubconf.h file)
-##
-AC_MSG_CHECKING([if converting floating-point values to long long is not working])
-AC_CACHE_VAL([hdf5_cv_convert_float_llong_not_works], [hdf5_cv_convert_float_llong_not_works=no])
-
-if test ${hdf5_cv_convert_float_llong_not_works} = "yes"; then
-  AC_DEFINE([HW_FP_TO_LLONG_NOT_WORKS], [1],
-            [Define if your system can't handle converting floating-point values to long long.])
-  AC_MSG_RESULT([true])
-else
-  AC_MSG_RESULT([false])
-fi
-
-## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine has window style pathname,
 ## that is, "drive-letter:\" (e.g. "C:") or "drive-letter:/" (e.g. "C:/").
 ## (This flag should be _unset_ for all machines, except for Windows, where
@@ -2314,37 +2253,6 @@ case "`uname`" in
 esac
 
 ## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can handle overflow converting
-## all floating-point to all integer types.
-## (This flag should be set for all machines, except for Cray X1 where
-## floating exception is generated when the floating-point value is greater
-## than the maximal integer value).
-##
-AC_MSG_CHECKING([if overflows normally converting floating-point to integer values])
-
-AC_CACHE_VAL([hdf5_cv_fp_to_integer_overflow_works],
-    [AC_TRY_RUN([
-    int main(void)
-    {
-        float  f = 2147483648.0f;
-        int    i;
-
-        i = (int)f;
-
-done:
-        exit(0);
-    }
-    ], [hdf5_cv_fp_to_integer_overflow_works=yes], [hdf5_cv_fp_to_integer_overflow_works=no],)])
-
-if test ${hdf5_cv_fp_to_integer_overflow_works} = "yes"; then
-  AC_DEFINE([FP_TO_INTEGER_OVERFLOW_WORKS], [1],
-            [Define if your system can handle overflow converting floating-point to integer values.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine is using a special algorithm to convert
 ## 'long double' to '(unsigned) long' values.  (This flag should only be set for 
 ## the IBM Power6 Linux.  When the bit sequence of long double is 
@@ -2359,61 +2267,60 @@ if test ${ac_cv_sizeof_long_double} = 0; then
    hdf5_cv_ldouble_to_long_special=${hdf5_cv_ldouble_to_long_special=no}
 else
    AC_CACHE_VAL([hdf5_cv_ldouble_to_long_special],
-        [AC_TRY_RUN([
-        int main(void)
-        {
-            long double         ld = 20041683600089727.779961L;
-            long                ll;
-            unsigned long       ull;
-            unsigned char       s[16];
-            unsigned char       s2[8];
-            int                 ret = 1;
-            
-            if(sizeof(long double) == 16 && sizeof(long) == 8) {
-                /*make sure the long double type has 16 bytes in size and 
-                 * 11 bits of exponent.  If it is,
-                 *the bit sequence should be like below.  It's not 
-                 *a decent way to check but this info isn't available. */   
-                memcpy(s, &ld, 16);
-                if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 &&
-                    s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 &&
-                    s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) {
-
-                    /* Assign the hexadecimal value of long double type. */
-                    s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3;
-                    s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0;
-                    s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c;
-                    s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20;
-
-                    memcpy(&ld, s, 16);
-
-                    ll = (long)ld;
-                    memcpy(s2, &ll, 8);
-
-                    /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82
-                     * and gets wrong value 20041683600089730 on the IBM Power6 Linux.
-                     * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f
-                     * and gets the correct value 20041683600089727.  It uses some special
-                     * algorithm.  We're going to define the macro and skip the test until
-                     * we can figure out how they do it. */
-                    if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
-                       s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
-                        ret = 0;
-
-                    ull = (unsigned long)ld;
-                    memcpy(s2, &ull, 8);
-
-                    /* The unsigned long is the same as signed long. */
-                    if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
-                       s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
-                        ret = 0;
-                }    
-            }   
-            
-    done:
-            exit(ret);
-        }
-        ], [hdf5_cv_ldouble_to_long_special=yes], [hdf5_cv_ldouble_to_long_special=no],)])
+        [AC_RUN_IFELSE(
+            [AC_LANG_PROGRAM([
+                #include <string.h>
+            ],[[
+                long double         ld = 20041683600089727.779961L;
+                long                ll;
+                unsigned long       ull;
+                unsigned char       s[16];
+                unsigned char       s2[8];
+                int                 ret = 1;
+                
+                if(sizeof(long double) == 16 && sizeof(long) == 8) {
+                    /*make sure the long double type has 16 bytes in size and 
+                     * 11 bits of exponent.  If it is,
+                     *the bit sequence should be like below.  It's not 
+                     *a decent way to check but this info isn't available. */   
+                    memcpy(s, &ld, 16);
+                    if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 &&
+                        s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 &&
+                        s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) {
+
+                        /* Assign the hexadecimal value of long double type. */
+                        s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3;
+                        s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0;
+                        s[8]=0xbf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c;
+                        s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20;
+
+                        memcpy(&ld, s, 16);
+
+                        ll = (long)ld;
+                        memcpy(s2, &ll, 8);
+
+                        /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82
+                         * and gets wrong value 20041683600089730 on the IBM Power6 Linux.
+                         * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f
+                         * and gets the correct value 20041683600089727.  It uses some special
+                         * algorithm.  We're going to define the macro and skip the test until
+                         * we can figure out how they do it. */
+                        if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
+                           s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
+                            ret = 0;
+
+                        ull = (unsigned long)ld;
+                        memcpy(s2, &ull, 8);
+
+                        /* The unsigned long is the same as signed long. */
+                        if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
+                           s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
+                            ret = 0;
+                    }    
+                }   
+                exit(ret);
+        ]])]
+    , [hdf5_cv_ldouble_to_long_special=yes], [hdf5_cv_ldouble_to_long_special=no],)])
 fi
 
 if test ${hdf5_cv_ldouble_to_long_special} = "yes"; then
@@ -2438,63 +2345,63 @@ if test ${ac_cv_sizeof_long_double} = 0; then
    hdf5_cv_long_to_ldouble_special=${hdf5_cv_long_to_ldouble_special=no}
 else
    AC_CACHE_VAL([hdf5_cv_long_to_ldouble_special],
-        [AC_TRY_RUN([
-        int main(void)
-        {
-            long double         ld;
-            long                ll;
-            unsigned long       ull;
-            unsigned char       s[16];
-            int                 flag=0, ret=1;
-        
-            /*Determine if long double has 16 byte in size, 11 bit exponent, and
-             *the bias is 0x3ff */ 
-            if(sizeof(long double) == 16) { 
-                ld = 1.0L;
-                memcpy(s, &ld, 16);
-                if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
-                    s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) 
-                    flag = 1; 
-            }
-             
-            if(flag==1 && sizeof(long)==8) {
-                ll = 0x003fffffffffffffL;
-                ld = (long double)ll;
-                memcpy(s, &ld, 16);
-                /* The library converts the value to 0x434fffffffffffff8000000000000000.
-                 * In decimal it is 18014398509481982.000000, one value short of the original.
-                 * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000.
-                 * The value is correct in decimal. It uses some special
-                 * algorithm.  We're going to define the macro and skip the test until
-                 * we can figure out how they do it. */
-                if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 &&
-                    s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
-                    s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
-                    s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
-                    ret = 0;
-            }        
-            if(flag==1 && sizeof(unsigned long)==8) {
-                ull = 0xffffffffffffffffUL;
-                ld = (long double)ull;
-                memcpy(s, &ld, 16);
-                /* Use a different value from signed long to test. The problem is the same
-                 * for both long and unsigned long. The value is 18446744073709551615.
-                 * The library converts the value to 0x43effffffffffffffe000000000000000.
-                 * In decimal it's 18446744073709548544.000000, very different from the original.
-                 * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000.
-                 * The value is correct in decimal. It uses some special
-                 * algorithm.  We're going to define the macro and skip the test until
-                 * we can figure out how they do it. */
-                if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
-                    s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
-                    s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
-                    s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
-                    ret = 0;
-            }        
-    done:
-            exit(ret);
-        }
-        ], [hdf5_cv_long_to_ldouble_special=yes], [hdf5_cv_long_to_ldouble_special=no],)])
+        [AC_RUN_IFELSE(
+            [AC_LANG_PROGRAM([
+                #include <string.h>
+            ],[[
+                long double         ld;
+                long                ll;
+                unsigned long       ull;
+                unsigned char       s[16];
+                int                 flag=0, ret=1;
+            
+                /*Determine if long double has 16 byte in size, 11 bit exponent, and
+                 *the bias is 0x3ff */ 
+                if(sizeof(long double) == 16) { 
+                    ld = 1.0L;
+                    memcpy(s, &ld, 16);
+                    if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
+                        s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00) 
+                        flag = 1; 
+                }
+                 
+                if(flag==1 && sizeof(long)==8) {
+                    ll = 0x003fffffffffffffL;
+                    ld = (long double)ll;
+                    memcpy(s, &ld, 16);
+                    /* The library converts the value to 0x434fffffffffffff8000000000000000.
+                     * In decimal it is 18014398509481982.000000, one value short of the original.
+                     * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000.
+                     * The value is correct in decimal. It uses some special
+                     * algorithm.  We're going to define the macro and skip the test until
+                     * we can figure out how they do it. */
+                    if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 &&
+                        s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
+                        s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
+                        s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
+                        ret = 0;
+                }        
+                if(flag==1 && sizeof(unsigned long)==8) {
+                    ull = 0xffffffffffffffffUL;
+                    ld = (long double)ull;
+                    memcpy(s, &ld, 16);
+                    /* Use a different value from signed long to test. The problem is the same
+                     * for both long and unsigned long. The value is 18446744073709551615.
+                     * The library converts the value to 0x43effffffffffffffe000000000000000.
+                     * In decimal it's 18446744073709548544.000000, very different from the original.
+                     * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000.
+                     * The value is correct in decimal. It uses some special
+                     * algorithm.  We're going to define the macro and skip the test until
+                     * we can figure out how they do it. */
+                    if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
+                        s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
+                        s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
+                        s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
+                        ret = 0;
+                }        
+                exit(ret);
+        ]])]
+    , [hdf5_cv_long_to_ldouble_special=yes], [hdf5_cv_long_to_ldouble_special=no],)])
 fi
 
 if test ${hdf5_cv_long_to_ldouble_special} = "yes"; then
@@ -2507,12 +2414,16 @@ fi
 
 ## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine can accurately convert
-## 'long double' to '(unsigned) long long' values.  (This flag should be set for 
-## all machines, except for Mac OS 10.4 and SGI IRIX64 6.5.  When the bit sequence
-## of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long
-## start to go wrong on these two machines.  Adjusting it higher to 
-## 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted 
-## values wildly wrong.  This test detects this wrong behavior and disable the test.  
+## 'long double' to '(unsigned) long long' values. This flag should
+## be set for all machines, except for IBM XL C compilers. Historically,
+## this has also been a problem with OS X (version 10.4) but not current
+## versions of that OS.
+##
+## When the bit sequence of long double is 0x4351ccf385ebc8a0bfcc2a3c...,
+## the values of (unsigned)long long start to go wrong on these
+## two machines.  Adjusting it higher to 0x4351ccf385ebc8a0dfcc... or
+## 0x4351ccf385ebc8a0ffcc... will make the converted values wildly wrong.
+## This test detects this wrong behavior and disable the test.
 ##
 AC_MSG_CHECKING([if correctly converting long double to (unsigned) long long values])
 
@@ -2571,10 +2482,13 @@ fi
 
 ## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine can accurately convert
-## '(unsigned) long long' to 'long double' values.  (This flag should be set for 
-## all machines, except for Mac OS 10.4, when the bit sequences are 003fff...,
-## 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice
-## as big as they should be. 
+## '(unsigned) long long' to 'long double' values. This flag should
+## be set for all machines, except for IBM XL C compilers. Historically,
+## this has also been a problem with OS X (version 10.4) but not current
+## versions of that OS.
+##
+## When the bit sequences are 003fff..., 007fff..., 00ffff..., 01ffff...,
+## ..., 7fffff..., the converted values are twice as big as they should be.
 ##
 AC_MSG_CHECKING([if correctly converting (unsigned) long long to long double values])
 
@@ -2635,23 +2549,6 @@ else
 fi
 
 ## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine generates bad code
-## for the H5VM_log2_gen() routine in src/H5VMprivate.h
-## (This flag should be set to no for all machines, except for SGI IRIX64,
-## where the cache value is set to yes in it's config file)
-##
-AC_MSG_CHECKING([if bad code for log2 routine is generated])
-AC_CACHE_VAL([hdf5_cv_bad_log2_code_generated], [hdf5_cv_bad_log2_code_generated=no])
-
-if test ${hdf5_cv_bad_log2_code_generated} = "yes"; then
-  AC_DEFINE([BAD_LOG2_CODE_GENERATED], [1],
-            [Define if your system generates wrong code for log2 routine.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
 ## Set some variables for general configuration information to be saved
 ## and installed with the libraries (used to generate libhdf5.settings).
 ##
@@ -3125,21 +3022,14 @@ if test "X$HDF_CXX" = "Xyes"; then
   chmod 755 c++/src/h5c++
 fi
 
-## We don't want inline defined for C++ compilers
-## Don't worry about the C++ ifdef wrappers in the H5pubconf file, since
-## 'H5_inline' isn't a C++ keyword.
-cat >> src/H5config.h <<EOF
-
-#if defined(__cplusplus) && defined(inline)
-#undef inline
-#endif
-EOF
-
 ## HDF5 configure code created by autotools with gcc 4.9.2 is adding problematic
 ## linker flags:  -l with no library name; -l <libname>, specifically gfortran or m.
 ## This sed script corrects "-l <libname>" first and then "-l " with no library name.
 ## If the order is not preserved, all instances of "-l " will be removed.
-sed -e '/^postdeps/ s/-l \([a-zA-Z]\)/-l\1/g' -e '/^postdeps/ s/-l //g' -i libtool
+## The -i option for sed doesn't work on some systems, so a temporary file is used
+## and used to overwrite the original libtool file.
+sed -e '/^postdeps/ s/-l \([a-zA-Z]\)/-l\1/g' -e '/^postdeps/ s/-l //g' libtool > libtool_rev
+mv -f libtool_rev libtool
 
 ## show the configure settings
 cat src/libhdf5.settings
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 1f33f04..7953161 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -38,18 +38,32 @@ set (examples
 
 foreach (example ${examples})
   add_executable (${example} ${HDF5_EXAMPLES_SOURCE_DIR}/${example}.c)
-  TARGET_NAMING (${example} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (${example} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (${example} STATIC)
+  TARGET_C_PROPERTIES (${example} STATIC " " " ")
   target_link_libraries (${example} ${HDF5_LIB_TARGET})
   set_target_properties (${example} PROPERTIES FOLDER examples)
+  if (BUILD_SHARED_LIBS)
+    add_executable (${example}-shared ${HDF5_EXAMPLES_SOURCE_DIR}/${example}.c)
+    TARGET_NAMING (${example}-shared SHARED)
+    TARGET_C_PROPERTIES (${example}-shared SHARED " " " ")
+    target_link_libraries (${example}-shared ${HDF5_LIBSH_TARGET})
+    set_target_properties (${example}-shared PROPERTIES FOLDER examples)
+  endif (BUILD_SHARED_LIBS)
 endforeach (example ${examples})
 
 if (H5_HAVE_PARALLEL)
   add_executable (ph5example ${HDF5_EXAMPLES_SOURCE_DIR}/ph5example.c)
-  TARGET_NAMING (ph5example ${LIB_TYPE})
-  TARGET_C_PROPERTIES (ph5example ${LIB_TYPE} " " " ")
+  TARGET_NAMING (ph5example STATIC)
+  TARGET_C_PROPERTIES (ph5example STATIC " " " ")
   target_link_libraries (ph5example ${HDF5_LIB_TARGET})
   set_target_properties (ph5example PROPERTIES FOLDER examples)
+  if (BUILD_SHARED_LIBS)
+    add_executable (ph5example-shared ${HDF5_EXAMPLES_SOURCE_DIR}/ph5example.c)
+    TARGET_NAMING (ph5example-shared SHARED)
+    TARGET_C_PROPERTIES (ph5example-shared SHARED " " " ")
+    target_link_libraries (ph5example-shared ${HDF5_LIBSH_TARGET})
+    set_target_properties (ph5example-shared PROPERTIES FOLDER examples)
+  endif (BUILD_SHARED_LIBS)
 endif (H5_HAVE_PARALLEL)
 
 if (BUILD_TESTING)
diff --git a/examples/CMakeTests.cmake b/examples/CMakeTests.cmake
index 5a756c8..42b42b3 100644
--- a/examples/CMakeTests.cmake
+++ b/examples/CMakeTests.cmake
@@ -5,6 +5,10 @@
 ##############################################################################
 ##############################################################################
   file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/red ${PROJECT_BINARY_DIR}/blue ${PROJECT_BINARY_DIR}/u2w)
+  if (BUILD_SHARED_LIBS)
+    file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5EX-shared")
+    file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/H5EX-shared/red ${PROJECT_BINARY_DIR}/H5EX-shared/blue ${PROJECT_BINARY_DIR}/H5EX-shared/u2w)
+  endif (BUILD_SHARED_LIBS)
 
   # Remove any output file left over from previous test run
   add_test (
@@ -56,6 +60,61 @@
     set (last_test "EXAMPLES-${example}")
   endforeach (example ${examples})
 
+  if (BUILD_SHARED_LIBS)
+    # Remove any output file left over from previous test run
+    add_test (
+        NAME EXAMPLES-shared-clear-objects
+        COMMAND    ${CMAKE_COMMAND}
+            -E remove 
+            Attributes.h5
+            btrees_file.h5
+            cmprss.h5
+            default_file.h5
+            dset.h5
+            extend.h5 
+            extlink_prefix_source.h5
+            extlink_source.h5
+            extlink_target.h5
+            group.h5
+            groups.h5
+            hard_link.h5
+            mount1.h5
+            mount2.h5
+            one_index_file.h5
+            only_dspaces_and_attrs_file.h5
+            only_huge_mesgs_file.h5
+            REF_REG.h5
+            refere.h5
+            SDS.h5
+            SDScompound.h5
+            SDSextendible.h5
+            Select.h5
+            separate_indexes_file.h5
+            small_lists_file.h5
+            soft_link.h5
+            subset.h5
+            unix2win.h5
+            blue/prefix_target.h5
+            red/prefix_target.h5
+            u2w/u2w_target.h5
+        WORKING_DIRECTORY
+            ${PROJECT_BINARY_DIR}/H5EX-shared
+    )
+    if (NOT "${last_test}" STREQUAL "")
+      set_tests_properties (EXAMPLES-shared-clear-objects PROPERTIES DEPENDS ${last_test})
+    endif (NOT "${last_test}" STREQUAL "")
+    set (last_test "EXAMPLES-shared-clear-objects")
+
+    foreach (example ${examples})
+      add_test (NAME EXAMPLES-shared-${example} COMMAND $<TARGET_FILE:${example}-shared>)
+      set_tests_properties (EXAMPLES-shared-${example} PROPERTIES WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/H5EX-shared)
+      if (NOT "${last_test}" STREQUAL "")
+        set_tests_properties (EXAMPLES-shared-${example} PROPERTIES DEPENDS ${last_test})
+      endif (NOT "${last_test}" STREQUAL "")
+      set (last_test "EXAMPLES-shared-${example}")
+    endforeach (example ${examples})
+  endif (BUILD_SHARED_LIBS)
+
 ### Windows pops up a modal permission dialog on this test
   if (H5_HAVE_PARALLEL AND NOT WIN32)
     add_test (NAME EXAMPLES-ph5example COMMAND $<TARGET_FILE:ph5example>)
@@ -63,4 +122,12 @@
       set_tests_properties (EXAMPLES-ph5example PROPERTIES DEPENDS ${last_test})
     endif (NOT "${last_test}" STREQUAL "")
     set (last_test "EXAMPLES-ph5example")
+    if (BUILD_SHARED_LIBS)
+      add_test (NAME EXAMPLES-shared-ph5example COMMAND $<TARGET_FILE:ph5example-shared>)
+      set_tests_properties (EXAMPLES-shared-ph5example PROPERTIES WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/H5EX-shared)
+      if (NOT "${last_test}" STREQUAL "")
+        set_tests_properties (EXAMPLES-shared-ph5example PROPERTIES DEPENDS ${last_test})
+      endif (NOT "${last_test}" STREQUAL "")
+      set (last_test "EXAMPLES-shared-ph5example")
+    endif (BUILD_SHARED_LIBS)
   endif (H5_HAVE_PARALLEL AND NOT WIN32)
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 5d0da93..450f9fb 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -82,8 +82,8 @@ CHECK_CLEANFILES+=$(EXTLINK_DIRS)
 
 # Example directory
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/c
-EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples
+EXAMPLEDIR=${DESTDIR}$(datarootdir)/hdf5_examples/c
+EXAMPLETOPDIR=${DESTDIR}$(datarootdir)/hdf5_examples
 
 # List dependencies for each program.  Normally, automake would take
 # care of this for us, but if we tell automake about the programs it
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 5d76be3..ce54e93 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -636,8 +636,8 @@ EXTLINK_DIRS = red blue u2w
 
 # Example directory
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/c
-EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples
+EXAMPLEDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/c
+EXAMPLETOPDIR = ${DESTDIR}$(datarootdir)/hdf5_examples
 @BUILD_SHARED_SZIP_CONDITIONAL_TRUE at LD_LIBRARY_PATH = $(LL_PATH)
 
 # Assume that all tests in this directory are examples, and tell
diff --git a/examples/README b/examples/README
index c8fd7d5..0550b15 100644
--- a/examples/README
+++ b/examples/README
@@ -3,7 +3,7 @@
 This directory contains example programs for the installed APIs and scripts to 
 compile and run them.  Examples in the c and hl/c subdirectories are always 
 installed, and those in fortan, hl/fortran, c++ and hl/c++ will be installed 
-when Fortran or C++ are enabled.
+when fortran or c++ are enabled.
 
 Running the run-all-ex.sh script in this directory will run the scripts and in 
 turn the examples in all the subdirectories where examples are installed.  The 
diff --git a/examples/h5_extend_write.c b/examples/h5_extend_write.c
index 74f6c01..495b49d 100644
--- a/examples/h5_extend_write.c
+++ b/examples/h5_extend_write.c
@@ -165,9 +165,9 @@ main (void)
     /*
      * Resulting dataset
      *
-     *	 3 3 3 2 2
-     *	 3 3 3 2 2
-     *	 3 3 3 0 0
+     *   1 1 1 3 3
+     *   1 1 1 3 3
+     *   1 1 1 0 0
      *	 2 0 0 0 0
      *	 2 0 0 0 0
      *	 2 0 0 0 0
diff --git a/examples/run-c-ex.sh.in b/examples/run-c-ex.sh.in
index 9b2a2bb..bac8073 100644
--- a/examples/run-c-ex.sh.in
+++ b/examples/run-c-ex.sh.in
@@ -33,7 +33,7 @@ EXIT_FAILURE=1
  
 # Where the tool is installed.
 # default is relative path to installed location of the tools 
-prefix="${prefix:-../../../}"
+prefix="${prefix:-../../..}"
 PARALLEL=@PARALLEL@             # Am I in parallel mode?
 AR="@AR@"
 RANLIB="@RANLIB@"
diff --git a/fortran/examples/CMakeLists.txt b/fortran/examples/CMakeLists.txt
index 2bf0bf6..5241286 100644
--- a/fortran/examples/CMakeLists.txt
+++ b/fortran/examples/CMakeLists.txt
@@ -40,8 +40,8 @@ set (F2003_examples
 
 foreach (example ${examples})
   add_executable (f90_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
-  TARGET_NAMING (f90_ex_${example} ${LIB_TYPE})
-  TARGET_FORTRAN_PROPERTIES (f90_ex_${example} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (f90_ex_${example} STATIC)
+  TARGET_FORTRAN_PROPERTIES (f90_ex_${example} STATIC " " " ")
   target_link_libraries (f90_ex_${example}
       ${HDF5_F90_LIB_TARGET}
       ${HDF5_LIB_TARGET}
@@ -50,15 +50,30 @@ foreach (example ${examples})
   set_target_properties (f90_ex_${example} PROPERTIES
       LINKER_LANGUAGE Fortran
       FOLDER examples/fortran
-      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
   )
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_executable (f90_ex_${example}-shared ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
+    TARGET_NAMING (f90_ex_${example}-shared SHARED)
+    TARGET_FORTRAN_PROPERTIES (f90_ex_${example}-shared SHARED " " " ")
+    target_link_libraries (f90_ex_${example}-shared
+        ${HDF5_F90_LIBSH_TARGET}
+        ${HDF5_LIBSH_TARGET}
+    )
+    target_include_directories (f90_ex_${example}-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+    set_target_properties (f90_ex_${example}-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER examples/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+    )
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 endforeach (example ${examples})
 
 if (HDF5_ENABLE_F2003)
   foreach (example ${F2003_examples})
     add_executable (f03_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
-    TARGET_NAMING (f03_ex_${example} ${LIB_TYPE})
-    TARGET_FORTRAN_PROPERTIES (f03_ex_${example} ${LIB_TYPE} " " " ")
+    TARGET_NAMING (f03_ex_${example} STATIC)
+    TARGET_FORTRAN_PROPERTIES (f03_ex_${example} STATIC " " " ")
     target_link_libraries (f03_ex_${example}
         ${HDF5_F90_LIB_TARGET}
         ${HDF5_LIB_TARGET}
@@ -67,15 +82,30 @@ if (HDF5_ENABLE_F2003)
     set_target_properties (f03_ex_${example} PROPERTIES
         LINKER_LANGUAGE Fortran
         FOLDER examples/fortran03
-        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
     )
+    if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+      add_executable (f03_ex_${example}-shared ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
+      TARGET_NAMING (f03_ex_${example}-shared SHARED)
+      TARGET_FORTRAN_PROPERTIES (f03_ex_${example}-shared SHARED " " " ")
+      target_link_libraries (f03_ex_${example}-shared
+          ${HDF5_F90_LIBSH_TARGET}
+          ${HDF5_LIBSH_TARGET}
+      )
+      target_include_directories (f03_ex_${example}-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+      set_target_properties (f03_ex_${example}-shared PROPERTIES
+          LINKER_LANGUAGE Fortran
+          FOLDER examples/fortran03
+          Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+      )
+    endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
   endforeach (example ${F2003_examples})
 endif (HDF5_ENABLE_F2003)
 
 if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
   add_executable (f90_ex_ph5example ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90)
-  TARGET_NAMING (f90_ex_ph5example ${LIB_TYPE})
-  TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example ${LIB_TYPE} " " " ")
+  TARGET_NAMING (f90_ex_ph5example STATIC)
+  TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example STATIC " " " ")
   target_link_libraries (f90_ex_ph5example
       ${HDF5_F90_LIB_TARGET}
       ${HDF5_LIB_TARGET}
@@ -85,8 +115,24 @@ if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
   set_target_properties (f90_ex_ph5example PROPERTIES
       LINKER_LANGUAGE Fortran
       FOLDER examples/fortran
-      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
   )
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_executable (f90_ex_ph5example-shared ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90)
+    TARGET_NAMING (f90_ex_ph5example-shared SHARED)
+    TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example-shared SHARED " " " ")
+    target_link_libraries (f90_ex_ph5example-shared
+        ${HDF5_F90_LIBSH_TARGET}
+        ${HDF5_LIBSH_TARGET}
+        ${MPI_Fortran_LIBRARIES}
+    )
+    target_include_directories (f90_ex_ph5example-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+    set_target_properties (f90_ex_ph5example-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER examples/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+    )
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
 
 if (BUILD_TESTING)
diff --git a/fortran/examples/CMakeTests.cmake b/fortran/examples/CMakeTests.cmake
index 57aec53..63e75c2 100644
--- a/fortran/examples/CMakeTests.cmake
+++ b/fortran/examples/CMakeTests.cmake
@@ -9,12 +9,12 @@
   add_test (
       NAME f90_ex-clear-objects
       COMMAND    ${CMAKE_COMMAND}
-          -E remove 
+          -E remove
           compound.h5
           copy1.h5
           copy2.h5
           dsetf.h5
-          extend.h5 
+          extend.h5
           FORTRAN.h5
           groupf.h5
           groupsf.h5
@@ -28,6 +28,30 @@
     set_tests_properties (f90_ex-clear-objects PROPERTIES DEPENDS ${last_test})
   endif (NOT "${last_test}" STREQUAL "")
   set (last_test "f90_ex-clear-objects")
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_test (
+        NAME f90_ex-shared-clear-objects
+        COMMAND    ${CMAKE_COMMAND}
+            -E remove
+            compound.h5
+            copy1.h5
+            copy2.h5
+            dsetf.h5
+            extend.h5
+            FORTRAN.h5
+            groupf.h5
+            groupsf.h5
+            h5_cmprss.h5
+            mount1.h5
+            mount2.h5
+            sdsf.h5
+            subset.h5
+    )
+    if (NOT "${last_test}" STREQUAL "")
+      set_tests_properties (f90_ex-shared-clear-objects PROPERTIES DEPENDS ${last_test})
+    endif (NOT "${last_test}" STREQUAL "")
+    set (last_test "f90_ex-shared-clear-objects")
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 foreach (example ${examples})
   add_test (NAME f90_ex_${example} COMMAND $<TARGET_FILE:f90_ex_${example}>)
@@ -35,6 +59,13 @@ foreach (example ${examples})
     set_tests_properties (f90_ex_${example} PROPERTIES DEPENDS ${last_test})
   endif (NOT "${last_test}" STREQUAL "")
   set (last_test "f90_ex_${example}")
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_test (NAME f90_ex-shared_${example} COMMAND $<TARGET_FILE:f90_ex_${example}-shared>)
+    if (NOT "${last_test}" STREQUAL "")
+      set_tests_properties (f90_ex-shared_${example} PROPERTIES DEPENDS ${last_test})
+    endif (NOT "${last_test}" STREQUAL "")
+    set (last_test "f90_ex-shared_${example}")
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 endforeach (example ${examples})
 
 if (HDF5_ENABLE_F2003)
@@ -44,9 +75,19 @@ if (HDF5_ENABLE_F2003)
       set_tests_properties (f03_ex_${example} PROPERTIES DEPENDS ${last_test})
     endif (NOT "${last_test}" STREQUAL "")
     set (last_test "f03_ex_${example}")
+    if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+      add_test (NAME f03_ex-shared_${example} COMMAND $<TARGET_FILE:f03_ex_${example}-shared>)
+      if (NOT "${last_test}" STREQUAL "")
+        set_tests_properties (f03_ex-shared_${example} PROPERTIES DEPENDS ${last_test})
+      endif (NOT "${last_test}" STREQUAL "")
+      set (last_test "f03_ex-shared_${example}")
+    endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
   endforeach (example ${F2003_examples})
 endif (HDF5_ENABLE_F2003)
 
 if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
   add_test (NAME f90_ex_ph5example COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:f90_ex_ph5example>)
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_test (NAME f90_ex-shared_ph5example COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:f90_ex_ph5example>)
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
diff --git a/fortran/examples/Makefile.am b/fortran/examples/Makefile.am
index caaa08c..183476d 100644
--- a/fortran/examples/Makefile.am
+++ b/fortran/examples/Makefile.am
@@ -78,8 +78,8 @@ endif
 
 # Tell automake how to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/fortran
-EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples
+EXAMPLEDIR=${DESTDIR}$(datarootdir)/hdf5_examples/fortran
+EXAMPLETOPDIR=${DESTDIR}$(datarootdir)/hdf5_examples
 
 # List dependencies for each example.  Normally, automake would take
 # care of this for us, but if we tell automake about the programs it
diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in
index c894b75..de33643 100644
--- a/fortran/examples/Makefile.in
+++ b/fortran/examples/Makefile.in
@@ -638,8 +638,8 @@ FORTRAN_API = yes
 
 # Tell automake how to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/fortran
-EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples
+EXAMPLEDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/fortran
+EXAMPLETOPDIR = ${DESTDIR}$(datarootdir)/hdf5_examples
 
 # Assume that all tests in this directory are examples, and tell
 # conclude.am when to build them.
diff --git a/fortran/examples/run-fortran-ex.sh.in b/fortran/examples/run-fortran-ex.sh.in
index ead7361..ce1798d 100644
--- a/fortran/examples/run-fortran-ex.sh.in
+++ b/fortran/examples/run-fortran-ex.sh.in
@@ -34,7 +34,7 @@ EXIT_FAILURE=1
 
 # Where the tool is installed.
 # default is relative path to installed location of the tools
-prefix="${prefix:-../../../}"
+prefix="${prefix:-../../..}"
 PARALLEL=@PARALLEL@             # Am I in parallel mode?
 AR="@AR@"
 RANLIB="@RANLIB@"
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index c015072..1922893 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -29,22 +29,37 @@ if (FORTRAN_HAVE_STORAGE_SIZE)
   add_executable (H5test_FortranHavekind
       ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_STORAGE_SIZE.f90
   )
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_executable (H5test_FortranHavekind-shared
+        ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_STORAGE_SIZE.f90
+    )
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
   set (H5_TEST_KIND_NAME "h5test_kind_storage_size_mod")
 else (FORTRAN_HAVE_STORAGE_SIZE)
     if (FORTRAN_HAVE_SIZEOF)
       add_executable (H5test_FortranHavekind
           ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90
       )
+      if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+        add_executable (H5test_FortranHavekind-shared
+            ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90
+        )
+      endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
       set (H5_TEST_KIND_NAME "h5test_kind_sizeof_mod")
     else (FORTRAN_HAVE_SIZEOF)
       add_executable (H5test_FortranHavekind
           ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90
       )
+      if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+        add_executable (H5test_FortranHavekind-shared
+            ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90
+        )
+      endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
     endif (FORTRAN_HAVE_SIZEOF)
 endif (FORTRAN_HAVE_STORAGE_SIZE)
 if (WIN32 AND MSVC)
   if (BUILD_SHARED_LIBS)
-    set_target_properties (H5test_FortranHavekind
+    set_target_properties (H5test_FortranHavekind-shared
         PROPERTIES
             COMPILE_FLAGS "/MT"
     )
@@ -56,8 +71,14 @@ if (WIN32 AND MSVC)
 endif (WIN32 AND MSVC)
 set_target_properties (H5test_FortranHavekind PROPERTIES
     LINKER_LANGUAGE Fortran
-    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
 )
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  set_target_properties (H5test_FortranHavekind-shared PROPERTIES
+      LINKER_LANGUAGE Fortran
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 set (CMD $<TARGET_FILE:H5test_FortranHavekind>)
 add_custom_command (
@@ -94,7 +115,21 @@ add_custom_command (
     DEPENDS H5fortran_detect
 )
 
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  if (WIN32)
+    set (MODSH_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/shared/\${BUILD_TYPE})
+  else (WIN32)
+    set (MODSH_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  endif (WIN32)
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+if (WIN32)
+  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/static/\${BUILD_TYPE})
+else (WIN32)
+  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+endif (WIN32)
+
 INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${CMAKE_Fortran_MODULE_DIRECTORY})
+
 #-----------------------------------------------------------------------------
 add_executable (H5match_types
     ${HDF5_F90_BINARY_DIR}/H5fort_type_defines.h
@@ -144,16 +179,33 @@ set (f90CStub_C_HDRS
     ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h
 )
 
-add_library (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} ${f90CStub_C_SRCS} ${f90CStub_C_HDRS})
-TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} " " " ")
+add_library (${HDF5_F90_C_LIB_TARGET} STATIC ${f90CStub_C_SRCS} ${f90CStub_C_HDRS})
+TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_C_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (${HDF5_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_NAME} STATIC)
 set_target_properties (${HDF5_F90_C_LIB_TARGET} PROPERTIES
     FOLDER libraries/fortran
     LINKER_LANGUAGE C
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
+set (install_targets ${HDF5_F90_C_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_library (${HDF5_F90_C_LIBSH_TARGET} SHARED ${f90CStub_C_SRCS} ${f90CStub_C_HDRS})
+  TARGET_C_PROPERTIES (${HDF5_F90_C_LIBSH_TARGET} SHARED " " " ")
+  target_link_libraries (${HDF5_F90_C_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${LINK_SHARED_LIBS})
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_C_LIBSH_TARGET}")
+  H5_SET_LIB_OPTIONS (${HDF5_F90_C_LIBSH_TARGET} ${HDF5_F90_C_LIB_NAME} SHARED ${HDF5_F_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_F90_C_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/fortran
+      LINKER_LANGUAGE C
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+  set (install_targets ${install_targets} ${HDF5_F90_C_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-----------------------------------------------------------------------------
 # Fortran 2003 standard
@@ -233,59 +285,73 @@ set_source_files_properties (${f90_F_SRCS} PROPERTIES LANGUAGE Fortran)
 #-----------------------------------------------------------------------------
 # Add Main fortran library
 #-----------------------------------------------------------------------------
-add_library (${HDF5_F90_LIB_TARGET} ${LIB_TYPE} ${f90_F_SRCS})
+add_library (${HDF5_F90_LIB_TARGET} STATIC ${f90_F_SRCS})
 set (SHARED_LINK_FLAGS " ")
-if (WIN32)
-  if (BUILD_SHARED_LIBS)
-    set_property (TARGET ${HDF5_F90_LIB_TARGET}
-      APPEND PROPERTY COMPILE_DEFINITIONS
-        BUILD_HDF5_DLL
-    )
-    if (MSVC)
-      set (SHARED_LINK_FLAGS "/DLL /DEF:${HDF5_F90_SRC_BINARY_DIR}/hdf5_fortrandll.def")
-    endif (MSVC)
-  endif (BUILD_SHARED_LIBS)
-  set_property (TARGET ${HDF5_F90_LIB_TARGET}
-      APPEND PROPERTY COMPILE_DEFINITIONS
-        HDF5F90_WINDOWS
-  )
-endif (WIN32)
-TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS})
+TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_F90_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET})
 if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
   target_link_libraries (${HDF5_F90_LIB_TARGET} ${MPI_Fortran_LIBRARIES})
 endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (${HDF5_F90_LIB_TARGET} ${HDF5_F90_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_F90_LIB_TARGET} ${HDF5_F90_LIB_NAME} STATIC)
 set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES
     FOLDER libraries/fortran
     LINKER_LANGUAGE Fortran
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
-    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
 )
+if (WIN32)
+  set_property (TARGET ${HDF5_F90_LIB_TARGET}
+      APPEND PROPERTY COMPILE_DEFINITIONS "HDF5F90_WINDOWS"
+  )
+endif (WIN32)
+set (install_targets ${install_targets} ${HDF5_F90_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_library (${HDF5_F90_LIBSH_TARGET} SHARED ${f90_F_SRCS})
+  set (SHARED_LINK_FLAGS " ")
+  if (WIN32 AND MSVC)
+    set (SHARED_LINK_FLAGS "/DLL /DEF:${HDF5_F90_SRC_BINARY_DIR}/hdf5_fortrandll.def")
+  endif (WIN32 AND MSVC)
+  TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIBSH_TARGET} SHARED " " ${SHARED_LINK_FLAGS})
+  target_link_libraries (${HDF5_F90_LIBSH_TARGET} ${HDF5_F90_C_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
+    target_link_libraries (${HDF5_F90_LIBSH_TARGET} ${MPI_Fortran_LIBRARIES})
+  endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_LIBSH_TARGET}")
+  H5_SET_LIB_OPTIONS (${HDF5_F90_LIBSH_TARGET} ${HDF5_F90_LIB_NAME} SHARED ${HDF5_F_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_F90_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/fortran
+      LINKER_LANGUAGE Fortran
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+  if (WIN32)
+    set_property (TARGET ${HDF5_F90_LIBSH_TARGET}
+      APPEND PROPERTY COMPILE_DEFINITIONS "BUILD_HDF5_DLL;HDF5F90_WINDOWS"
+    )
+  endif (WIN32)
+  set (install_targets ${install_targets} ${HDF5_F90_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-----------------------------------------------------------------------------
 # Add file(s) to CMake Install
 #-----------------------------------------------------------------------------
 install (
-    FILES 
-        ${HDF5_F90_SRC_SOURCE_DIR}/H5f90.h 
-        ${HDF5_F90_SRC_SOURCE_DIR}/H5f90i.h 
-        ${HDF5_F90_SRC_SOURCE_DIR}/H5f90proto.h 
+    FILES
+        ${HDF5_F90_SRC_SOURCE_DIR}/H5f90.h
+        ${HDF5_F90_SRC_SOURCE_DIR}/H5f90i.h
+        ${HDF5_F90_SRC_SOURCE_DIR}/H5f90proto.h
         ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h
         ${HDF5_F90_BINARY_DIR}/H5fortran_types.f90
-    DESTINATION 
+    DESTINATION
         ${HDF5_INSTALL_INCLUDE_DIR}
-    COMPONENT 
+    COMPONENT
         fortheaders
 )
 
-if (WIN32)
-  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE})
-else (WIN32)
-  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY})
-endif (WIN32)
-
 set (mod_files
     ${MOD_BUILD_DIR}/h5fortran_types.mod
     ${MOD_BUILD_DIR}/hdf5.mod
@@ -320,28 +386,70 @@ install (
     FILES
         ${mod_files}
     DESTINATION
-        ${HDF5_INSTALL_INCLUDE_DIR}
+        ${HDF5_INSTALL_INCLUDE_DIR}/static
     COMPONENT
         fortheaders
 )
 
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  set (modsh_files
+      ${MODSH_BUILD_DIR}/h5fortran_types.mod
+      ${MODSH_BUILD_DIR}/hdf5.mod
+      ${MODSH_BUILD_DIR}/h5global.mod
+      ${MODSH_BUILD_DIR}/h5a.mod
+      ${MODSH_BUILD_DIR}/h5d.mod
+      ${MODSH_BUILD_DIR}/h5e.mod
+      ${MODSH_BUILD_DIR}/h5f.mod
+      ${MODSH_BUILD_DIR}/h5g.mod
+      ${MODSH_BUILD_DIR}/h5i.mod
+      ${MODSH_BUILD_DIR}/h5l.mod
+      ${MODSH_BUILD_DIR}/h5lib.mod
+      ${MODSH_BUILD_DIR}/h5o.mod
+      ${MODSH_BUILD_DIR}/h5p.mod
+      ${MODSH_BUILD_DIR}/h5r.mod
+      ${MODSH_BUILD_DIR}/h5s.mod
+      ${MODSH_BUILD_DIR}/h5t.mod
+      ${MODSH_BUILD_DIR}/h5z.mod
+      ${MODSH_BUILD_DIR}/h5a_provisional.mod
+      ${MODSH_BUILD_DIR}/h5d_provisional.mod
+      ${MODSH_BUILD_DIR}/h5e_provisional.mod
+      ${MODSH_BUILD_DIR}/h5f_provisional.mod
+      ${MODSH_BUILD_DIR}/h5l_provisional.mod
+      ${MODSH_BUILD_DIR}/h5lib_provisional.mod
+      ${MODSH_BUILD_DIR}/h5o_provisional.mod
+      ${MODSH_BUILD_DIR}/h5p_provisional.mod
+      ${MODSH_BUILD_DIR}/h5r_provisional.mod
+      ${MODSH_BUILD_DIR}/h5t_provisional.mod
+      ${MODSH_BUILD_DIR}/h5_dble_interface.mod
+  )
+  install (
+      FILES
+          ${modsh_files}
+      DESTINATION
+          ${HDF5_INSTALL_INCLUDE_DIR}/shared
+      COMPONENT
+          fortheaders
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+
+
 #-----------------------------------------------------------------------------
 # Add Target(s) to CMake Install for import into other projects
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
-  if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_F90_C_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries)
-    #INSTALL_TARGET_PDB (${HDF5_F90_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries)
-  endif (BUILD_SHARED_LIBS)
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    INSTALL_TARGET_PDB (${HDF5_F90_C_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries)
+    #INSTALL_TARGET_PDB (${HDF5_F90_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries)
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
   install (
       TARGETS
-          ${HDF5_F90_C_LIB_TARGET}
-          ${HDF5_F90_LIB_TARGET}
+          ${install_targets}
       EXPORT
           ${HDF5_EXPORTED_TARGETS}
       LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT fortlibraries
       ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT fortlibraries
       RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT fortlibraries
+      FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT fortlibraries
   )
 endif (HDF5_EXPORTED_TARGETS)
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c
index 240fbc3..bc2e9f1 100644
--- a/fortran/src/H5Af.c
+++ b/fortran/src/H5Af.c
@@ -256,7 +256,7 @@ nh5awritec_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
  * SOURCE
 */
 int_f
-nh5awrite_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -266,7 +266,7 @@ nh5awrite_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
 }
 
 int_f
-nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -276,7 +276,7 @@ nh5awrite_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
 }
 
 int_f
-nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -286,7 +286,7 @@ nh5awrite_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
 }
 
 int_f
-nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -296,7 +296,7 @@ nh5awrite_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
 }
 
 int_f
-nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -306,7 +306,7 @@ nh5awrite_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
 }
 
 int_f
-nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -316,7 +316,7 @@ nh5awrite_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
 }
 
 int_f
-nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -326,7 +326,7 @@ nh5awrite_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
 }
 
 int_f
-nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -336,7 +336,7 @@ nh5awrite_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void U
 }
 
 int_f
-nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -346,7 +346,7 @@ nh5awrite_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
 }
 
 int_f
-nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -356,7 +356,7 @@ nh5awrite_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
 }
 
 int_f
-nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -366,7 +366,7 @@ nh5awrite_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
 }
 
 int_f
-nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -376,7 +376,7 @@ nh5awrite_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
 }
 
 int_f
-nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -386,7 +386,7 @@ nh5awrite_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
 }
 
 int_f
-nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -396,7 +396,7 @@ nh5awrite_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
 }
 
 int_f
-nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -406,7 +406,7 @@ nh5awrite_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
 }
 
 int_f
-nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -416,7 +416,7 @@ nh5awrite_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUS
 }
 
 int_f
-nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -426,7 +426,7 @@ nh5awrite_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -436,7 +436,7 @@ nh5awrite_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -446,7 +446,7 @@ nh5awrite_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -456,7 +456,7 @@ nh5awrite_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -466,7 +466,7 @@ nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -476,7 +476,7 @@ nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -486,7 +486,7 @@ nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
      /*
@@ -496,7 +496,7 @@ nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED *dims)
+nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED *dims)
 /******/
 {
     int_f ret_value=0;          /* Return value */
@@ -655,7 +655,7 @@ nh5areadc_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims)
  * SOURCE
 */
 int_f
-nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
     int_f ret_value=0;          /* Return value */
@@ -671,7 +671,7 @@ done:
 }
 
 int_f
-nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -681,7 +681,7 @@ nh5aread_integer_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -691,7 +691,7 @@ nh5aread_integer_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -701,7 +701,7 @@ nh5aread_integer_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -711,7 +711,7 @@ nh5aread_integer_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -721,7 +721,7 @@ nh5aread_integer_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -731,7 +731,7 @@ nh5aread_integer_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -741,7 +741,7 @@ nh5aread_integer_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -751,7 +751,7 @@ nh5aread_integer_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UN
 }
 
 int_f
-nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -761,7 +761,7 @@ nh5aread_real_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
 }
 
 int_f
-nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -771,7 +771,7 @@ nh5aread_real_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
 }
 
 int_f
-nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -781,7 +781,7 @@ nh5aread_real_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
 }
 
 int_f
-nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -791,7 +791,7 @@ nh5aread_real_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
 }
 
 int_f
-nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -801,7 +801,7 @@ nh5aread_real_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
 }
 
 int_f
-nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -811,7 +811,7 @@ nh5aread_real_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
 }
 
 int_f
-nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -821,7 +821,7 @@ nh5aread_real_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
 }
 
 int_f
-nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -831,7 +831,7 @@ nh5aread_real_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSE
 }
 
 int_f
-nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -841,7 +841,7 @@ nh5aread_double_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
 }
 
 int_f
-nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -851,7 +851,7 @@ nh5aread_double_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
 }
 
 int_f
-nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -861,7 +861,7 @@ nh5aread_double_2_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
 }
 
 int_f
-nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -871,7 +871,7 @@ nh5aread_double_3_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
 }
 
 int_f
-nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -881,7 +881,7 @@ nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
 }
 
 int_f
-nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -891,7 +891,7 @@ nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
 }
 
 int_f
-nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
@@ -901,7 +901,7 @@ nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNU
 }
 
 int_f
-nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void UNUSED * dims)
+nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void H5_ATTR_UNUSED * dims)
 /******/
 {
      /*
diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c
index f4082a9..0d32dac 100644
--- a/fortran/src/H5Df.c
+++ b/fortran/src/H5Df.c
@@ -307,7 +307,7 @@ nh5dwritec_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
  * SOURCE
 */
 int_f
-nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f UNUSED *dims)
+nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f H5_ATTR_UNUSED *dims)
 /******/
 {
      int ret_value = -1;
@@ -904,7 +904,7 @@ nh5dreadc_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
  * SOURCE
 */
 int_f
-nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f UNUSED *dims)
+nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, hsize_t_f H5_ATTR_UNUSED *dims)
 /******/
 {
      int ret_value = -1;
diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c
index e9082d6..fe2f21a 100644
--- a/fortran/src/H5Pf.c
+++ b/fortran/src/H5Pf.c
@@ -2836,7 +2836,7 @@ DONE:
  * SOURCE
 */
 int_f
-nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f UNUSED *value_len)
+nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f H5_ATTR_UNUSED *value_len)
 /******/
 {
      int ret_value = -1;
@@ -2869,7 +2869,7 @@ nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, _fcd v
  * SOURCE
 */
 int_f
-h5pregister_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value)
+h5pregister_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void H5_ATTR_UNUSED *value)
 /******/
 {
      char* c_name = NULL;
@@ -2939,7 +2939,7 @@ nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size,
  * SOURCE
 */
 int_f
-nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f UNUSED *value_len)
+nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f H5_ATTR_UNUSED *value_len)
 /******/
 {
      int_f ret_value = -1;
@@ -2972,7 +2972,7 @@ nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd v
  * SOURCE
 */
 int_f
-h5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value)
+h5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void H5_ATTR_UNUSED *value)
 /******/
 {
      char* c_name = NULL;
@@ -3437,7 +3437,7 @@ DONE:
  * SOURCE
 */
 int_f
-nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED *value_len)
+nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f H5_ATTR_UNUSED *value_len)
 /******/
 {
      int_f ret_value = -1;
@@ -3535,7 +3535,7 @@ nh5pset_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
  * SOURCE
 */
 int_f
-nh5pgetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED *value_len)
+nh5pgetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f H5_ATTR_UNUSED *value_len)
 /******/
 {
      int_f ret_value = -1;
@@ -5215,7 +5215,7 @@ nh5pset_link_phase_change_c(hid_t_f *gcpl_id, int_f *max_compact, int_f *min_den
  * SOURCE
 */
 int_f
-nh5pset_fapl_direct_c(hid_t_f UNUSED *fapl_id, size_t_f UNUSED *alignment, size_t_f UNUSED *block_size, size_t_f UNUSED *cbuf_size)
+nh5pset_fapl_direct_c(hid_t_f H5_ATTR_UNUSED *fapl_id, size_t_f H5_ATTR_UNUSED *alignment, size_t_f H5_ATTR_UNUSED *block_size, size_t_f H5_ATTR_UNUSED *cbuf_size)
 /******/
 {
   int ret_value = -1;
@@ -5258,7 +5258,7 @@ nh5pset_fapl_direct_c(hid_t_f UNUSED *fapl_id, size_t_f UNUSED *alignment, size_
  * SOURCE
 */
 int_f
-nh5pget_fapl_direct_c(hid_t_f UNUSED *fapl_id, size_t_f UNUSED *alignment, size_t_f UNUSED *block_size, size_t_f UNUSED *cbuf_size)
+nh5pget_fapl_direct_c(hid_t_f H5_ATTR_UNUSED *fapl_id, size_t_f H5_ATTR_UNUSED *alignment, size_t_f H5_ATTR_UNUSED *block_size, size_t_f H5_ATTR_UNUSED *cbuf_size)
 /******/
 {
   int ret_value = -1;
diff --git a/fortran/src/H5Zf.c b/fortran/src/H5Zf.c
index 0427c23..169e018 100644
--- a/fortran/src/H5Zf.c
+++ b/fortran/src/H5Zf.c
@@ -51,9 +51,7 @@ nh5zunregister_c (int_f *filter)
       * Call H5Zunregister function.
       */
      c_filter = (H5Z_filter_t)*filter;
-     printf(" filter # %d \n", (int)c_filter);
      status = H5Zunregister(c_filter);
-     printf("From C zunregister %d \n", status);
      if (status < 0) return ret_value;
      ret_value = 0;
      return ret_value;
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index a149109..95f6e21 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -421,12 +421,14 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
 
 /*
  *  H5F flags
+ *
+ *  H5F_ACC_DEBUG has no effect as of HDF5 1.8.16.
  */
     h5f_flags[0] = (int_f)H5F_ACC_RDWR;
     h5f_flags[1] = (int_f)H5F_ACC_RDONLY;
     h5f_flags[2] = (int_f)H5F_ACC_TRUNC;
     h5f_flags[3] = (int_f)H5F_ACC_EXCL;
-    h5f_flags[4] = (int_f)H5F_ACC_DEBUG;
+    h5f_flags[4] = (int_f)H5F_ACC_DEBUG;    /* nonfunctional */
     h5f_flags[5] = (int_f)H5F_SCOPE_LOCAL;
     h5f_flags[6] = (int_f)H5F_SCOPE_GLOBAL;
     h5f_flags[7] = (int_f)H5F_CLOSE_DEFAULT;
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90
index ca50e20..c56190e 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.f90
@@ -234,6 +234,8 @@ MODULE H5GLOBAL
   !
   ! H5F flags (DO NOT FORGET TO UPDATE WHEN NEW FLAGS ARE ADDED !)
   !
+  ! H5F_ACC_DEBUG_F has no effect as of HDF5 1.8.16
+  !
   ! H5F flags declaration
   !
   INTEGER, PARAMETER :: H5F_FLAGS_LEN = 19
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index 6bde877..4784440 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -22,9 +22,6 @@
 H5_FCDLL char * HD5f2cstring (_fcd fdesc, size_t len);
 H5_FCDLL void HD5packFstring(char *src, char *dest, size_t len);
 
-#ifdef H5_VMS
-#define H5_FC_FUNC_(name, NAME) NAME
-#endif /*H5_VMS*/
 
 /*
  * Storage info struct used by H5O_info_t and H5F_info_t 
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index a4b3843..b199bce 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -32,7 +32,7 @@ AM_FCLIBS=$(LIBHDF5)
 lib_LTLIBRARIES=libhdf5_fortran.la
 
 # Add libtool numbers to the HDF5 Fortran library (from config/lt_vers.am)
-libhdf5_fortran_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5_fortran_la_LDFLAGS= -version-info $(LT_F_VERS_INTERFACE):$(LT_F_VERS_REVISION):$(LT_F_VERS_AGE) $(AM_LDFLAGS)
 
 # Some Fortran compilers can't build shared libraries, so sometimes we
 # want to build a shared C library and a static Fortran library.  If so,
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index 0d19969..789762b 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -723,16 +723,34 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 # See libtool versioning documentation online.
 # After making changes, run bin/reconfigure to update other configure related
 # files like Makefile.in.
-LT_VERS_INTERFACE = 10
-LT_VERS_REVISION = 1 
-LT_VERS_AGE = 0
+LT_VERS_INTERFACE = 11
+LT_VERS_REVISION = 0
+LT_VERS_AGE = 1
+LT_CXX_VERS_INTERFACE = 11
+LT_CXX_VERS_REVISION = 0
+LT_CXX_VERS_AGE = 0
+LT_F_VERS_INTERFACE = 10
+LT_F_VERS_REVISION = 2
+LT_F_VERS_AGE = 0
+LT_HL_VERS_INTERFACE = 10
+LT_HL_VERS_REVISION = 2
+LT_HL_VERS_AGE = 0
+LT_HL_CXX_VERS_INTERFACE = 11
+LT_HL_CXX_VERS_REVISION = 0
+LT_HL_CXX_VERS_AGE = 0
+LT_HL_F_VERS_INTERFACE = 10
+LT_HL_F_VERS_REVISION = 2
+LT_HL_F_VERS_AGE = 0
+LT_TOOLS_VERS_INTERFACE = 10
+LT_TOOLS_VERS_REVISION = 2
+LT_TOOLS_VERS_AGE = 0
 AM_FCLIBS = $(LIBHDF5)
 
 # This is our main target, the fortran library
 lib_LTLIBRARIES = libhdf5_fortran.la
 
 # Add libtool numbers to the HDF5 Fortran library (from config/lt_vers.am)
-libhdf5_fortran_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5_fortran_la_LDFLAGS = -version-info $(LT_F_VERS_INTERFACE):$(LT_F_VERS_REVISION):$(LT_F_VERS_AGE) $(AM_LDFLAGS)
 @BUILD_PARALLEL_CONDITIONAL_FALSE at PARALLEL_COND_SRC = HDF5.f90
 
 # Include HDF5.f90 if parallel is disabled, HDF5mpiof*  if parallel is enabled
diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt
index 2893156..d8e6fe5 100644
--- a/fortran/test/CMakeLists.txt
+++ b/fortran/test/CMakeLists.txt
@@ -9,56 +9,103 @@ INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
 #-----------------------------------------------------------------------------
 # Add Test Lib
 #-----------------------------------------------------------------------------
-add_library (${HDF5_F90_C_TEST_LIB_TARGET} ${LIB_TYPE} t.c)
+add_library (${HDF5_F90_C_TEST_LIB_TARGET} STATIC t.c)
 set_source_files_properties (t.c PROPERTIES LANGUAGE C)
-TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIB_TARGET} ${LIB_TYPE} " " " ")
+TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_F90_C_TEST_LIB_TARGET}
     ${HDF5_F90_C_LIB_TARGET}
     ${HDF5_TEST_LIB_TARGET}
 )
-H5_SET_LIB_OPTIONS (${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_C_TEST_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_C_TEST_LIB_NAME} STATIC)
 set_target_properties (${HDF5_F90_C_TEST_LIB_TARGET} PROPERTIES
     FOLDER libraries/test/fortran
     LINKER_LANGUAGE C
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_library (${HDF5_F90_C_TEST_LIBSH_TARGET} SHARED t.c)
+  TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIBSH_TARGET} SHARED " " " ")
+  target_link_libraries (${HDF5_F90_C_TEST_LIBSH_TARGET}
+      ${HDF5_F90_C_LIBSH_TARGET}
+      ${HDF5_TEST_LIBSH_TARGET}
+  )
+  H5_SET_LIB_OPTIONS (${HDF5_F90_C_TEST_LIBSH_TARGET} ${HDF5_F90_C_TEST_LIB_NAME} SHARED ${HDF5_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_F90_C_TEST_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/test/fortran
+      LINKER_LANGUAGE C
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 # See if the F2008 intrinsic STORAGE_SIZE and C_SIZEOF are supported. If not then
 # fall back to F2003. If F2003 not supported then use F90 for the tests.
 
 set_source_files_properties (tf_F90.f90 tf_F03.f90 tf_F08.f90 tf.f90 PROPERTIES LANGUAGE Fortran)
 if (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
- add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F08.f90 tf.f90)
+  add_library (${HDF5_F90_TEST_LIB_TARGET} STATIC tf_F08.f90 tf.f90)
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_library (${HDF5_F90_TEST_LIBSH_TARGET} SHARED tf_F08.f90 tf.f90)
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 elseif (HDF5_ENABLE_F2003)
- add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F03.f90 tf.f90)
+  add_library (${HDF5_F90_TEST_LIB_TARGET} STATIC tf_F03.f90 tf.f90)
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_library (${HDF5_F90_TEST_LIBSH_TARGET} SHARED tf_F03.f90 tf.f90)
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 else (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
- add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F90.f90 tf.f90) 
+  add_library (${HDF5_F90_TEST_LIB_TARGET} STATIC tf_F90.f90 tf.f90)
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_library (${HDF5_F90_TEST_LIBSH_TARGET} SHARED tf_F90.f90 tf.f90)
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 endif (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
 
-
-set (SHARED_LINK_FLAGS " ")
-if (WIN32)
-  if (BUILD_SHARED_LIBS)
-    set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS BUILD_HDF5_TEST_DLL)
-    if (MSVC)
-      set (SHARED_LINK_FLAGS "/DLL")
-    endif (MSVC)
-  endif (BUILD_SHARED_LIBS)
-  set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS)
-endif (WIN32)
-TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS})
+TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_C_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
     ${HDF5_LIB_TARGET}
 )
-H5_SET_LIB_OPTIONS (${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_TEST_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_TEST_LIB_NAME} STATIC)
+target_include_directories (${HDF5_F90_TEST_LIB_TARGET} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
 set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES
     FOLDER libraries/test/fortran
     LINKER_LANGUAGE Fortran
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
-    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
 )
+if (WIN32)
+  set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY
+        COMPILE_DEFINITIONS "HDF5F90_WINDOWS"
+    )
+endif (WIN32)
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  set (SHARED_LINK_FLAGS " ")
+  if (WIN32 AND MSVC)
+    set (SHARED_LINK_FLAGS "/DLL")
+  endif (WIN32 AND MSVC)
+  TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIBSH_TARGET} SHARED " " ${SHARED_LINK_FLAGS})
+  target_link_libraries (${HDF5_F90_TEST_LIBSH_TARGET}
+      ${HDF5_F90_C_TEST_LIBSH_TARGET}
+      ${HDF5_F90_LIBSH_TARGET}
+      ${HDF5_LIBSH_TARGET}
+  )
+  H5_SET_LIB_OPTIONS (${HDF5_F90_TEST_LIBSH_TARGET} ${HDF5_F90_TEST_LIB_NAME} SHARED ${HDF5_PACKAGE_SOVERSION})
+  target_include_directories (${HDF5_F90_TEST_LIBSH_TARGET} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (${HDF5_F90_TEST_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/test/fortran
+      LINKER_LANGUAGE Fortran
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+  if (WIN32)
+    set_property (TARGET ${HDF5_F90_TEST_LIBSH_TARGET} APPEND PROPERTY
+        COMPILE_DEFINITIONS "BUILD_HDF5_TEST_DLL;HDF5F90_WINDOWS"
+    )
+  endif (WIN32)
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-----------------------------------------------------------------------------
 # Add Tests
@@ -82,9 +129,9 @@ add_executable (testhdf5_fortran
     tH5Z.f90
     tHDF5.f90
 )
-TARGET_NAMING (testhdf5_fortran ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (testhdf5_fortran ${LIB_TYPE} " " " ")
-target_link_libraries (testhdf5_fortran 
+TARGET_NAMING (testhdf5_fortran STATIC)
+TARGET_FORTRAN_PROPERTIES (testhdf5_fortran STATIC " " " ")
+target_link_libraries (testhdf5_fortran
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
     ${HDF5_LIB_TARGET}
@@ -96,8 +143,43 @@ target_include_directories (testhdf5_fortran PRIVATE ${CMAKE_Fortran_MODULE_DIRE
 set_target_properties (testhdf5_fortran PROPERTIES
     LINKER_LANGUAGE Fortran
     FOLDER test/fortran
-    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
 )
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_executable (testhdf5_fortran-shared
+      fortranlib_test.f90
+      tH5A.f90
+      tH5D.f90
+      tH5E.f90
+      tH5F.f90
+      tH5G.f90
+      tH5I.f90
+      tH5P.f90
+      tH5R.f90
+      tH5S.f90
+      tH5Sselect.f90
+      tH5T.f90
+      tH5VL.f90
+      tH5Z.f90
+      tHDF5.f90
+  )
+  TARGET_NAMING (testhdf5_fortran-shared SHARED)
+  TARGET_FORTRAN_PROPERTIES (testhdf5_fortran-shared SHARED " " " ")
+  target_link_libraries (testhdf5_fortran-shared
+      ${HDF5_F90_TEST_LIBSH_TARGET}
+      ${HDF5_F90_LIBSH_TARGET}
+      ${HDF5_LIBSH_TARGET}
+  )
+  if (WIN32 AND MSVC)
+    target_link_libraries (testhdf5_fortran-shared "ws2_32.lib")
+  endif (WIN32 AND MSVC)
+  target_include_directories (testhdf5_fortran-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (testhdf5_fortran-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-- Adding test for testhdf5_fortran_1_8
 add_executable (testhdf5_fortran_1_8
@@ -108,9 +190,9 @@ add_executable (testhdf5_fortran_1_8
     tH5MISC_1_8.f90
     tHDF5_1_8.f90
 )
-TARGET_NAMING (testhdf5_fortran_1_8 ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8 ${LIB_TYPE} " " " ")
-target_link_libraries (testhdf5_fortran_1_8 
+TARGET_NAMING (testhdf5_fortran_1_8 STATIC)
+TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8 STATIC " " " ")
+target_link_libraries (testhdf5_fortran_1_8
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
     ${HDF5_LIB_TARGET}
@@ -122,8 +204,34 @@ target_include_directories (testhdf5_fortran_1_8 PRIVATE ${CMAKE_Fortran_MODULE_
 set_target_properties (testhdf5_fortran_1_8 PROPERTIES
     LINKER_LANGUAGE Fortran
     FOLDER test/fortran
-    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
 )
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_executable (testhdf5_fortran_1_8-shared
+      fortranlib_test_1_8.f90
+      tH5O.f90
+      tH5A_1_8.f90
+      tH5G_1_8.f90
+      tH5MISC_1_8.f90
+      tHDF5_1_8.f90
+  )
+  TARGET_NAMING (testhdf5_fortran_1_8-shared SHARED)
+  TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8-shared SHARED " " " ")
+  target_link_libraries (testhdf5_fortran_1_8-shared
+      ${HDF5_F90_TEST_LIBSH_TARGET}
+      ${HDF5_F90_LIBSH_TARGET}
+      ${HDF5_LIBSH_TARGET}
+  )
+  if (WIN32 AND MSVC)
+    target_link_libraries (testhdf5_fortran_1_8-shared "ws2_32.lib")
+  endif (WIN32 AND MSVC)
+  target_include_directories (testhdf5_fortran_1_8-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (testhdf5_fortran_1_8-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-- Adding test for fortranlib_test_F03
 if (HDF5_ENABLE_F2003)
@@ -137,9 +245,9 @@ if (HDF5_ENABLE_F2003)
       tH5T_F03.f90
       tHDF5_F03.f90
   )
-  TARGET_NAMING (fortranlib_test_F03 ${LIB_TYPE})
-  TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 ${LIB_TYPE} " " " ")
-  target_link_libraries (fortranlib_test_F03 
+  TARGET_NAMING (fortranlib_test_F03 STATIC)
+  TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 STATIC " " " ")
+  target_link_libraries (fortranlib_test_F03
       ${HDF5_F90_TEST_LIB_TARGET}
       ${HDF5_F90_LIB_TARGET}
       ${HDF5_LIB_TARGET}
@@ -151,15 +259,43 @@ if (HDF5_ENABLE_F2003)
   set_target_properties (fortranlib_test_F03 PROPERTIES
       LINKER_LANGUAGE Fortran
       FOLDER test/fortran
-      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
   )
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    add_executable (fortranlib_test_F03-shared
+        fortranlib_test_F03.f90
+        tH5E_F03.f90
+        tH5F_F03.f90
+        tH5L_F03.f90
+        tH5O_F03.f90
+        tH5P_F03.f90
+        tH5T_F03.f90
+        tHDF5_F03.f90
+    )
+    TARGET_NAMING (fortranlib_test_F03-shared SHARED)
+    TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03-shared SHARED " " " ")
+    target_link_libraries (fortranlib_test_F03-shared
+        ${HDF5_F90_TEST_LIBSH_TARGET}
+        ${HDF5_F90_LIBSH_TARGET}
+        ${HDF5_LIBSH_TARGET}
+    )
+    if (WIN32 AND MSVC)
+      target_link_libraries (fortranlib_test_F03-shared "ws2_32.lib")
+    endif (WIN32 AND MSVC)
+    target_include_directories (fortranlib_test_F03-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+    set_target_properties (fortranlib_test_F03-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 endif (HDF5_ENABLE_F2003)
 
 #-- Adding test for fflush1
 add_executable (fflush1 fflush1.f90)
-TARGET_NAMING (fflush1 ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (fflush1 ${LIB_TYPE} " " " ")
-target_link_libraries (fflush1 
+TARGET_NAMING (fflush1 STATIC)
+TARGET_FORTRAN_PROPERTIES (fflush1 STATIC " " " ")
+target_link_libraries (fflush1
     ${HDF5_F90_LIB_TARGET}
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_LIB_TARGET}
@@ -171,14 +307,33 @@ target_include_directories (fflush1 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/st
 set_target_properties (fflush1 PROPERTIES
     LINKER_LANGUAGE Fortran
     FOLDER test/fortran
-    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
 )
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_executable (fflush1-shared fflush1.f90)
+  TARGET_NAMING (fflush1-shared SHARED)
+  TARGET_FORTRAN_PROPERTIES (fflush1-shared SHARED " " " ")
+  target_link_libraries (fflush1-shared
+      ${HDF5_F90_LIBSH_TARGET}
+      ${HDF5_F90_TEST_LIBSH_TARGET}
+      ${HDF5_LIBSH_TARGET}
+  )
+  if (WIN32 AND MSVC)
+    target_link_libraries (fflush1-shared "ws2_32.lib")
+  endif (WIN32 AND MSVC)
+  target_include_directories (fflush1-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (fflush1-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-- Adding test for fflush2
 add_executable (fflush2 fflush2.f90)
-TARGET_NAMING (fflush2 ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (fflush2 ${LIB_TYPE} " " " ")
-target_link_libraries (fflush2 
+TARGET_NAMING (fflush2 STATIC)
+TARGET_FORTRAN_PROPERTIES (fflush2 STATIC " " " ")
+target_link_libraries (fflush2
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
     ${HDF5_LIB_TARGET}
@@ -190,7 +345,26 @@ target_include_directories (fflush2 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/st
 set_target_properties (fflush2 PROPERTIES
     LINKER_LANGUAGE Fortran
     FOLDER test/fortran
-    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
 )
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_executable (fflush2-shared fflush2.f90)
+  TARGET_NAMING (fflush2-shared SHARED)
+  TARGET_FORTRAN_PROPERTIES (fflush2-shared SHARED " " " ")
+  target_link_libraries (fflush2-shared
+      ${HDF5_F90_TEST_LIBSH_TARGET}
+      ${HDF5_F90_LIBSH_TARGET}
+      ${HDF5_LIBSH_TARGET}
+  )
+  if (WIN32 AND MSVC)
+    target_link_libraries (fflush2-shared "ws2_32.lib")
+  endif (WIN32 AND MSVC)
+  target_include_directories (fflush2-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (fflush2-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 include (CMakeTests.cmake)
diff --git a/fortran/test/CMakeTests.cmake b/fortran/test/CMakeTests.cmake
index 4df50ad..154e70c 100644
--- a/fortran/test/CMakeTests.cmake
+++ b/fortran/test/CMakeTests.cmake
@@ -26,3 +26,29 @@ add_test (NAME FORTRAN_fflush1 COMMAND $<TARGET_FILE:fflush1>)
 #-- Adding test for fflush2
 add_test (NAME FORTRAN_fflush2 COMMAND $<TARGET_FILE:fflush2>)
 set_tests_properties (FORTRAN_fflush2 PROPERTIES DEPENDS FORTRAN_fflush1)
+
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_test (NAME FORTRAN_testhdf5_fortran-shared COMMAND $<TARGET_FILE:testhdf5_fortran-shared>)
+  set_tests_properties (FORTRAN_testhdf5_fortran-shared PROPERTIES PASS_REGULAR_EXPRESSION "[ ]*0 error.s")
+  set_tests_properties (FORTRAN_testhdf5_fortran-shared PROPERTIES DEPENDS FORTRAN_testhdf5_fortran)
+
+  #-- Adding test for testhdf5_fortran_1_8
+  add_test (NAME FORTRAN_testhdf5_fortran_1_8-shared COMMAND $<TARGET_FILE:testhdf5_fortran_1_8-shared>)
+  set_tests_properties (FORTRAN_testhdf5_fortran_1_8-shared PROPERTIES PASS_REGULAR_EXPRESSION "[ ]*0 error.s")
+  set_tests_properties (FORTRAN_testhdf5_fortran_1_8-shared PROPERTIES DEPENDS FORTRAN_testhdf5_fortran_1_8)
+
+  #-- Adding test for fortranlib_test_F03
+  if (HDF5_ENABLE_F2003)
+    add_test (NAME FORTRAN_fortranlib_test_F03-shared COMMAND $<TARGET_FILE:fortranlib_test_F03-shared>)
+    set_tests_properties (FORTRAN_fortranlib_test_F03-shared PROPERTIES PASS_REGULAR_EXPRESSION "[ ]*0 error.s")
+    set_tests_properties (FORTRAN_fortranlib_test_F03-shared PROPERTIES DEPENDS FORTRAN_fortranlib_test_F03)
+  endif (HDF5_ENABLE_F2003)
+
+  #-- Adding test for fflush1
+  add_test (NAME FORTRAN_fflush1-shared COMMAND $<TARGET_FILE:fflush1-shared>)
+  set_tests_properties (FORTRAN_fflush1-shared PROPERTIES DEPENDS FORTRAN_fflush2)
+
+  #-- Adding test for fflush2
+  add_test (NAME FORTRAN_fflush2-shared COMMAND $<TARGET_FILE:fflush2-shared>)
+  set_tests_properties (FORTRAN_fflush2-shared PROPERTIES DEPENDS FORTRAN_fflush1-shared)
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
diff --git a/fortran/test/t.h b/fortran/test/t.h
index 6d6af52..738aa59 100644
--- a/fortran/test/t.h
+++ b/fortran/test/t.h
@@ -34,7 +34,7 @@ H5_FCTESTDLL int_f nh5_fixname_c
 H5_FCTESTDLL int_f nh5_cleanup_c
 (_fcd base_name, size_t_f *base_namelen, hid_t_f *fapl);
 
-H5_FCTESTDLL NORETURN void nh5_exit_c
+H5_FCTESTDLL H5_ATTR_NORETURN void nh5_exit_c
 (int_f *status);
 
 H5_FCTESTDLL void nh5_env_nocleanup_c
diff --git a/fortran/testpar/CMakeLists.txt b/fortran/testpar/CMakeLists.txt
index 98ef6c8..4f21419 100644
--- a/fortran/testpar/CMakeLists.txt
+++ b/fortran/testpar/CMakeLists.txt
@@ -16,8 +16,8 @@ add_executable (parallel_test
     hyper.f90
     mdset.f90
 )
-TARGET_NAMING (parallel_test ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (parallel_test ${LIB_TYPE} " " " ")
+TARGET_NAMING (parallel_test STATIC)
+TARGET_FORTRAN_PROPERTIES (parallel_test STATIC " " " ")
 target_link_libraries (parallel_test 
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
@@ -27,7 +27,7 @@ target_link_libraries (parallel_test
 if (WIN32 AND MSVC)
   target_link_libraries (parallel_test "ws2_32.lib")
 endif (WIN32 AND MSVC)
-target_include_directories (parallel_test PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
+target_include_directories (parallel_test PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
 set_target_properties (parallel_test PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (parallel_test PROPERTIES FOLDER test/fortran)
 
diff --git a/hl/CMakeLists.txt b/hl/CMakeLists.txt
index b5d4308..bed8291 100644
--- a/hl/CMakeLists.txt
+++ b/hl/CMakeLists.txt
@@ -6,14 +6,6 @@ PROJECT (HDF5_HL C CXX)
 #-----------------------------------------------------------------------------
 add_definitions (${HDF_EXTRA_C_FLAGS})
 
-#-----------------------------------------------------------------------------
-# Shared Libs
-#-----------------------------------------------------------------------------
-if (BUILD_SHARED_LIBS)
-  set (HL_BUILT_AS_DYNAMIC_LIB 1)
-else (BUILD_SHARED_LIBS)
-  set (HL_BUILT_AS_STATIC_LIB 1)
-endif (BUILD_SHARED_LIBS)
 
 #-----------------------------------------------------------------------------
 # List Source files
diff --git a/hl/c++/examples/CMakeLists.txt b/hl/c++/examples/CMakeLists.txt
index e3fc3ae..77a50bf 100644
--- a/hl/c++/examples/CMakeLists.txt
+++ b/hl/c++/examples/CMakeLists.txt
@@ -11,8 +11,8 @@ INCLUDE_DIRECTORIES (${HDF5_HL_CPP_SRC_DIR}/src)
 #  Add in the examples for the Packet Table codes
 # --------------------------------------------------------------------
 add_executable (ptExampleFL ${HDF5_HL_CPP_EXAMPLES_SOURCE_DIR}/ptExampleFL.cpp)
-TARGET_NAMING (ptExampleFL ${LIB_TYPE})
-TARGET_C_PROPERTIES (ptExampleFL ${LIB_TYPE} " " " ")
+TARGET_NAMING (ptExampleFL STATIC)
+TARGET_C_PROPERTIES (ptExampleFL STATIC " " " ")
 target_link_libraries (
     ptExampleFL
     ${HDF5_HL_CPP_LIB_TARGET}
diff --git a/hl/c++/examples/Makefile.am b/hl/c++/examples/Makefile.am
index 7202a96..f90dea9 100644
--- a/hl/c++/examples/Makefile.am
+++ b/hl/c++/examples/Makefile.am
@@ -35,8 +35,8 @@ CXX_API=yes
 
 # Where to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/c++
-EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
+EXAMPLEDIR=${DESTDIR}$(datarootdir)/hdf5_examples/hl/c++
+EXAMPLETOPDIR=${DESTDIR}$(datarootdir)/hdf5_examples/hl
 
 # How to build programs using h5c++
 $(EXTRA_PROG): $(H5CPP)
diff --git a/hl/c++/examples/Makefile.in b/hl/c++/examples/Makefile.in
index 5bad31f..e33019c 100644
--- a/hl/c++/examples/Makefile.in
+++ b/hl/c++/examples/Makefile.in
@@ -615,8 +615,8 @@ CXX_API = yes
 
 # Where to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/c++
-EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
+EXAMPLEDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/hl/c++
+EXAMPLETOPDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/hl
 
 # Assume that all tests in this directory are examples, and tell
 # conclude.am when to build them.
diff --git a/hl/c++/examples/run-hlc++-ex.sh.in b/hl/c++/examples/run-hlc++-ex.sh.in
index 103dd76..c3f9ce3 100644
--- a/hl/c++/examples/run-hlc++-ex.sh.in
+++ b/hl/c++/examples/run-hlc++-ex.sh.in
@@ -33,7 +33,7 @@ EXIT_SUCCESS=0
 EXIT_FAILURE=1
 # Where the tool is installed.
 # default is relative path to installed location of the tools
-prefix="${prefix:-../../../../}"
+prefix="${prefix:-../../../..}"
 AR="@AR@"
 RANLIB="@RANLIB@"
 H5TOOL="h5c++"                  # The tool name
diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt
index 640cb2d..8740737 100644
--- a/hl/c++/src/CMakeLists.txt
+++ b/hl/c++/src/CMakeLists.txt
@@ -10,22 +10,42 @@ INCLUDE_DIRECTORIES (${HDF5_HL_CPP_SRC_SOURCE_DIR})
 set (HDF5_HL_CPP_SRCS ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.cpp)
 set (HDF5_HL_CPP_HDRS ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.h)
 
-add_library (${HDF5_HL_CPP_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_CPP_SRCS})
-TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIB_TARGET} ${LIB_TYPE} " " " ")
+add_library (${HDF5_HL_CPP_LIB_TARGET} STATIC ${HDF5_HL_CPP_SRCS})
+TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIB_TARGET} STATIC " " " ")
 target_link_libraries (
     ${HDF5_HL_CPP_LIB_TARGET}
     ${HDF5_HL_LIB_TARGET}
     ${HDF5_LIB_TARGET}
 )
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_CPP_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_HL_CPP_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_HL_CPP_LIB_NAME} STATIC)
 set_target_properties (${HDF5_HL_CPP_LIB_TARGET} PROPERTIES
     FOLDER libraries/hl
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
+set (install_targets ${HDF5_HL_CPP_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS)
+  add_library (${HDF5_HL_CPP_LIBSH_TARGET} SHARED ${HDF5_HL_CPP_SRCS})
+  TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIBSH_TARGET} SHARED " " " ")
+  target_link_libraries (
+      ${HDF5_HL_CPP_LIBSH_TARGET}
+      ${HDF5_HL_LIBSH_TARGET}
+      ${HDF5_LIBSH_TARGET}
+  )
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_CPP_LIBSH_TARGET}")
+  H5_SET_LIB_OPTIONS (${HDF5_HL_CPP_LIBSH_TARGET} ${HDF5_HL_CPP_LIB_NAME} SHARED ${HDF5_HL_CXX_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_HL_CPP_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/hl
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+  set (install_targets ${install_targets} ${HDF5_HL_CPP_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS)
 
 #-----------------------------------------------------------------------------
-# Add file(s) to CMake Install 
+# Add file(s) to CMake Install
 #-----------------------------------------------------------------------------
 install (
     FILES
@@ -41,16 +61,17 @@ install (
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlcpplibraries)
+    INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hlcpplibraries)
   endif (BUILD_SHARED_LIBS)
-  
+
   install (
       TARGETS
-          ${HDF5_HL_CPP_LIB_TARGET}
+          ${install_targets}
       EXPORT
           ${HDF5_EXPORTED_TARGETS}
       LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlcpplibraries
       ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlcpplibraries
       RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hlcpplibraries
+      FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hlcpplibraries
   )
 endif (HDF5_EXPORTED_TARGETS)
diff --git a/hl/c++/src/H5PacketTable.cpp b/hl/c++/src/H5PacketTable.cpp
index 74b8029..2a491de 100644
--- a/hl/c++/src/H5PacketTable.cpp
+++ b/hl/c++/src/H5PacketTable.cpp
@@ -34,7 +34,7 @@
      * Opens an existing packet table, which can contain either fixed-length or
      * variable-length packets.
      */
-    PacketTable::PacketTable(hid_t fileID, char* name)
+    PacketTable::PacketTable(hid_t fileID, const char* name)
     {
         table_id = H5PTopen( fileID, name);
     }
@@ -127,7 +127,7 @@
      * the packet table, the ID of the datatype of the set, and the size
      * of a memory chunk used in chunking.
      */
-    FL_PacketTable::FL_PacketTable(hid_t fileID, char* name, hid_t dtypeID, hsize_t chunkSize, int compression)
+    FL_PacketTable::FL_PacketTable(hid_t fileID, const char* name, hid_t dtypeID, hsize_t chunkSize, int compression)
     {
         table_id = H5PTcreate_fl ( fileID, name, dtypeID, chunkSize, compression);
     }
@@ -136,7 +136,7 @@
      * Opens an existing fixed-length packet table.
      * Fails if the packet table specified is variable-length.
      */
-    FL_PacketTable::FL_PacketTable(hid_t fileID, char* name) : PacketTable(fileID, name)
+    FL_PacketTable::FL_PacketTable(hid_t fileID, const char* name) : PacketTable(fileID, name)
     {
 #ifdef VLPT_REMOVED
         if( H5PTis_varlen(table_id) != 0 )    // If this is not a fixed-length table
diff --git a/hl/c++/src/H5PacketTable.h b/hl/c++/src/H5PacketTable.h
index 5f9a213..c7c7fc0 100644
--- a/hl/c++/src/H5PacketTable.h
+++ b/hl/c++/src/H5PacketTable.h
@@ -42,7 +42,7 @@ public:
      * Opens an existing packet table, which can contain either fixed-length or
      * variable-length packets.
      */
-    PacketTable(hid_t fileID, char* name);
+    PacketTable(hid_t fileID, const char* name);
 
     /* Destructor
      * Cleans up the packet table
@@ -110,13 +110,13 @@ public:
      * of a memory chunk used in chunking, and the desired compression level
      * (0-9, or -1 for no compression).
      */
-    FL_PacketTable(hid_t fileID, char* name, hid_t dtypeID, hsize_t chunkSize, int compression = -1);
+    FL_PacketTable(hid_t fileID, const char* name, hid_t dtypeID, hsize_t chunkSize, int compression = -1);
 
     /* "Open" Constructor
      * Opens an existing fixed-length packet table.
      * Fails if the packet table specified is variable-length.
      */
-    FL_PacketTable(hid_t fileID, char* name);
+    FL_PacketTable(hid_t fileID, const char* name);
 
     /* AppendPacket
      * Adds a single packet to the packet table.  Takes a pointer
diff --git a/hl/c++/src/Makefile.am b/hl/c++/src/Makefile.am
index b268948..c78f5fa 100644
--- a/hl/c++/src/Makefile.am
+++ b/hl/c++/src/Makefile.am
@@ -28,7 +28,7 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/hl/src
 lib_LTLIBRARIES=libhdf5_hl_cpp.la
 
 # Add libtool numbers to the HDF5 HL C++ library (from config/lt_vers.am)
-libhdf5_hl_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5_hl_cpp_la_LDFLAGS= -version-info $(LT_HL_CXX_VERS_INTERFACE):$(LT_HL_CXX_VERS_REVISION):$(LT_HL_CXX_VERS_AGE) $(AM_LDFLAGS)
 
 # Source files for the library
 # At the moment, only the H5PT Packet Table has a C++ API.
diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in
index f049952..d6c0035 100644
--- a/hl/c++/src/Makefile.in
+++ b/hl/c++/src/Makefile.in
@@ -661,15 +661,33 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 # See libtool versioning documentation online.
 # After making changes, run bin/reconfigure to update other configure related
 # files like Makefile.in.
-LT_VERS_INTERFACE = 10
-LT_VERS_REVISION = 1 
-LT_VERS_AGE = 0
+LT_VERS_INTERFACE = 11
+LT_VERS_REVISION = 0
+LT_VERS_AGE = 1
+LT_CXX_VERS_INTERFACE = 11
+LT_CXX_VERS_REVISION = 0
+LT_CXX_VERS_AGE = 0
+LT_F_VERS_INTERFACE = 10
+LT_F_VERS_REVISION = 2
+LT_F_VERS_AGE = 0
+LT_HL_VERS_INTERFACE = 10
+LT_HL_VERS_REVISION = 2
+LT_HL_VERS_AGE = 0
+LT_HL_CXX_VERS_INTERFACE = 11
+LT_HL_CXX_VERS_REVISION = 0
+LT_HL_CXX_VERS_AGE = 0
+LT_HL_F_VERS_INTERFACE = 10
+LT_HL_F_VERS_REVISION = 2
+LT_HL_F_VERS_AGE = 0
+LT_TOOLS_VERS_INTERFACE = 10
+LT_TOOLS_VERS_REVISION = 2
+LT_TOOLS_VERS_AGE = 0
 
 # This is our main target
 lib_LTLIBRARIES = libhdf5_hl_cpp.la
 
 # Add libtool numbers to the HDF5 HL C++ library (from config/lt_vers.am)
-libhdf5_hl_cpp_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5_hl_cpp_la_LDFLAGS = -version-info $(LT_HL_CXX_VERS_INTERFACE):$(LT_HL_CXX_VERS_REVISION):$(LT_HL_CXX_VERS_AGE) $(AM_LDFLAGS)
 
 # Source files for the library
 # At the moment, only the H5PT Packet Table has a C++ API.
diff --git a/hl/c++/test/CMakeLists.txt b/hl/c++/test/CMakeLists.txt
index ff06b22..de5b363 100644
--- a/hl/c++/test/CMakeLists.txt
+++ b/hl/c++/test/CMakeLists.txt
@@ -16,8 +16,8 @@ INCLUDE_DIRECTORIES (${HDF5_HL_SRC_DIR}/test)
 INCLUDE_DIRECTORIES (${HDF5_CPP_SRC_DIR}/src)
 
 add_executable (hl_ptableTest ${HDF5_HL_CPP_TEST_SOURCE_DIR}/ptableTest.cpp)
-TARGET_C_PROPERTIES (hl_ptableTest ${LIB_TYPE} " " " ")
-TARGET_NAMING (hl_ptableTest ${LIB_TYPE})
+TARGET_C_PROPERTIES (hl_ptableTest STATIC " " " ")
+TARGET_NAMING (hl_ptableTest STATIC)
 target_link_libraries (
     hl_ptableTest
     ${HDF5_LIB_TARGET}
diff --git a/hl/examples/CMakeLists.txt b/hl/examples/CMakeLists.txt
index e264f75..f5e6f5e 100644
--- a/hl/examples/CMakeLists.txt
+++ b/hl/examples/CMakeLists.txt
@@ -28,8 +28,8 @@ set (examples
 
 foreach (example ${examples})
   add_executable (hl_ex_${example} ${HDF5_HL_EXAMPLES_SOURCE_DIR}/${example}.c)
-  TARGET_NAMING (hl_ex_${example} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (hl_ex_${example} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (hl_ex_${example} STATIC)
+  TARGET_C_PROPERTIES (hl_ex_${example} STATIC " " " ")
   target_link_libraries (hl_ex_${example} ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (hl_ex_${example} PROPERTIES FOLDER examples/hl)
 endforeach (example ${examples})
diff --git a/hl/examples/Makefile.am b/hl/examples/Makefile.am
index ba200ed..dfac22a 100644
--- a/hl/examples/Makefile.am
+++ b/hl/examples/Makefile.am
@@ -27,8 +27,8 @@ endif
 
 # Example directory
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/c
-EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
+EXAMPLEDIR=${DESTDIR}$(datarootdir)/hdf5_examples/hl/c
+EXAMPLETOPDIR=${DESTDIR}$(datarootdir)/hdf5_examples/hl
 INSTALL_SCRIPT_FILES = run-hlc-ex.sh
 INSTALL_TOP_SCRIPT_FILES = run-hl-ex.sh
 
diff --git a/hl/examples/Makefile.in b/hl/examples/Makefile.in
index f0bf099..ea0f729 100644
--- a/hl/examples/Makefile.in
+++ b/hl/examples/Makefile.in
@@ -604,8 +604,8 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5
 
 # Example directory
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/c
-EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
+EXAMPLEDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/hl/c
+EXAMPLETOPDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/hl
 INSTALL_SCRIPT_FILES = run-hlc-ex.sh
 INSTALL_TOP_SCRIPT_FILES = run-hl-ex.sh
 
diff --git a/hl/examples/run-hlc-ex.sh.in b/hl/examples/run-hlc-ex.sh.in
index a79f67a..1848273 100644
--- a/hl/examples/run-hlc-ex.sh.in
+++ b/hl/examples/run-hlc-ex.sh.in
@@ -33,7 +33,7 @@ EXIT_FAILURE=1
 
 # Where the tool is installed.
 # default is relative path to installed location of the tools
-prefix="${prefix:-../../../../}"
+prefix="${prefix:-../../../..}"
 PARALLEL=@PARALLEL@             # Am I in parallel mode?
 AR="@AR@"
 RANLIB="@RANLIB@"
diff --git a/hl/fortran/examples/CMakeLists.txt b/hl/fortran/examples/CMakeLists.txt
index bded2d9..87838a0 100644
--- a/hl/fortran/examples/CMakeLists.txt
+++ b/hl/fortran/examples/CMakeLists.txt
@@ -16,14 +16,14 @@ set (examples
 
 foreach (example ${examples})
   add_executable (hl_f90_ex_${example} ${HDF5_HL_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
-  TARGET_NAMING (hl_f90_ex_${example} ${LIB_TYPE})
-  TARGET_FORTRAN_PROPERTIES (hl_f90_ex_${example} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (hl_f90_ex_${example} STATIC)
+  TARGET_FORTRAN_PROPERTIES (hl_f90_ex_${example} STATIC " " " ")
   target_link_libraries (hl_f90_ex_${example} 
       ${HDF5_HL_F90_LIB_TARGET}
       ${HDF5_F90_LIB_TARGET}
       ${HDF5_LIB_TARGET}
   )
-  target_include_directories (hl_f90_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
+  target_include_directories (hl_f90_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
   set_target_properties (hl_f90_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran)
   set_target_properties (hl_f90_ex_${example} PROPERTIES FOLDER examples/hl/fortran)
 
diff --git a/hl/fortran/examples/Makefile.am b/hl/fortran/examples/Makefile.am
index 6a5032b..2c3d6fb 100644
--- a/hl/fortran/examples/Makefile.am
+++ b/hl/fortran/examples/Makefile.am
@@ -53,8 +53,8 @@ endif
 
 # Tell automake how to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/fortran
-EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
+EXAMPLEDIR=${DESTDIR}$(datarootdir)/hdf5_examples/hl/fortran
+EXAMPLETOPDIR=${DESTDIR}$(datarootdir)/hdf5_examples/hl
 
 # List dependencies for each example.  Normally, automake would take
 # care of this for us, but if we tell automake about the programs it
diff --git a/hl/fortran/examples/Makefile.in b/hl/fortran/examples/Makefile.in
index e229f12..4192308 100644
--- a/hl/fortran/examples/Makefile.in
+++ b/hl/fortran/examples/Makefile.in
@@ -622,8 +622,8 @@ FORTRAN_API = yes
 
 # Tell automake how to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
-EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/fortran
-EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
+EXAMPLEDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/hl/fortran
+EXAMPLETOPDIR = ${DESTDIR}$(datarootdir)/hdf5_examples/hl
 
 # Assume that all tests in this directory are examples, and tell
 # conclude.am when to build them.
diff --git a/hl/fortran/examples/run-hlfortran-ex.sh.in b/hl/fortran/examples/run-hlfortran-ex.sh.in
index 2780bff..d17b10b 100644
--- a/hl/fortran/examples/run-hlfortran-ex.sh.in
+++ b/hl/fortran/examples/run-hlfortran-ex.sh.in
@@ -34,7 +34,7 @@ EXIT_FAILURE=1
 
 # Where the tool is installed.
 # default is relative path to installed location of the tools
-prefix="${prefix:-../../../../}"
+prefix="${prefix:-../../../..}"
 PARALLEL=@PARALLEL@             # Am I in parallel mode?
 AR="@AR@"
 RANLIB="@RANLIB@"
diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt
index 6e6e44a..3e5f516 100644
--- a/hl/fortran/src/CMakeLists.txt
+++ b/hl/fortran/src/CMakeLists.txt
@@ -1,6 +1,18 @@
 cmake_minimum_required (VERSION 3.1.0)
 PROJECT(HDF5_HL_F90_SRC C CXX Fortran)
 
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  if (WIN32)
+    set (MODSH_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/shared/\${BUILD_TYPE})
+  else (WIN32)
+    set (MODSH_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  endif (WIN32)
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+if (WIN32)
+  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/static/\${BUILD_TYPE})
+else (WIN32)
+  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+endif (WIN32)
 #-----------------------------------------------------------------------------
 # Setup include Directories
 #-----------------------------------------------------------------------------
@@ -8,6 +20,8 @@ INCLUDE_DIRECTORIES (
     ${HDF5_HL_SRC_DIR}/src
     ${HDF5_F90_SRC_DIR}/src
     ${HDF5_F90_BINARY_DIR}
+    ${CMAKE_Fortran_MODULE_DIRECTORY}
+    ${MOD_BUILD_DIR}
 )
 
 #-----------------------------------------------------------------------------
@@ -24,16 +38,33 @@ set_source_files_properties (${HDF5_HL_F90_C_SRCS} PROPERTIES LANGUAGE C)
 
 set (HDF5_HL_F90_HEADERS ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5LTf90proto.h)
 
-add_library (${HDF5_HL_F90_C_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_F90_C_SRCS} ${HDF5_HL_F90_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_HL_F90_C_LIB_TARGET} ${LIB_TYPE} " " " ")
+add_library (${HDF5_HL_F90_C_LIB_TARGET} STATIC ${HDF5_HL_F90_C_SRCS} ${HDF5_HL_F90_HEADERS})
+TARGET_C_PROPERTIES (${HDF5_HL_F90_C_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_HL_LIB_TARGET})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_C_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_HL_F90_C_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_HL_F90_C_LIB_NAME} STATIC)
 set_target_properties (${HDF5_HL_F90_C_LIB_TARGET} PROPERTIES
     FOLDER libraries/hl/fortran
     LINKER_LANGUAGE C
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
+set (install_targets ${HDF5_HL_F90_C_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_library (${HDF5_HL_F90_C_LIBSH_TARGET} SHARED ${HDF5_HL_F90_C_SRCS} ${HDF5_HL_F90_HEADERS})
+  TARGET_C_PROPERTIES (${HDF5_HL_F90_C_LIBSH_TARGET} SHARED " " " ")
+  target_link_libraries (${HDF5_HL_F90_C_LIBSH_TARGET} ${HDF5_F90_C_LIBSH_TARGET} ${HDF5_HL_LIBSH_TARGET})
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_C_LIBSH_TARGET}")
+  H5_SET_LIB_OPTIONS (${HDF5_HL_F90_C_LIBSH_TARGET} ${HDF5_HL_F90_C_LIB_NAME} SHARED ${HDF5_HL_F_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_HL_F90_C_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/hl/fortran
+      LINKER_LANGUAGE C
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+  set (install_targets ${install_targets} ${HDF5_HL_F90_C_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-----------------------------------------------------------------------------
 # Fortran Modules
@@ -46,45 +77,53 @@ set (HDF5_HL_F90_F_SRCS
 )
 set_source_files_properties (${HDF5_HL_F90_F_SRCS} PROPERTIES LANGUAGE Fortran)
 
-add_library (${HDF5_HL_F90_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_F90_F_SRCS})
-set (SHARED_LINK_FLAGS " ")
-if (BUILD_SHARED_LIBS)
-  if (WIN32)
-    set_property (TARGET ${HDF5_HL_F90_LIB_TARGET} 
-      APPEND PROPERTY COMPILE_DEFINITIONS 
-        BUILD_HDF5_HL_DLL
-    )
-    if (MSVC)
-      set (SHARED_LINK_FLAGS "/DLL")
-    endif (MSVC)
-  endif (WIN32)
-endif (BUILD_SHARED_LIBS)
-if (WIN32)
-  set_property (TARGET ${HDF5_HL_F90_LIB_TARGET} 
-      APPEND PROPERTY COMPILE_DEFINITIONS 
-        HDF5F90_WINDOWS
-  )
-endif (WIN32)
-TARGET_FORTRAN_PROPERTIES (${HDF5_HL_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS})
+add_library (${HDF5_HL_F90_LIB_TARGET} STATIC ${HDF5_HL_F90_F_SRCS})
+TARGET_FORTRAN_PROPERTIES (${HDF5_HL_F90_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_LIB_NAME} STATIC)
 set_target_properties (${HDF5_HL_F90_LIB_TARGET} PROPERTIES
     FOLDER libraries/hl/fortran
     LINKER_LANGUAGE Fortran
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
-    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
 )
+if (WIN32)
+  set_property (TARGET ${HDF5_HL_F90_LIB_TARGET}
+      APPEND PROPERTY COMPILE_DEFINITIONS "HDF5F90_WINDOWS"
+  )
+endif (WIN32)
+set (install_targets ${install_targets} ${HDF5_HL_F90_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_library (${HDF5_HL_F90_LIBSH_TARGET} SHARED ${HDF5_HL_F90_F_SRCS})
+  set (SHARED_LINK_FLAGS " ")
+  if (WIN32 AND MSVC)
+    set (SHARED_LINK_FLAGS "/DLL")
+  endif (WIN32 AND MSVC)
+  TARGET_FORTRAN_PROPERTIES (${HDF5_HL_F90_LIBSH_TARGET} SHARED " " ${SHARED_LINK_FLAGS})
+  target_link_libraries (${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_HL_F90_C_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_LIBSH_TARGET}")
+  H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_HL_F90_LIB_NAME} SHARED ${HDF5_HL_F_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_HL_F90_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/hl/fortran
+      LINKER_LANGUAGE Fortran
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+  if (WIN32)
+    set_property (TARGET ${HDF5_HL_F90_LIBSH_TARGET}
+        APPEND PROPERTY COMPILE_DEFINITIONS "BUILD_HDF5_HL_DLL;HDF5F90_WINDOWS"
+    )
+  endif (WIN32)
+  set (install_targets ${install_targets} ${HDF5_HL_F90_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-----------------------------------------------------------------------------
 # Add file(s) to CMake Install
 #-----------------------------------------------------------------------------
 
-if (WIN32)
-  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE})
-else (WIN32)
-  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY})
-endif (WIN32)
 
 set (mod_files
     ${MOD_BUILD_DIR}/h5ds.mod
@@ -97,28 +136,45 @@ install (
     FILES
         ${mod_files}
     DESTINATION
-        ${HDF5_INSTALL_INCLUDE_DIR}
+        ${HDF5_INSTALL_INCLUDE_DIR}/static
     COMPONENT
         fortheaders
 )
 
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  set (modsh_files
+      ${MODSH_BUILD_DIR}/h5ds.mod
+      ${MODSH_BUILD_DIR}/h5tb.mod
+      ${MODSH_BUILD_DIR}/h5lt.mod
+      ${MODSH_BUILD_DIR}/h5im.mod
+  )
+  install (
+      FILES
+          ${modsh_files}
+      DESTINATION
+          ${HDF5_INSTALL_INCLUDE_DIR}/shared
+      COMPONENT
+          fortheaders
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+
 #-----------------------------------------------------------------------------
 # Add Target(s) to CMake Install for import into other projects
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
-  if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries)
-    #INSTALL_TARGET_PDB (${HDF5_HL_F90_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries)
-  endif (BUILD_SHARED_LIBS)
-  
+  if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+    INSTALL_TARGET_PDB (${HDF5_HL_F90_C_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries)
+    #INSTALL_TARGET_PDB (${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries)
+  endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+
   install (
       TARGETS
-          ${HDF5_HL_F90_C_LIB_TARGET}
-          ${HDF5_HL_F90_LIB_TARGET}
+          ${install_targets}
       EXPORT
           ${HDF5_EXPORTED_TARGETS}
       LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlfortlibraries
       ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlfortlibraries
       RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hlfortlibraries
+      FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hlfortlibraries
   )
 endif (HDF5_EXPORTED_TARGETS)
diff --git a/hl/fortran/src/Makefile.am b/hl/fortran/src/Makefile.am
index 512c2c8..f4d39e3 100644
--- a/hl/fortran/src/Makefile.am
+++ b/hl/fortran/src/Makefile.am
@@ -30,7 +30,7 @@ AM_FCFLAGS+=-I$(top_builddir)/fortran/src $(F9XMODFLAG)$(top_builddir)/fortran/s
 lib_LTLIBRARIES=libhdf5hl_fortran.la
 
 # Add libtool numbers to the HDF5 HL Fortran library (from config/lt_vers.am)
-libhdf5hl_fortran_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5hl_fortran_la_LDFLAGS= -version-info $(LT_HL_F_VERS_INTERFACE):$(LT_HL_F_VERS_REVISION):$(LT_HL_F_VERS_AGE) $(AM_LDFLAGS)
 
 # Some Fortran compilers can't build shared libraries, so sometimes we
 # want to build a shared C library and a static Fortran library.  If so,
diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in
index 0e44d85..2c7ed0f 100644
--- a/hl/fortran/src/Makefile.in
+++ b/hl/fortran/src/Makefile.in
@@ -679,15 +679,33 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 # See libtool versioning documentation online.
 # After making changes, run bin/reconfigure to update other configure related
 # files like Makefile.in.
-LT_VERS_INTERFACE = 10
-LT_VERS_REVISION = 1 
-LT_VERS_AGE = 0
+LT_VERS_INTERFACE = 11
+LT_VERS_REVISION = 0
+LT_VERS_AGE = 1
+LT_CXX_VERS_INTERFACE = 11
+LT_CXX_VERS_REVISION = 0
+LT_CXX_VERS_AGE = 0
+LT_F_VERS_INTERFACE = 10
+LT_F_VERS_REVISION = 2
+LT_F_VERS_AGE = 0
+LT_HL_VERS_INTERFACE = 10
+LT_HL_VERS_REVISION = 2
+LT_HL_VERS_AGE = 0
+LT_HL_CXX_VERS_INTERFACE = 11
+LT_HL_CXX_VERS_REVISION = 0
+LT_HL_CXX_VERS_AGE = 0
+LT_HL_F_VERS_INTERFACE = 10
+LT_HL_F_VERS_REVISION = 2
+LT_HL_F_VERS_AGE = 0
+LT_TOOLS_VERS_INTERFACE = 10
+LT_TOOLS_VERS_REVISION = 2
+LT_TOOLS_VERS_AGE = 0
 
 # Our main target, the high-level fortran library
 lib_LTLIBRARIES = libhdf5hl_fortran.la
 
 # Add libtool numbers to the HDF5 HL Fortran library (from config/lt_vers.am)
-libhdf5hl_fortran_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5hl_fortran_la_LDFLAGS = -version-info $(LT_HL_F_VERS_INTERFACE):$(LT_HL_F_VERS_REVISION):$(LT_HL_F_VERS_AGE) $(AM_LDFLAGS)
 
 # Source files for the library
 #if BUILD_PARALLEL_CONDITIONAL
diff --git a/hl/fortran/test/CMakeLists.txt b/hl/fortran/test/CMakeLists.txt
index 55fb987..d84ed4d 100644
--- a/hl/fortran/test/CMakeLists.txt
+++ b/hl/fortran/test/CMakeLists.txt
@@ -8,38 +8,86 @@ INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${
 
 #-- Adding test for hl_f90_tstds
 add_executable (hl_f90_tstds tstds.f90)
-TARGET_NAMING (hl_f90_tstds ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (hl_f90_tstds ${LIB_TYPE} " " " ")
+TARGET_NAMING (hl_f90_tstds STATIC)
+TARGET_FORTRAN_PROPERTIES (hl_f90_tstds STATIC " " " ")
 target_link_libraries (hl_f90_tstds ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
-target_include_directories (hl_f90_tstds PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
+target_include_directories (hl_f90_tstds PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
 set_target_properties (hl_f90_tstds PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (hl_f90_tstds PROPERTIES FOLDER test/hl/fortran)
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_executable (hl_f90_tstds-shared tstds.f90)
+  TARGET_NAMING (hl_f90_tstds-shared SHARED)
+  TARGET_FORTRAN_PROPERTIES (hl_f90_tstds-shared SHARED " " " ")
+  target_link_libraries (hl_f90_tstds-shared ${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})
+  target_include_directories (hl_f90_tstds-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (hl_f90_tstds-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/hl/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-- Adding test for hl_f90_tstlite
 add_executable (hl_f90_tstlite tstlite.f90)
-TARGET_NAMING (hl_f90_tstlite ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite ${LIB_TYPE} " " " ")
+TARGET_NAMING (hl_f90_tstlite STATIC)
+TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite STATIC " " " ")
 target_link_libraries (hl_f90_tstlite ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
-target_include_directories (hl_f90_tstlite PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
+target_include_directories (hl_f90_tstlite PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
 set_target_properties (hl_f90_tstlite PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (hl_f90_tstlite PROPERTIES FOLDER test/hl/fortran)
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_executable (hl_f90_tstlite-shared tstlite.f90)
+  TARGET_NAMING (hl_f90_tstlite-shared SHARED)
+  TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite-shared SHARED " " " ")
+  target_link_libraries (hl_f90_tstlite-shared ${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})
+  target_include_directories (hl_f90_tstlite-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (hl_f90_tstlite-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/hl/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-- Adding test for hl_f90_tstimage
 add_executable (hl_f90_tstimage tstimage.f90)
-TARGET_NAMING (hl_f90_tstimage ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage ${LIB_TYPE} " " " ")
+TARGET_NAMING (hl_f90_tstimage STATIC)
+TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage STATIC " " " ")
 target_link_libraries (hl_f90_tstimage  ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
-target_include_directories (hl_f90_tstimage PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
+target_include_directories (hl_f90_tstimage PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
 set_target_properties (hl_f90_tstimage PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (hl_f90_tstimage PROPERTIES FOLDER test/hl/fortran)
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_executable (hl_f90_tstimage-shared tstimage.f90)
+  TARGET_NAMING (hl_f90_tstimage-shared SHARED)
+  TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage-shared SHARED " " " ")
+  target_link_libraries (hl_f90_tstimage-shared  ${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})
+  target_include_directories (hl_f90_tstimage-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (hl_f90_tstimage-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/hl/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 #-- Adding test for hl_f90_tsttable
 add_executable (hl_f90_tsttable tsttable.f90)
-TARGET_NAMING (hl_f90_tsttable ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable ${LIB_TYPE} " " " ")
+TARGET_NAMING (hl_f90_tsttable STATIC)
+TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable STATIC " " " ")
 target_link_libraries (hl_f90_tsttable ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
-target_include_directories (hl_f90_tsttable PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
+target_include_directories (hl_f90_tsttable PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
 set_target_properties (hl_f90_tsttable PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (hl_f90_tsttable PROPERTIES FOLDER test/hl/fortran)
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_executable (hl_f90_tsttable-shared tsttable.f90)
+  TARGET_NAMING (hl_f90_tsttable-shared SHARED)
+  TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable-shared SHARED " " " ")
+  target_link_libraries (hl_f90_tsttable-shared ${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET})
+  target_include_directories (hl_f90_tsttable-shared PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
+  set_target_properties (hl_f90_tsttable-shared PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER test/hl/fortran
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
+  )
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
 
 include (CMakeTests.cmake)
diff --git a/hl/fortran/test/CMakeTests.cmake b/hl/fortran/test/CMakeTests.cmake
index 3676d24..499e255 100644
--- a/hl/fortran/test/CMakeTests.cmake
+++ b/hl/fortran/test/CMakeTests.cmake
@@ -9,7 +9,7 @@
 add_test (
     NAME HL_FORTRAN_test-clear-objects
     COMMAND    ${CMAKE_COMMAND}
-        -E remove 
+        -E remove
         dsetf1.h5
         dsetf2.h5
         dsetf3.h5
@@ -31,3 +31,34 @@ set_tests_properties (HL_FORTRAN_f90_tstimage PROPERTIES DEPENDS HL_FORTRAN_test
 
 add_test (NAME HL_FORTRAN_f90_tsttable COMMAND $<TARGET_FILE:hl_f90_tsttable>)
 set_tests_properties (HL_FORTRAN_f90_tsttable PROPERTIES DEPENDS HL_FORTRAN_test-clear-objects)
+
+if (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
+  add_test (
+      NAME HL_FORTRAN_test-shared-clear-objects
+      COMMAND    ${CMAKE_COMMAND}
+          -E remove
+          dsetf1.h5
+          dsetf2.h5
+          dsetf3.h5
+          dsetf4.h5
+          dsetf5.h5
+          f1img.h5
+          f1tab.h5
+          tstds.h5
+  )
+  set_tests_properties (HL_FORTRAN_test-shared-clear-objects
+      PROPERTIES DEPENDS "HL_FORTRAN_f90_tsttable;HL_FORTRAN_f90_tstimage;HL_FORTRAN_f90_tstlite;HL_FORTRAN_f90_tstds"
+  )
+
+  add_test (NAME HL_FORTRAN_f90_tstds-shared COMMAND $<TARGET_FILE:hl_f90_tstds-shared>)
+  set_tests_properties (HL_FORTRAN_f90_tstds-shared PROPERTIES DEPENDS HL_FORTRAN_test-shared-clear-objects)
+
+  add_test (NAME HL_FORTRAN_f90_tstlite-shared COMMAND $<TARGET_FILE:hl_f90_tstlite-shared>)
+  set_tests_properties (HL_FORTRAN_f90_tstlite-shared PROPERTIES DEPENDS HL_FORTRAN_test-shared-clear-objects)
+
+  add_test (NAME HL_FORTRAN_f90_tstimage-shared COMMAND $<TARGET_FILE:hl_f90_tstimage-shared>)
+  set_tests_properties (HL_FORTRAN_f90_tstimage-shared PROPERTIES DEPENDS HL_FORTRAN_test-shared-clear-objects)
+
+  add_test (NAME HL_FORTRAN_f90_tsttable-shared COMMAND $<TARGET_FILE:hl_f90_tsttable-shared>)
+  set_tests_properties (HL_FORTRAN_f90_tsttable-shared PROPERTIES DEPENDS HL_FORTRAN_test-shared-clear-objects)
+endif (BUILD_SHARED_LIBS AND NOT SKIP_HDF5_FORTRAN_SHARED)
diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt
index 3c24e40..9673050 100644
--- a/hl/src/CMakeLists.txt
+++ b/hl/src/CMakeLists.txt
@@ -1,12 +1,6 @@
 cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_SRC)
 
-#-----------------------------------------------------------------------------
-# Shared Libs
-#-----------------------------------------------------------------------------
-if (BUILD_SHARED_LIBS)
-  set (HL_BUILT_AS_DYNAMIC_LIB 1)
-endif (BUILD_SHARED_LIBS)
 
 #-----------------------------------------------------------------------------
 # List Source files
@@ -33,18 +27,34 @@ set (HL_HEADERS
     ${HDF5_HL_SRC_SOURCE_DIR}/hdf5_hl.h
 )
 
-add_library (${HDF5_HL_LIB_TARGET} ${LIB_TYPE} ${HL_SRCS} ${HL_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} ${LIB_TYPE} " " " ")
+add_library (${HDF5_HL_LIB_TARGET} STATIC ${HL_SRCS} ${HL_HEADERS})
+TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
-H5_SET_LIB_OPTIONS (${HDF5_HL_LIB_TARGET} ${HDF5_HL_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_HL_LIB_TARGET} ${HDF5_HL_LIB_NAME} STATIC)
 set_target_properties (${HDF5_HL_LIB_TARGET} PROPERTIES
     FOLDER libraries/hl
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIB_TARGET}")
+set (install_targets ${HDF5_HL_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS)
+  add_library (${HDF5_HL_LIBSH_TARGET} SHARED ${HL_SRCS} ${HL_HEADERS})
+  TARGET_C_PROPERTIES (${HDF5_HL_LIBSH_TARGET} SHARED " " " ")
+  target_link_libraries (${HDF5_HL_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  H5_SET_LIB_OPTIONS (${HDF5_HL_LIBSH_TARGET} ${HDF5_HL_LIB_NAME} SHARED ${HDF5_HL_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_HL_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/hl
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIBSH_TARGET}")
+  set (install_targets ${install_targets} ${HDF5_HL_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS)
 
 #-----------------------------------------------------------------------------
-# Add file(s) to CMake Install 
+# Add file(s) to CMake Install
 #-----------------------------------------------------------------------------
 install (
     FILES
@@ -60,16 +70,17 @@ install (
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_HL_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries)
+    INSTALL_TARGET_PDB (${HDF5_HL_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries)
   endif (BUILD_SHARED_LIBS)
-  
+
   install (
       TARGETS
-          ${HDF5_HL_LIB_TARGET}
+          ${install_targets}
       EXPORT
           ${HDF5_EXPORTED_TARGETS}
       LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hllibraries
       ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hllibraries
       RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hllibraries
+      FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hllibraries
   )
 endif (HDF5_EXPORTED_TARGETS)
diff --git a/hl/src/H5TB.c b/hl/src/H5TB.c
index 1ca41a8..0f90393 100644
--- a/hl/src/H5TB.c
+++ b/hl/src/H5TB.c
@@ -2718,7 +2718,7 @@ herr_t H5TBdelete_field(hid_t loc_id,
             goto out;
 
         /* skip the field to delete */
-        if(!H5TB_find_field(member_name, field_name) > 0) {
+        if(!H5TB_find_field(member_name, field_name)) {
             /* get the member type */
             if((member_type_id = H5Tget_member_type(tid_1, (unsigned)i)) < 0)
                 goto out;
diff --git a/hl/src/Makefile.am b/hl/src/Makefile.am
index 09c24dc..f2b90d0 100644
--- a/hl/src/Makefile.am
+++ b/hl/src/Makefile.am
@@ -28,7 +28,7 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src
 lib_LTLIBRARIES=libhdf5_hl.la
 
 # Add libtool numbers to the HDF5 hl library (from config/lt_vers.am)
-libhdf5_hl_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5_hl_la_LDFLAGS= -version-info $(LT_HL_VERS_INTERFACE):$(LT_HL_VERS_REVISION):$(LT_HL_VERS_AGE) $(AM_LDFLAGS)
 
 # List sources to include in the HDF5 HL Library.
 libhdf5_hl_la_SOURCES=H5DO.c H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c
diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in
index 123af7a..6f04a4f 100644
--- a/hl/src/Makefile.in
+++ b/hl/src/Makefile.in
@@ -660,15 +660,33 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 # See libtool versioning documentation online.
 # After making changes, run bin/reconfigure to update other configure related
 # files like Makefile.in.
-LT_VERS_INTERFACE = 10
-LT_VERS_REVISION = 1 
-LT_VERS_AGE = 0
+LT_VERS_INTERFACE = 11
+LT_VERS_REVISION = 0
+LT_VERS_AGE = 1
+LT_CXX_VERS_INTERFACE = 11
+LT_CXX_VERS_REVISION = 0
+LT_CXX_VERS_AGE = 0
+LT_F_VERS_INTERFACE = 10
+LT_F_VERS_REVISION = 2
+LT_F_VERS_AGE = 0
+LT_HL_VERS_INTERFACE = 10
+LT_HL_VERS_REVISION = 2
+LT_HL_VERS_AGE = 0
+LT_HL_CXX_VERS_INTERFACE = 11
+LT_HL_CXX_VERS_REVISION = 0
+LT_HL_CXX_VERS_AGE = 0
+LT_HL_F_VERS_INTERFACE = 10
+LT_HL_F_VERS_REVISION = 2
+LT_HL_F_VERS_AGE = 0
+LT_TOOLS_VERS_INTERFACE = 10
+LT_TOOLS_VERS_REVISION = 2
+LT_TOOLS_VERS_AGE = 0
 
 # This library is our main target.
 lib_LTLIBRARIES = libhdf5_hl.la
 
 # Add libtool numbers to the HDF5 hl library (from config/lt_vers.am)
-libhdf5_hl_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
+libhdf5_hl_la_LDFLAGS = -version-info $(LT_HL_VERS_INTERFACE):$(LT_HL_VERS_REVISION):$(LT_HL_VERS_AGE) $(AM_LDFLAGS)
 
 # List sources to include in the HDF5 HL Library.
 libhdf5_hl_la_SOURCES = H5DO.c H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c
diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt
index 47383ce..916dcf3 100644
--- a/hl/test/CMakeLists.txt
+++ b/hl/test/CMakeLists.txt
@@ -22,8 +22,8 @@ INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR})
 # --------------------------------------------------------------------
 MACRO (HL_ADD_EXE hl_name)
   add_executable (hl_${hl_name} ${hl_name}.c)
-  TARGET_NAMING (hl_${hl_name} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (hl_${hl_name} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (hl_${hl_name} STATIC)
+  TARGET_C_PROPERTIES (hl_${hl_name} STATIC " " " ")
   target_link_libraries (hl_${hl_name}
       ${HDF5_HL_LIB_TARGET}
       ${HDF5_LIB_TARGET}
@@ -32,6 +32,18 @@ MACRO (HL_ADD_EXE hl_name)
   set_target_properties (hl_${hl_name} PROPERTIES FOLDER test/hl)
 ENDMACRO (HL_ADD_EXE)
 
+MACRO (HL_ADD_SHEXE hl_name)
+  add_executable (hl_${hl_name} ${hl_name}.c)
+  TARGET_NAMING (hl_${hl_name} SHARED)
+  TARGET_C_PROPERTIES (hl_${hl_name} SHARED " " " ")
+  target_link_libraries (hl_${hl_name}
+      ${HDF5_HL_LIBSH_TARGET}
+      ${HDF5_LIBSH_TARGET}
+      ${HDF5_TEST_LIBSH_TARGET}
+  )
+  set_target_properties (hl_${hl_name} PROPERTIES FOLDER test/hl)
+ENDMACRO (HL_ADD_SHEXE)
+
 HL_ADD_EXE (test_ds)
 HL_ADD_EXE (test_dset_opt)
 HL_ADD_EXE (test_image)
@@ -43,7 +55,7 @@ HL_ADD_EXE (test_table)
 # This executable is used to generate test files for the test_ds test.
 # It should only be run during development when new test files are needed
 # --------------------------------------------------------------------
-if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+if (HDF5_BUILD_GENERATORS)
   add_executable (hl_gen_test_ds gen_test_ds.c)
   TARGET_NAMING (hl_gen_test_ds STATIC)
   TARGET_C_PROPERTIES (hl_gen_test_ds STATIC " " " ")
@@ -53,6 +65,6 @@ if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
       ${HDF5_TEST_LIB_TARGET}
   )
   set_target_properties (hl_gen_test_ds PROPERTIES FOLDER test/hl/gen)
-endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+endif (HDF5_BUILD_GENERATORS)
 
 include (CMakeTests.cmake)
diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c
index 95ce535..a8ffa44 100644
--- a/hl/test/test_dset_opt.c
+++ b/hl/test/test_dset_opt.c
@@ -496,8 +496,8 @@ error:
  *-------------------------------------------------------------------------
  */
 static size_t
-filter_bogus1(unsigned int flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t nbytes,
+filter_bogus1(unsigned int flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
       size_t *buf_size, void **buf)
 {
     int *int_ptr=(int *)*buf;          /* Pointer to the data values */
@@ -533,8 +533,8 @@ filter_bogus1(unsigned int flags, size_t UNUSED cd_nelmts,
  *-------------------------------------------------------------------------
  */
 static size_t
-filter_bogus2(unsigned int flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t nbytes,
+filter_bogus2(unsigned int flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
       size_t *buf_size, void **buf)
 {
     int *int_ptr=(int *)*buf;          /* Pointer to the data values */
diff --git a/hl/tools/CMakeLists.txt b/hl/tools/CMakeLists.txt
index f58a513..73d1f22 100644
--- a/hl/tools/CMakeLists.txt
+++ b/hl/tools/CMakeLists.txt
@@ -18,8 +18,8 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 INCLUDE_DIRECTORIES (${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5)
 
 add_executable (gif2h5 ${GIF2H5_SRCS})
-TARGET_NAMING (gif2h5 ${LIB_TYPE})
-TARGET_C_PROPERTIES (gif2h5 ${LIB_TYPE} " " " ")
+TARGET_NAMING (gif2h5 STATIC)
+TARGET_C_PROPERTIES (gif2h5 STATIC " " " ")
 target_link_libraries (gif2h5 ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (gif2h5 PROPERTIES FOLDER tools/hl)
 
@@ -29,8 +29,8 @@ set (hdf2gif_SRCS
     ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/hdfgifwr.c
 )
 add_executable (h52gif ${hdf2gif_SRCS})
-TARGET_NAMING (h52gif ${LIB_TYPE})
-TARGET_C_PROPERTIES (h52gif ${LIB_TYPE} " " " ")
+TARGET_NAMING (h52gif STATIC)
+TARGET_C_PROPERTIES (h52gif STATIC " " " ")
 target_link_libraries (h52gif ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (h52gif PROPERTIES FOLDER tools/hl)
 
@@ -40,7 +40,7 @@ if (BUILD_TESTING)
   #  used in the CMake Build system as we rely on the test files that are
   #  shipped with HDF5 source archives
   # --------------------------------------------------------------------
-  if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  if (HDF5_BUILD_GENERATORS)
       add_executable (hl_h52gifgentest ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/h52gifgentst.c)
       TARGET_NAMING (hl_h52gifgentest STATIC)
       TARGET_C_PROPERTIES (hl_h52gifgentest STATIC " " " ")
@@ -48,7 +48,7 @@ if (BUILD_TESTING)
       set_target_properties (hl_h52gifgentest PROPERTIES FOLDER generator/tools/hl)
     
 #      add_test (NAME hl_h52gifgentest COMMAND $<TARGET_FILE:hl_h52gifgentest>)
-  endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  endif (HDF5_BUILD_GENERATORS)
 
   include (CMakeTests.cmake)
 endif (BUILD_TESTING)
@@ -60,8 +60,5 @@ install (
     TARGETS
         gif2h5
         h52gif
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        hltoolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hltoolsapplications
 )
diff --git a/html/ADGuide.html b/html/ADGuide.html
index dd2a653..eac8a2d 100644
--- a/html/ADGuide.html
+++ b/html/ADGuide.html
@@ -39,7 +39,7 @@
     -->
 </td>
 <td valign="top" align="right">
-    <a href="UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -316,7 +316,7 @@
     -->
 </td>
 <td valign="top" align="right">
-    <a href="UG/index.html">HDF5 User's Guide</a> <br />
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br />
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br />
     <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br />
 </td></tr>
@@ -327,7 +327,7 @@
 
 <?php include("./ed_libs/Footer.htm"); ?>
  
-Last modified:  13 May 2015
+Last modified:  5 November 2015
 
 <br />
 <br />
diff --git a/html/ADGuide/Changes.html b/html/ADGuide/Changes.html
index 142c9f1..0e80e80 100755
--- a/html/ADGuide/Changes.html
+++ b/html/ADGuide/Changes.html
@@ -35,7 +35,7 @@
     -->
 </td>
 <td valign="top" align="right">
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -184,8 +184,332 @@ in the transition from HDF5 Release 1.8.15 to Release 1.8.16.
 -->
 
 
+<!--
+<br /> 
+<br /> 
+<br /> 
+<br />
+-->
+
+ 
+<a name="1816">
+<h2>Release 1.8.16 of November 2015 (current release) versus Release 1.8.15</h2>
+</a>
+<dir>
+
+
+This section lists interface-level changes and 
+other user-visible changes in behavior 
+in the transition from HDF5 Release 1.8.15 to Release 1.8.16.
+
+    <h3>New and Changed Functions, Classes, Subroutines, Wrappers, 
+        and Macros</h3>
+        <dir>
+        <dl>    
+            <dt><strong>In the C Interface (main library)</strong>
+                </dt>
+
+            <dt>New HDF5 Plugin Interface (H5PL) 
+                </dt>
+                <dd>A new HDF5 Plugin Interface (H5PL), enabling 
+                    programmatic control of dynamically loaded plugins, 
+                    was introduced at HDF5 Release 1.8.15.
+                    This interface was only partially documented at that time, 
+                    but more complete documentation is now available:
+                    <ul>
+                    <li>“<a href="../Advanced/DynamicallyLoadedFilters/index.html">Dynamic 
+                        Plugins in HDF5</a>” 
+                        in <i>Advanced Topics in HDF5</i> 
+                        </li>
+                    <li>“<a href="../RM/RM_H5PL.html">H5PL: 
+                        Plugin Interface</a>” 
+                        in the <i>HDF5 Reference Manual</i>
+                        </li>
+                        <ul>
+                        <li><a href="../RM/RM_H5PL.html#Plugin-SetLoadingState">
+                            <code>H5PLset_loading_state</code></a>
+                        </li>
+                        <li><a href="../RM/RM_H5PL.html#Plugin-GetLoadingState">
+                            <code>H5PLget_loading_state</code></a>
+                        </li>
+                        </ul>
+                    </ul>
+                </dd>
+
+            <p />
+            <dt>The following new C function has been added:
+                </dt>
+                <dd>This function reports whether the linked
+                    version of the HDF5 Library was built 
+                    with the thread-safety feature enabled.
+                    <ul>
+                    <li><a href="../RM/RM_H5.html#Library-IsLibraryThreadsafe">
+                        <code>H5is_library_threadsafe</code></a>
+                    </ul>
+                    </dd>
+
+            <p />
+            <dt>The following flag has been removed:
+                </dt>
+                <dd><code>H5F_ACC_DEBUG</code> flag for 
+                    <code>H5Fopen/create</code>
+                    <font size="1"><br /> <br /></font>
+                    The flag <code>H5F_ACC_DEBUG</code> was used to provide 
+                    extra debugging information for HDF Library developers.
+                    This flag and the underlying functionality have been 
+                    removed from the library due to disuse. 
+                    The symbol remains defined since it was visible in
+                    <code>H5Fpublic.h</code>, but it has been set to 
+                    zero (<code>0</code>) and has no effect anywhere 
+                    in the library.
+                    <ul>
+                    <li><a href="../RM/RM_H5F.html#File-Open">
+                        <code>H5Fopen</code></a>
+                    </ul>
+                    </dd>
+
+            <p>
+            <dt><strong>In the C++ Interface</strong>
+                </dt>
+
+            <dt>The following features have been added:
+                </dt>
+                <dd>
+                <li>New class <code>H5::ObjCreatPropList</code>
+                    for the object creation property list class
+                    <p />
+                    The new class <code>H5::ObjCreatPropList</code>
+                    is derived from <code>H5::PropList</code> and
+                    is a baseclass of <code>H5::DSetCreatPropList</code>.  
+                    Additional property list classes will be added to 
+                    the library in future releases and some of those will
+                    be derived from <code>H5::ObjCreatPropList</code>.
+                    </li>
+                <li>New wrappers for the C functions 
+                    <code>H5P[s/g]et_attr_phase_change</code> and
+                    <code>H5P[s/g]et_attr_creation_order</code>
+                    <p />
+                    The following wrappers were added to the class 
+                    <code>H5::ObjCreatPropList</code> 
+                    for the respective C functions:
+                    <table>
+                    <tr><td align="left"><u>C Function</u></th>
+                        <td align="left"><u>C++ Wrapper</u></th>
+                        </tr>
+                    <tr>
+                        <td><code>H5Pset_attr_phase_change</code></td>
+                        <td><code>H5::ObjCreatPropList::setAttrPhaseChange
+                                </code></td>
+                        </tr>
+                    <tr>
+                        <td><code>H5Pget_attr_phase_change</code></td>
+                        <td><code>H5::ObjCreatPropList::getAttrPhaseChange
+                                </code></td>
+                        </tr>
+                    <tr>
+                        <td><code>H5Pset_attr_creation_order</code></td>
+                        <td><code>H5::ObjCreatPropList::setAttrCrtOrder
+                                </code></td>
+                        </tr>
+                    <tr>
+                        <td><code>H5Pget_attr_creation_order  
+                                </code></td>
+                        <td><code>H5::ObjCreatPropList::getAttrCrtOrder
+                                </code></td>
+                        </tr>
+                    </table>
+                    </li>
+
+                    </dd>
+
+        </dl>
+        </dir>
+
+
+    <h3>Library Configuration</h3>
+        <dir>
+        <dl>    
+            <p />
+            <dt>Use of thread-safety with the HDF5 High-level Library
+                has been declared unsupported in the build tools: 
+                Autotools and CMake.
+                <br /> 
+                </dt>
+                <dd>The global lock used by the thread-safety mechanism 
+                    is not raised to the high-level library level, 
+                    making it possible that the library state could change 
+                    if a context switch were to occur in a high-level library 
+                    call. Because of this, the combination of thread-safety 
+                    and the high-level library is officially unsupported by
+                    The HDF Group.
+                    <p>
+                    Though this combination has never been supported in HDF5, 
+                    this was not enforced by the build systems. 
+                    With this release, the combination has been explicitly 
+                    flagged as unsupported in Autotools and CMake, 
+                    the build systems used with HDF5.
+                    <p>
+                    The new unsupported declaration will cause an Autotools 
+                    configure step to fail if <code>--enable-threadsafe</code> 
+                    and <code>--enable-hl</code> are combined unless 
+                    additional options are specified (see below).
+                    Since the high-level library is built by default, 
+                    this means that these extra configuration options will 
+                    need to be used any time <code>--enable-threadsafe</code> 
+                    is selected.
+                    <p>
+                    To use Autotools to build an application with 
+                    <code>--enable-threadsafe</code>, 
+                    use one of the following approaches:
+                    <ul>
+                        <li>Use <code>--disable-hl</code> to disable the 
+                            high-level library. 
+                            <i>(Recommended)</i>
+                            </li>
+                        <li>Use <code>--enable-unsupported</code> to build the 
+                            high-level library with the thread-safety feature. 
+                            </li>
+                    </ul>
+                    <p>
+                    To use CMake to build an application with 
+                    <code>HDF5_ENABLE_THREADSAFE=ON</code>, 
+                    use one of the following approaches:
+                    <ul>
+                        <li>Use <code>HDF5_BUILD_HL_LIB=OFF</code> 
+                            to disable the high-level library. 
+                            <i>(Recommended)</i>
+                            </li>
+                        <li>Use <code>HDF5_ALLOW_UNSUPPORTED=ON</code> 
+                            to build the high-level library with the 
+                            thread-safety feature. 
+                            </li>
+                    </ul>
+                    <p>
+                    Since this combination is unsupported, applications 
+                    using it must be carefully tested for potential 
+                    thread-safety failures.
+                </dd>    
+
+
+        </dl>
+        </dir>
+
+    <h3>Compatibility Notes and Report</h3>
+        <dir>
+        <dl>    
+            <dt><strong>Decoupled shared object version numbers 
+                (<code>soname</code>)</strong>
+                </dt>
+                <dd>Shared object version numbers, <code>soname</code>, 
+                    for HDF5 wrapper libraries, 
+                    such as the C++ and Fortran libraries, 
+                    have been decoupled from the shared object version 
+                    number for the HDF5 library.  
+                    In this and future releases, each library’s
+                    <code>soname</code> will be maintained on an 
+                    individual basis according to the interface changes 
+                    specific to each wrapper library.
+                    <p />
+                </dd>
+
+            <dt><strong>Changed shared library interface version 
+                numbers (<code>soname</code>)</strong>
+                </dt>
+                <dd>
+                    For HDF5 Release 1.8.16, the shared object version number 
+                    have changed as follows.
+                    <dir>
+                    <table width="100%" border="0">
+                    <tr valign="top" align="left">
+                      <th>Library</td>
+                      <th>Release 1.8.15  </td>
+                      <th>Release 1.8.16  </td>
+                      <th>Reason for Change</td>
+                    </tr>
+                    <tr valign="top" align="left">
+                      <td>HDF5 Library  </td>
+                      <td>10.0.1</td>
+                      <td>10.1.0</td>
+                      <td>Added APIs</td>
+                    </tr>
+                    <tr valign="top" align="left">
+                      <td>C++ Library</td>
+                      <td>10.0.1</td>
+                      <td>11.0.0</td>
+                      <td>Changes in existing APIs</td>
+                    </tr>
+                    <tr valign="top" align="left">
+                      <td>High‐level C++ Library</td>
+                      <td>10.0.1</td>
+                      <td>11.0.0</td>
+                      <td>Changes in existing APIs</td>
+                    </tr>
+                    <tr valign="top" align="left">
+                      <td>All others</td>
+                      <td>10.0.1</td>
+                      <td>10.0.2</td>
+                      <td>Code changes that did not result in interface changes</td>
+                    </tr>
+                    </table>
+                    </dir>
+                    <p />
+                </dd>
+
+            <dt><strong>Compatibility report for Release 1.8.16 versus 
+                Release 1.8.15</strong>
+                </dt>
+                <dd>
+                    The following interface compatibility report 
+                    provides a full list of the changed symbols:
+                    <p />
+                    <a href="Compatibility_Report/CR_1.8.16.html">API 
+                    compatibility report for the HDF5 Library 
+                    between 1.8.15 and 1.8.16 versions on 
+                    x86</a>
+                </dd>
+
+<!--
+            <p>
+            <dt><strong>Changed shared library interface version 
+                number (<code>soname</code>)</strong>
+                </dt>
+                <dd>
+
+                    < More detailed description of changes >
+
+                    <p> 
+                    Due to these changes, some shared library interface version 
+                    numbers (<code>soname</code>) have been increased.
+                    For a full list of the changed symbols, see the
+                    interface compatibility report linked immediately above.
+                </dd>
+-->
+
+
+<!--
+            <p>
+            <dt><strong>Changed shared library interface version 
+                number (<code>soname</code>)</strong>
+                </dt>
+                <dd>In the C++ interface, two overloaded methods
+                    have been combined into a single method
+                    and one constructor has been deprecated.
+                    <p> 
+                    Due to these changes, the shared library interface version 
+                    number (<code>soname</code>) has been increased.
+                    For a full list of the changed symbols, see the
+                    interface compatibility report linked immediately above.
+                </dd>
+-->
+
+        </dl>
+        </dir>
+
+
+
+<!-- MASK 1.8.15 TO RETAIN TEMPLATE VALUE
 <a name="1815">
-<h2>Release 1.8.15 of May 2015 (current release) versus Release 1.8.14</h2>
+<h2>Release 1.8.15 of May 2015 versus Release 1.8.14</h2>
 </a>
 <dir>
 
@@ -205,6 +529,7 @@ in the transition from HDF5 Release 1.8.14 to Release 1.8.15.
                 </dt>
                 <dd>Memory allocation functions that use the library’s 
                     allocator.
+-->
 <!--
                     <p />
       HDF5 filters may need to allocate or resize the buffer that is passed
@@ -232,6 +557,7 @@ in the transition from HDF5 Release 1.8.14 to Release 1.8.15.
       fix. This work only applies to third-party filters that are compiled
       separately from the library.
 -->
+<!--
                     <ul>
                     <li><a href="../RM/RM_H5.html#Library-AllocateMemory">
                         <code>H5allocate_memory</code></a>
@@ -245,12 +571,14 @@ in the transition from HDF5 Release 1.8.14 to Release 1.8.15.
                     of the loading of dynamic plugin filters 
                     in user applications:
                     <ul>
+-->
 <!--
                     <li><a href="../RM/RM_H5PL.html#Plugin-SetLoadingState">
                         <code>H5PLset_loading_state</code></a>
                     <li><a href="../RM/RM_H5PL.html#Plugin-GetLoadingState">
                         <code>H5PLget_loading_state</code></a>
 -->
+<!--
                     <li><code>H5PLset_loading_state</code>
                     <li><code>H5PLget_loading_state</code>
                     <i>
@@ -265,6 +593,7 @@ in the transition from HDF5 Release 1.8.14 to Release 1.8.15.
                     </ul>
                     </dd>
 
+-->
 <!--
             <p>
             <dt>Discussion
@@ -300,8 +629,8 @@ in the transition from HDF5 Release 1.8.14 to Release 1.8.15.
             are not to be in 1.8.15.]
             </i></font>
             </dd>
--->
 
+-->
 <!--
 
             <p>
@@ -315,6 +644,7 @@ in the transition from HDF5 Release 1.8.14 to Release 1.8.15.
                 <dd>Further elaboration
                     </dd>
 -->
+<!--
 
             <p>
             <dt><strong>In the C++ Interface</strong>
@@ -433,12 +763,14 @@ H5O_NAMED_DATATYPE_F
 H5O_TYPE_NTYPES_F   </pre>
                     </dd>
 
+-->
 <!--
             <p>
             <dt><strong>In the high-level library Fortran Interface</strong>
                 </dt>
 
 -->
+<!--
 
             <p>
             <dt><strong>For parallel applications</strong>
@@ -459,6 +791,7 @@ H5O_TYPE_NTYPES_F   </pre>
 
                     </dd>
 
+-->
 <!--
             <p>
             <dt><strong>In somewhere else</strong>
@@ -469,6 +802,7 @@ H5O_TYPE_NTYPES_F   </pre>
                 <dd>Further elaboration
                     </dd>
 -->
+<!--
 
         </dl>
         </dir>
@@ -505,8 +839,13 @@ H5O_TYPE_NTYPES_F   </pre>
         </dir>
 
 </dir>
+-->
+<!-- END 1.8.15 MASK -->
 
 
+    <br />
+</dir>
+
         
 
 <a name="18x">
@@ -583,7 +922,7 @@ Release to Release for HDF5 Releases 1.4.0 through 1.6.10</a>”.
     -->
 </td>
 <td valign="top" align="right">
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -598,7 +937,7 @@ Release to Release for HDF5 Releases 1.4.0 through 1.6.10</a>”.
 <!-- Created: Spring 1999 -->
 <!-- hhmts start -->
 <hr />
-Last modified: 12 May 2015
+Last modified: 10 November 2015
 <!-- hhmts end -->
 <br />
 <br />
diff --git a/html/ADGuide/Changes_1_4-1_6.html b/html/ADGuide/Changes_1_4-1_6.html
index 7d0fd3e..75c91c2 100755
--- a/html/ADGuide/Changes_1_4-1_6.html
+++ b/html/ADGuide/Changes_1_4-1_6.html
@@ -35,7 +35,7 @@
     -->
 </td>
 <td valign="top" align="right">
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -3376,7 +3376,7 @@ V1.4.0
     -->
 </td>
 <td valign="top" align="right">
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
diff --git a/html/ADGuide/Changes_1_8_x.html b/html/ADGuide/Changes_1_8_x.html
index 2b3f111..be49b55 100755
--- a/html/ADGuide/Changes_1_8_x.html
+++ b/html/ADGuide/Changes_1_8_x.html
@@ -35,7 +35,7 @@
     -->
 </td>
 <td valign="top" align="right">
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -92,6 +92,332 @@ to Release for HDF5 Releases 1.4.0 through 1.6.10</a>” for:
 
 
 
+
+
+<a name="1815">
+<h2>Release 1.8.15 of May 2015 versus Release 1.8.14</h2>
+</a>
+<dir>
+
+This section lists interface-level changes and 
+other user-visible changes in behavior 
+in the transition from HDF5 Release 1.8.14 to Release 1.8.15.
+
+    <h3>New and Changed Functions, Classes, Subroutines, Wrappers, 
+        and Macros</h3>
+        <dir>
+        <dl>    
+            <dt><strong>In the C Interface (main library)</strong>
+                </dt>
+
+
+            <dt>The following new C functions have been added:
+                </dt>
+                <dd>Memory allocation functions that use the library’s 
+                    allocator.
+<!--
+                    <p />
+      HDF5 filters may need to allocate or resize the buffer that is passed
+      to them from the library. If the filter has been compiled separately
+      from the library, it and the library may use different memory
+      allocation libraries for the (re)allocation and free calls. This can
+      cause heap corruption and crashes. This is particularly a problem on
+      Windows since each C run-time library is implemented as a separate
+      shared library, but can also show up on POSIX systems when debug or
+      high-performance allocation libraries are in use.
+                    <p />
+
+      Two new functions (H5allocate_memory() and H5resize_memory()) were
+      added to the HDF5 C library. These functions have the same semantics as
+      malloc/calloc and realloc, respectively. Their primary purpose is to
+      allow filter authors to allocate or resize memory using the same
+      memory allocation library as the HDF5 library. Filter authors are
+      highly encouraged to use these new functions in place of malloc,
+      calloc, and realloc. They should also use the H5free_memory() call when
+      freeing memory.
+                    <p />
+
+      Note that the filters provided with the library (zlib, szip, etc.) do
+      not experience the problems that these new functions are intended to
+      fix. This work only applies to third-party filters that are compiled
+      separately from the library.
+-->
+                    <ul>
+                    <li><a href="../RM/RM_H5.html#Library-AllocateMemory">
+                        <code>H5allocate_memory</code></a>
+                    <li><a href="../RM/RM_H5.html#Library-ResizeMemory">
+                        <code>H5resize_memory</code></a>
+                    </ul>
+                    </dd>
+
+                <p>
+                <dd>The following functions enable programmatic control 
+                    of the loading of dynamic plugin filters 
+                    in user applications:
+                    <ul>
+<!--
+                    <li><a href="../RM/RM_H5PL.html#Plugin-SetLoadingState">
+                        <code>H5PLset_loading_state</code></a>
+                    <li><a href="../RM/RM_H5PL.html#Plugin-GetLoadingState">
+                        <code>H5PLget_loading_state</code></a>
+-->
+                    <li><code>H5PLset_loading_state</code>
+                    <li><code>H5PLget_loading_state</code>
+                    <i>
+                    <br />
+                    For preliminary documentation, see
+                    “<a href="../Advanced/DynamicallyLoadedFilters/HDF5_Dynamic_Plugin_Programatic_Control(Preliminary).pdf">New 
+                    HDF5 APIs Provide Programmatic Control of Dynamic 
+                    Plugins</a>.”
+                    <br />
+                    Final documentation is anticipated in July 2015.
+                    </i>
+                    </ul>
+                    </dd>
+
+<!--
+            <p>
+            <dt>Discussion
+                </dt>
+                <dd>Further elaboration
+                    </dd>
+
+-->
+<!--
+            <dt>The following new C functions have been added:
+                </dt>
+            <dd>To enable a single write or read call to operate 
+                on multiple datasets:
+                <ul>
+                <li><a href="../RM/RM_H5D.html#Dataset-WriteMulti">
+                    <code>H5Dwrite_multi</code></a>
+                <li><a href="../RM/RM_H5D.html#Dataset-ReadMulti">
+                    <code>H5Dread_multi</code></a>
+                <li>Related struct: <code>H5D_rw_multi_t</code>
+                </ul>
+                </dd>
+
+
+            </dl>    
+            <font color="brown"><i>
+            Included for confirmation;
+            these functions are not believed to be in 1.8.15.
+            </i></font>
+
+            <p>
+            <dd><font color="brown"><i>[This document assumes that
+            <code>H5Dwrite_multi</code> and <code>H5Dread_multi</code>
+            are not to be in 1.8.15.]
+            </i></font>
+            </dd>
+-->
+
+<!--
+
+            <p>
+            <dt><strong>In the high-level library C Interface</strong>
+                </dt>
+
+-->
+<!--
+            <dt>Discussion
+                </dt>
+                <dd>Further elaboration
+                    </dd>
+-->
+
+            <p>
+            <dt><strong>In the C++ Interface</strong>
+                </dt>
+
+            <dt>The following features have been added:
+                </dt>
+                <dd>
+                <li>New wrappers  for the C functions
+                    <code>H5Pset_libver_bounds</code> and
+                    <code>H5Pget_libver_bounds</code>
+                    <p />
+                    The following wrappers have been added to class 
+                    <code>H5::FileAccPropList</code>.  
+                    The first sets the bounds on versions of the HDF5 Library 
+                    format to be used when creating or writing objects;
+                    the second retrieves the current settings: 
+                    <pre>
+    void setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const;
+
+    void getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const;
+                    </pre>
+
+                <li>New wrappers to retrieve the version of an object header
+                    <p />
+                    The following wrappers have been added to class 
+                    <code>H5::CommonFG</code> to retrieve the 
+                    object header version of an object in a file or group,
+                    given the object’s name.
+                    <pre>
+    unsigned childObjVersion(const char* objname) const;
+
+    unsigned childObjVersion(const H5std_string& objname) const;
+                    </pre>
+
+                <li>A new <code>DataType</code> constructor
+                    <p />
+                    A new <code>DataType</code> constructor takes a 
+                    <code>PredType</code> object and invokes 
+                    <code>H5Tcopy</code> to generate another datatype 
+                    identifier from a predefined datatype.
+
+                    </dd>
+
+
+            <dt>The following features have been changed:
+                </dt>
+                <dd>
+                <li>Combined <code>H5File::getObjCount</code> 
+                    overloaded methods 
+                    <p />
+                   The following methods:
+                   <pre>
+    ssize_t getObjCount(unsigned types) const;
+
+    ssize_t getObjCount() const;
+                   </pre>
+                   have been combined into the following:
+                   <pre>
+    ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const;
+                   </pre>
+
+                <li>Deprecated constructors
+                    <p />
+                    The following two constructors of the classes 
+                    <code>AbstractDs</code>,
+                    <code>IdComponent</code>,
+                    <code>H5Location</code>,
+                    and <code>H5Object</code>
+                    are no longer appropriate after the data member
+                    <code>id</code> was moved from <code>IdComponent</code>
+                    to the sub-classes in previous releases:
+                    <pre>
+    <Classname>(const hid_t h5_id);
+
+    <Classname>(const <Classname>& original);
+                    </pre>
+                    The copy constructors have been no-ops and are removed 
+                    in this HDF5 Release 1.8.15.  
+                    The other constructors will be removed in 
+                    HDF5 Release 1.10 and are expected to be removed
+                    from HDF5 Release 1.8.17 if their removal causes 
+                    no problems.
+
+                    </dd>
+
+            <p>
+            <dt><strong>In the Fortran Interface</strong>
+                </dt>
+
+            <dt>The following Fortran 2003 API has been added:
+                </dt>
+                <dd><a href="../RM/RM_H5T.html#Datatype-EnumInsert">
+                    <code>h5tenum_insert_f</code></a> 
+                    </dd>
+                <p>
+                <dd>Operation of the new Fortran 2003 version of this API
+                    is more consistent with the operation of the C API 
+                    than was the Fortran 90 version.
+                    </dd>
+                <dd>Users are strongly encouraged to use the Fortran 2003 API.
+                    </dd>
+
+            <p>
+            <dt>Several global variables have been added in the Fortran API.
+                These global variables are equivalent in definition 
+                to the comparable C definitions:
+                </dt>
+                <dd><pre>
+H5G_UDLINK_F
+H5G_SAME_LOC_F
+H5O_TYPE_UNKNOWN_F
+H5O_TYPE_GROUP_F
+H5O_TYPE_DATASET_F
+H5O_NAMED_DATATYPE_F
+H5O_TYPE_NTYPES_F   </pre>
+                    </dd>
+
+<!--
+            <p>
+            <dt><strong>In the high-level library Fortran Interface</strong>
+                </dt>
+
+-->
+
+            <p>
+            <dt><strong>For parallel applications</strong>
+                </dt>
+
+            <dt>A fix for issues encountered upon calling 
+                <code>MPI_Finalize</code> without having closed everything
+                in an HDF5 file
+                <p />
+                </dt>
+                <dd>An attribute destroy callback has been attached
+                    to <code>MPI_COMM_SELF</code> that shuts down the 
+                    HDF5 Library when <code>MPI_COMM_SELF</code>
+                    is destroyed, that is, on <code>MPI_Finalize</code>. 
+                    This should fix several issues that users see when they 
+                    forget to close HDF5 objects before calling
+                    <code>MPI_Finalize()</code>.
+
+                    </dd>
+
+<!--
+            <p>
+            <dt><strong>In somewhere else</strong>
+                </dt>
+
+            <dt>Discussion
+                </dt>
+                <dd>Further elaboration
+                    </dd>
+-->
+
+        </dl>
+        </dir>
+
+
+    <h3>Compatibility Report and Comments</h3>
+        <dir>
+        <dl>    
+            <dt><strong>Compatibility report for Release 1.8.15 versus 
+                Release 1.8.14</strong>
+                </dt>
+                <dd>
+                    <a href="Compatibility_Report/CR_1.8.15.html">API 
+                    compatibility report for the HDF5 Library 
+                    between 1.8.14 and 1.8.15 versions on 
+                    x86</a>
+                </dd>
+
+            <p>
+            <dt><strong>Changed shared library interface version 
+                number (<code>soname</code>)</strong>
+                </dt>
+                <dd>In the C++ interface, two overloaded methods
+                    have been combined into a single method
+                    and one constructor has been deprecated.
+                    <p> 
+                    Due to these changes, the shared library interface version 
+                    number (<code>soname</code>) has been increased.
+                    For a full list of the changed symbols, see the
+                    interface compatibility report linked immediately above.
+                </dd>
+
+        </dl>
+        </dir>
+
+</dir>
+
+
+        
 <a name="1814">
 <h2>Release 1.8.14 of November 2014 versus Release 1.8.13</h2>
 </a>
@@ -8113,7 +8439,7 @@ Release to Release for HDF5 Releases 1.4.0 through 1.6.10</a>”.
     -->
 </td>
 <td valign="top" align="right">
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -8128,7 +8454,7 @@ Release to Release for HDF5 Releases 1.4.0 through 1.6.10</a>”.
 <!-- Created: Spring 1999 -->
 <!-- hhmts start -->
 <hr />
-Last modified: 13 May 2015
+Last modified: 23 September 2015
 <!-- hhmts end -->
 <br />
 <br />
diff --git a/html/ADGuide/CompatFormat180.html b/html/ADGuide/CompatFormat180.html
index 38cd0b6..6e5928b 100644
--- a/html/ADGuide/CompatFormat180.html
+++ b/html/ADGuide/CompatFormat180.html
@@ -36,7 +36,7 @@ HDF5 Format Compatibility
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -1058,7 +1058,7 @@ to create no compatibility concerns</a>.”
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
diff --git a/html/ADGuide/Compatibility_Report/CR_1.8.16.html b/html/ADGuide/Compatibility_Report/CR_1.8.16.html
new file mode 100644
index 0000000..0bc2aac
--- /dev/null
+++ b/html/ADGuide/Compatibility_Report/CR_1.8.16.html
@@ -0,0 +1,6684 @@
+<!-- kind:binary;verdict:incompatible;affected:3.9;added:35;removed:6;type_problems_high:0;type_problems_medium:0;type_problems_low:2;interface_problems_high:6;interface_problems_medium:131;interface_problems_low:158;changed_constants:5;tool_version:1.99.9 -->
+<!-- kind:source;verdict:incompatible;affected:4.2;added:35;removed:6;type_problems_high:0;type_problems_medium:0;type_problems_low:2;interface_problems_high:0;interface_problems_medium:164;interface_problems_low:131;changed_constants:11;tool_version:1.99.9 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="keywords" content="hdf5, compatibility, API, report" />
+    <meta name="description" content="Compatibility report for the hdf5 library between 1.8.15-patch1 and 1.8.16 versions" />
+    <title>
+        hdf5: 1.8.15-patch1 to 1.8.16 compatibility report
+    </title>
+    <style type="text/css">
+    body {
+    font-family:Arial, sans-serif;
+    color:Black;
+    font-size:14px;
+}
+hr {
+    color:Black;
+    background-color:Black;
+    height:1px;
+    border:0;
+}
+h1 {
+    margin-bottom:0px;
+    padding-bottom:0px;
+    font-size:26px;
+}
+h2 {
+    margin-bottom:0px;
+    padding-bottom:0px;
+    font-size:20px;
+    white-space:nowrap;
+}
+span.section {
+    font-weight:bold;
+    cursor:pointer;
+    font-size:16px;
+    color:#003E69;
+    white-space:nowrap;
+    margin-left:5px;
+}
+span.new_sign {
+    font-weight:bold;
+    margin-left:26px;
+    font-size:16px;
+    color:#003E69;
+}
+span.new_sign_lbl {
+    margin-left:28px;
+    font-size:14px;
+    color:Black;
+}
+span:hover.section {
+    color:#336699;
+}
+span.section_affected {
+    cursor:pointer;
+    margin-left:7px;
+    padding-left:15px;
+    font-size:14px;
+    color:#cc3300;
+}
+span.section_info {
+    cursor:pointer;
+    margin-left:7px;
+    padding-left:15px;
+    font-size:14px;
+    color:Black;
+}
+span.extendable {
+    font-weight:100;
+    font-size:16px;
+}
+span.h_name {
+    color:#cc3300;
+    font-size:14px;
+    font-weight:bold;
+}
+div.h_list {
+    font-size:15px;
+    padding-left:5px;
+}
+span.ns {
+    color:#408080;
+    font-size:15px;
+}
+div.lib_list {
+    font-size:15px;
+    padding-left:5px;
+}
+span.lib_name {
+    color:Green;
+    font-size:14px;
+    font-weight:bold;
+}
+span.iname {
+    font-weight:bold;
+    font-size:16px;
+    color:#003E69;
+    margin-left:5px;
+}
+span.iname_b {
+    font-weight:bold;
+    font-size:15px;
+}
+span.iname_a {
+    color:#333333;
+    font-weight:bold;
+    font-size:15px;
+}
+span.sym_p {
+    font-weight:normal;
+    white-space:normal;
+}
+div.affect {
+    padding-left:15px;
+    padding-bottom:4px;
+    font-size:14px;
+    font-style:italic;
+    line-height:13px;
+}
+div.affected {
+    padding-left:30px;
+    padding-top:5px;
+}
+table.ptable {
+    border-collapse:collapse;
+    border:1px outset black;
+    line-height:16px;
+    margin-left:15px;
+    margin-top:3px;
+    margin-bottom:3px;
+    width:900px;
+}
+table.ptable td {
+    border:1px solid gray;
+    padding: 3px;
+}
+table.vtable {
+    border-collapse:collapse;
+    border:1px outset black;
+    line-height:16px;
+    margin-left:30px;
+    margin-top:10px;
+    width:100px;
+}
+table.vtable td {
+    border:1px solid gray;
+    white-space:nowrap;
+    padding: 3px;
+}
+table.ptable th, table.vtable th {
+    background-color:#eeeeee;
+    font-weight:bold;
+    color:#333333;
+    font-family:Verdana, Arial;
+    font-size:13px;
+    border:1px solid gray;
+    text-align:center;
+    vertical-align:top;
+    white-space:nowrap;
+    padding: 3px;
+}
+table.summary {
+    border-collapse:collapse;
+    border:1px outset black;
+}
+table.summary th {
+    background-color:#eeeeee;
+    font-weight:100;
+    text-align:left;
+    font-size:15px;
+    white-space:nowrap;
+    border:1px inset gray;
+    padding: 3px;
+}
+table.summary td {
+    text-align:right;
+    font-size:16px;
+    white-space:nowrap;
+    border:1px inset gray;
+    padding: 3px 5px 3px 10px;
+}
+table.code_view {
+    cursor:text;
+    margin-top:7px;
+    margin-left:15px;
+    font-family:Monaco, Consolas, 'DejaVu Sans Mono', 'Droid Sans Mono', Monospace;
+    font-size:14px;
+    padding:10px;
+    border:1px solid #e0e8e5;
+    color:#444444;
+    background-color:#eff3f2;
+    overflow:auto;
+}
+table.code_view td {
+    padding-left:15px;
+    text-align:left;
+    white-space:nowrap;
+}
+span.mangled {
+    padding-left:15px;
+    font-size:14px;
+    cursor:text;
+    color:#444444;
+}
+span.sym_ver {
+    color:#333333;
+    white-space:nowrap;
+    font-family:"DejaVu Sans Mono", Monospace;
+}
+span.attr {
+    color:#333333;
+    font-weight:100;
+}
+span.color_p {
+    font-style:italic;
+    color:Brown;
+}
+span.param {
+    font-style:italic;
+}
+span.focus_p {
+    font-style:italic;
+    color:Red;
+}
+span.ttype {
+    font-weight:100;
+}
+span.nowrap {
+    white-space:nowrap;
+}
+span.value {
+    white-space:nowrap;
+    font-weight:bold;
+}
+td.passed {
+    background-color:#CCFFCC;
+}
+td.warning {
+    background-color:#F4F4AF;
+}
+td.failed {
+    background-color:#FFCCCC;
+}
+td.new {
+    background-color:#C6DEFF;
+}
+.tabset {
+    float:left;
+}
+a.tab {
+    border:1px solid #AAA;
+    float:left;
+    margin:0px 5px -1px 0px;
+    padding:3px 5px 3px 5px;
+    position:relative;
+    font-size:14px;
+    background-color:#DDD;
+    text-decoration:none;
+    color:Black;
+}
+a.disabled:hover
+{
+    color:Black;
+    background:#EEE;
+}
+a.active:hover
+{
+    color:Black;
+    background:White;
+}
+a.active {
+    border-bottom-color:White;
+    background-color:White;
+}
+div.tab {
+    border:1px solid #AAA;
+    padding:0 7px 0 12px;
+    width:97%;
+    clear:both;
+}
+    </style>
+    <script type="text/javascript" language="JavaScript">
+    <!--
+    function showContent(header, id)
+{
+    e = document.getElementById(id);
+    if(e.style.display == 'none')
+    {
+        e.style.display = 'block';
+        e.style.visibility = 'visible';
+        header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]");
+    }
+    else
+    {
+        e.style.display = 'none';
+        e.style.visibility = 'hidden';
+        header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
+    }
+}
+function initTabs()
+{
+    var url = window.location.href;
+    if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
+    {
+        var tab1 = document.getElementById('BinaryID');
+        var tab2 = document.getElementById('SourceID');
+        tab1.className='tab disabled';
+        tab2.className='tab active';
+    }
+    var sets = document.getElementsByTagName('div');
+    for (var i = 0; i < sets.length; i++)
+    {
+        if (sets[i].className.indexOf('tabset') != -1)
+        {
+            var tabs = [];
+            var links = sets[i].getElementsByTagName('a');
+            for (var j = 0; j < links.length; j++)
+            {
+                if (links[j].className.indexOf('tab') != -1)
+                {
+                    tabs.push(links[j]);
+                    links[j].tabs = tabs;
+                    var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
+                    //reset all tabs on start
+                    if (tab)
+                    {
+                        if (links[j].className.indexOf('active')!=-1) {
+                            tab.style.display = 'block';
+                        }
+                        else {
+                            tab.style.display = 'none';
+                        }
+                    }
+                    links[j].onclick = function()
+                    {
+                        var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
+                        if (tab)
+                        {
+                            //reset all tabs before change
+                            for (var k = 0; k < this.tabs.length; k++)
+                            {
+                                document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
+                                this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
+                            }
+                            this.className = 'tab active';
+                            tab.style.display = 'block';
+                            // window.location.hash = this.id.replace('ID', '');
+                            return false;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    if(url.indexOf('#')!=-1) {
+        location.href=location.href;
+    }
+}
+if (window.addEventListener) window.addEventListener('load', initTabs, false);
+else if (window.attachEvent) window.attachEvent('onload', initTabs);
+    -->
+    </script>
+    </head><body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1><span class='nowrap'>API compatibility report for the <span style='color:Blue;'>hdf5</span> library</span> <span class='nowrap'> between <span style='color:Red;'>1.8.15-patch1</span> and <span style='color:Red;'>1.8.16</span> versions on <span style='color:Blue;'>x86_64</span></span></h1>
+
+            <br/><div class='tabset'>
+            <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
+            <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
+            </div><div id='BinaryTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>hdf5</td></tr>
+<tr><th>Version #1</th><td>1.8.15-patch1</td></tr>
+<tr><th>Version #2</th><td>1.8.16</td></tr>
+<tr><th>CPU Type</th><td>x86_64</td></tr>
+<tr><th>GCC Version</th><td>4.4.7</td></tr>
+<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>76</a></td></tr>
+<tr><th>Total Shared Libraries</th><td>0 (not analyzed)</td></tr>
+<tr><th>Total Symbols / Types</th><td>1812 / 541</td></tr>
+<tr><th>Verdict</th><td><span style='color:Red;'><b>Incompatible<br/>(3.9%)</b></span></td></tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>35</a></td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Binary_Removed' style='color:Blue;'>6</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Type_Binary_Problems_Low' style='color:Blue;'>2</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td class='failed'><a href='#Symbol_Binary_Problems_High' style='color:Blue;'>6</a></td></tr>
+<tr><td>Medium</td><td class='failed'><a href='#Symbol_Binary_Problems_Medium' style='color:Blue;'>131</a></td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Symbol_Binary_Problems_Low' style='color:Blue;'>158</a></td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>5</a></td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>3</a></td></tr>
+</table>
+
+<a name='Binary_Added'></a><h2>Added Symbols (35)</h2><hr/>
+<span class='h_name'>H5DataSpace.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_1')">
+DataSpace::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_1" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H59DataSpace15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_2')">
+DSetCreatPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_2" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H517DSetCreatPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DxferProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_3')">
+DSetMemXferPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_3" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H519DSetMemXferPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5FaccProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_4')">
+FileAccPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_4" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H515FileAccPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5FcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_5')">
+FileCreatPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_5" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H517FileCreatPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5IdComponent.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_6')">
+IdComponent::H5dontAtexit_called <span class='attr'>[data]</span></span>
+<br/>
+<div id="c_6" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H511IdComponent19H5dontAtexit_calledE</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5Library.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_7')">
+H5Library::initH5cpp <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_7" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H59H5Library9initH5cppEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_8')">
+H5Library::termH5cpp <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_8" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H59H5Library9termH5cppEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5OcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_9')">
+ObjCreatPropList::DEFAULT <span class='attr'>[data]</span></span>
+<br/>
+<div id="c_9" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropList7DEFAULTE</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_10')">
+ObjCreatPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_10" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_11')">
+ObjCreatPropList::fromClass <span class='sym_p'>( )</span> const</span>
+<br/>
+<div id="c_11" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList9fromClassEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_12')">
+ObjCreatPropList::getAttrCrtOrder <span class='sym_p'>( )</span> const</span>
+<br/>
+<div id="c_12" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList15getAttrCrtOrderEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_13')">
+ObjCreatPropList::getAttrPhaseChange <span class='sym_p'>( unsigned int& <span class='color_p'>max_compact</span>, <span class='nowrap'>unsigned int& <span class='color_p'>min_dense</span> )</span></span> const</span>
+<br/>
+<div id="c_13" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList18getAttrPhaseChangeERjS1_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_14')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_14" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC1Ev</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_15')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>ObjCreatPropList const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_15" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_16')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>plist_id</span> )</span></span></span>
+<br/>
+<div id="c_16" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC1Ei</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_17')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_17" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC2Ev</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_18')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>ObjCreatPropList const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_18" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC2ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_19')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>plist_id</span> )</span></span></span>
+<br/>
+<div id="c_19" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC2Ei</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_20')">
+ObjCreatPropList::setAttrCrtOrder <span class='sym_p'>( <span class='nowrap'>unsigned int <span class='color_p'>crt_order_flags</span> )</span></span> const</span>
+<br/>
+<div id="c_20" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList15setAttrCrtOrderEj</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_21')">
+ObjCreatPropList::setAttrPhaseChange <span class='sym_p'>( unsigned int <span class='color_p'>max_compact</span>, <span class='nowrap'>unsigned int <span class='color_p'>min_dense</span> )</span></span> const</span>
+<br/>
+<div id="c_21" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList18setAttrPhaseChangeEjj</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_22')">
+ObjCreatPropList::~ObjCreatPropList <span class='attr'>[in-charge-deleting]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_22" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListD0Ev</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_23')">
+ObjCreatPropList::~ObjCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_23" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListD1Ev</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_24')">
+ObjCreatPropList::~ObjCreatPropList <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_24" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListD2Ev</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5PacketTable.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_25')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_25" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC1EiPKc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_26')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> char const* <span class='color_p'>name</span>, <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span></span>
+<br/>
+<div id="c_26" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC1EiPKciyi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_27')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_27" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC2EiPKc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_28')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> char const* <span class='color_p'>name</span>, <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span></span>
+<br/>
+<div id="c_28" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC2EiPKciyi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_29')">
+PacketTable::PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_29" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN11PacketTableC1EiPKc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_30')">
+PacketTable::PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_30" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN11PacketTableC2EiPKc</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5PredType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_31')">
+PredType::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_31" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58PredType15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_32')">
+PredType::PREDTYPE_CONST <span class='attr'>[data]</span></span>
+<br/>
+<div id="c_32" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58PredType14PREDTYPE_CONSTE</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5PropList.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_33')">
+f_PropList_setId <span class='sym_p'>( <span class='nowrap'>PropList* <span class='color_p'>plist</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_33" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516f_PropList_setIdEPNS_8PropListEi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_34')">
+PropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_34" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58PropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5public.h</span><br/>
+<span class="iname">H5is_library_threadsafe <span class='sym_p'>( <span class='nowrap'>hbool_t* <span class='color_p'>is_ts</span> )</span></span></span><br/>
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Binary_Removed'></a><a name='Binary_Withdrawn'></a><h2>Removed Symbols (6)</h2><hr/>
+<span class='h_name'>H5PacketTable.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_35')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_35" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC1EiPc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_36')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span></span>
+<br/>
+<div id="c_36" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC1EiPciyi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_37')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_37" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC2EiPc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_38')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span></span>
+<br/>
+<div id="c_38" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC2EiPciyi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_39')">
+PacketTable::PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_39" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN11PacketTableC1EiPc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_40')">
+PacketTable::PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_40" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN11PacketTableC2EiPc</b>]</span><br/><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='High_Risk_Binary_Problems'></a><a name='Symbol_Binary_Problems_High'></a><a name='Interface_Binary_Problems_High'></a>
+<h2>Problems with Symbols, High Severity (6)</h2><hr/>
+<span class='h_name'>H5PacketTable.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_41')">
+<span class='extendable'>[+]</span> FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span> (1)</span>
+<br/>
+<div id="c_41" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN14FL_PacketTableC2EiPc</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>The name of the appropriate symbol for this function on binary level has been changed from <b>_ZN14FL_PacketTableC2EiPc</b> to <b>_ZN14FL_PacketTableC2EiPKc</b>. This may cause "undefined reference" linker error in old client applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_42')">
+<span class='extendable'>[+]</span> FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span> (1)</span>
+<br/>
+<div id="c_42" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN14FL_PacketTableC1EiPc</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>The name of the appropriate symbol for this function on binary level has been changed from <b>_ZN14FL_PacketTableC1EiPc</b> to <b>_ZN14FL_PacketTableC1EiPKc</b>. This may cause "undefined reference" linker error in old client applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_43')">
+<span class='extendable'>[+]</span> FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span> (1)</span>
+<br/>
+<div id="c_43" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN14FL_PacketTableC1EiPciyi</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>The name of the appropriate symbol for this function on binary level has been changed from <b>_ZN14FL_PacketTableC1EiPciyi</b> to <b>_ZN14FL_PacketTableC1EiPKc</b>. This may cause "undefined reference" linker error in old client applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_44')">
+<span class='extendable'>[+]</span> FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span> (1)</span>
+<br/>
+<div id="c_44" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN14FL_PacketTableC2EiPciyi</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>The name of the appropriate symbol for this function on binary level has been changed from <b>_ZN14FL_PacketTableC2EiPciyi</b> to <b>_ZN14FL_PacketTableC2EiPKc</b>. This may cause "undefined reference" linker error in old client applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_45')">
+<span class='extendable'>[+]</span> PacketTable::PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span> (1)</span>
+<br/>
+<div id="c_45" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>PacketTable::PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN11PacketTableC1EiPc</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>The name of the appropriate symbol for this function on binary level has been changed from <b>_ZN11PacketTableC1EiPc</b> to <b>_ZN11PacketTableC1EiPKc</b>. This may cause "undefined reference" linker error in old client applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_46')">
+<span class='extendable'>[+]</span> PacketTable::PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span> (1)</span>
+<br/>
+<div id="c_46" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>PacketTable::PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN11PacketTableC2EiPc</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>The name of the appropriate symbol for this function on binary level has been changed from <b>_ZN11PacketTableC2EiPc</b> to <b>_ZN11PacketTableC2EiPKc</b>. This may cause "undefined reference" linker error in old client applications.</td></tr>
+</table><br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Medium_Risk_Binary_Problems'></a><a name='Symbol_Binary_Problems_Medium'></a><a name='Interface_Binary_Problems_Medium'></a>
+<h2>Problems with Symbols, Medium Severity (131)</h2><hr/>
+<span class='h_name'>H5DataSpace.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_47')">
+<span class='extendable'>[+]</span> DataSpace::ALL <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_47" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H59DataSpace3ALLE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>DataSpace const</span> to <span class='value'>DataSpace const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_48')">
+<span class='extendable'>[+]</span> DSetCreatPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_48" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H517DSetCreatPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>DSetCreatPropList const</span> to <span class='value'>DSetCreatPropList const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DxferProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_49')">
+<span class='extendable'>[+]</span> DSetMemXferPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_49" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H519DSetMemXferPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>DSetMemXferPropList const</span> to <span class='value'>DSetMemXferPropList const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5FaccProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_50')">
+<span class='extendable'>[+]</span> FileAccPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_50" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H515FileAccPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>FileAccPropList const</span> to <span class='value'>FileAccPropList const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5FcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_51')">
+<span class='extendable'>[+]</span> FileCreatPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_51" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H517FileCreatPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>FileCreatPropList const</span> to <span class='value'>FileCreatPropList const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PredType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_52')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_52" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_53')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_53" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_54')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_54" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_55')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_55" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_56')">
+<span class='extendable'>[+]</span> PredType::ALPHA_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_56" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_57')">
+<span class='extendable'>[+]</span> PredType::ALPHA_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_57" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_58')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_58" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_59')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_59" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_60')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_60" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_61')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_61" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_62')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_62" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_63')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_63" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_64')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_64" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_65')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_65" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_66')">
+<span class='extendable'>[+]</span> PredType::C_S1 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_66" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType4C_S1E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_67')">
+<span class='extendable'>[+]</span> PredType::FORTRAN_S1 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_67" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10FORTRAN_S1E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_68')">
+<span class='extendable'>[+]</span> PredType::IEEE_F32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_68" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_69')">
+<span class='extendable'>[+]</span> PredType::IEEE_F32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_69" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_70')">
+<span class='extendable'>[+]</span> PredType::IEEE_F64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_70" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_71')">
+<span class='extendable'>[+]</span> PredType::IEEE_F64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_71" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_72')">
+<span class='extendable'>[+]</span> PredType::INTEL_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_72" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_73')">
+<span class='extendable'>[+]</span> PredType::INTEL_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_73" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_74')">
+<span class='extendable'>[+]</span> PredType::INTEL_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_74" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_75')">
+<span class='extendable'>[+]</span> PredType::INTEL_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_75" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_76')">
+<span class='extendable'>[+]</span> PredType::INTEL_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_76" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_77')">
+<span class='extendable'>[+]</span> PredType::INTEL_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_77" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_78')">
+<span class='extendable'>[+]</span> PredType::INTEL_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_78" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_79')">
+<span class='extendable'>[+]</span> PredType::INTEL_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_79" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_80')">
+<span class='extendable'>[+]</span> PredType::INTEL_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_80" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_81')">
+<span class='extendable'>[+]</span> PredType::INTEL_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_81" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_82')">
+<span class='extendable'>[+]</span> PredType::INTEL_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_82" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_83')">
+<span class='extendable'>[+]</span> PredType::INTEL_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_83" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_84')">
+<span class='extendable'>[+]</span> PredType::INTEL_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_84" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_85')">
+<span class='extendable'>[+]</span> PredType::INTEL_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_85" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_86')">
+<span class='extendable'>[+]</span> PredType::MIPS_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_86" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_87')">
+<span class='extendable'>[+]</span> PredType::MIPS_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_87" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_88')">
+<span class='extendable'>[+]</span> PredType::MIPS_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_88" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_89')">
+<span class='extendable'>[+]</span> PredType::MIPS_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_89" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_90')">
+<span class='extendable'>[+]</span> PredType::MIPS_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_90" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_91')">
+<span class='extendable'>[+]</span> PredType::MIPS_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_91" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_92')">
+<span class='extendable'>[+]</span> PredType::MIPS_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_92" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_93')">
+<span class='extendable'>[+]</span> PredType::MIPS_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_93" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_94')">
+<span class='extendable'>[+]</span> PredType::MIPS_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_94" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_95')">
+<span class='extendable'>[+]</span> PredType::MIPS_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_95" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_96')">
+<span class='extendable'>[+]</span> PredType::MIPS_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_96" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_97')">
+<span class='extendable'>[+]</span> PredType::MIPS_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_97" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_98')">
+<span class='extendable'>[+]</span> PredType::MIPS_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_98" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_99')">
+<span class='extendable'>[+]</span> PredType::MIPS_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_99" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_100')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_100" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_101')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_101" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_102')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_102" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_103')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_103" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9NATIVE_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_104')">
+<span class='extendable'>[+]</span> PredType::NATIVE_CHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_104" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_CHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_105')">
+<span class='extendable'>[+]</span> PredType::NATIVE_DOUBLE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_105" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_DOUBLEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_106')">
+<span class='extendable'>[+]</span> PredType::NATIVE_FLOAT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_106" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_FLOATE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_107')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HBOOL <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_107" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_HBOOLE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_108')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HERR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_108" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_HERRE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_109')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HSIZE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_109" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_HSIZEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_110')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HSSIZE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_110" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_HSSIZEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_111')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_111" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_INTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_112')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_112" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_113')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_113" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_114')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_114" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_115')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_115" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_INT8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_116')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_116" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_117')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_117" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_118')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_118" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_119')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_119" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType16NATIVE_INT_FAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_120')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_120" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_121')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_121" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_122')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_122" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_123')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_123" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_LEAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_124')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LDOUBLE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_124" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType14NATIVE_LDOUBLEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_125')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LLONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_125" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_LLONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_126')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_126" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_LONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_127')">
+<span class='extendable'>[+]</span> PredType::NATIVE_OPAQUE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_127" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_OPAQUEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_128')">
+<span class='extendable'>[+]</span> PredType::NATIVE_SCHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_128" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_SCHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_129')">
+<span class='extendable'>[+]</span> PredType::NATIVE_SHORT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_129" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_SHORTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_130')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UCHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_130" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_UCHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_131')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_131" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_UINTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_132')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_132" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_133')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_133" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_134')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_134" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_135')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_135" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_UINT8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_136')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_136" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_137')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_137" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_138')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_138" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_139')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_139" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_UINT_FAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_140')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_140" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_141')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_141" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_142')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_142" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_143')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_143" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_LEAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_144')">
+<span class='extendable'>[+]</span> PredType::NATIVE_ULLONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_144" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_ULLONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_145')">
+<span class='extendable'>[+]</span> PredType::NATIVE_ULONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_145" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_ULONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_146')">
+<span class='extendable'>[+]</span> PredType::NATIVE_USHORT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_146" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_USHORTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_147')">
+<span class='extendable'>[+]</span> PredType::STD_B16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_147" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_148')">
+<span class='extendable'>[+]</span> PredType::STD_B16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_148" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_149')">
+<span class='extendable'>[+]</span> PredType::STD_B32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_149" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_150')">
+<span class='extendable'>[+]</span> PredType::STD_B32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_150" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_151')">
+<span class='extendable'>[+]</span> PredType::STD_B64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_151" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_152')">
+<span class='extendable'>[+]</span> PredType::STD_B64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_152" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_153')">
+<span class='extendable'>[+]</span> PredType::STD_B8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_153" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_B8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_154')">
+<span class='extendable'>[+]</span> PredType::STD_B8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_154" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_B8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_155')">
+<span class='extendable'>[+]</span> PredType::STD_I16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_155" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_156')">
+<span class='extendable'>[+]</span> PredType::STD_I16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_156" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_157')">
+<span class='extendable'>[+]</span> PredType::STD_I32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_157" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_158')">
+<span class='extendable'>[+]</span> PredType::STD_I32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_158" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_159')">
+<span class='extendable'>[+]</span> PredType::STD_I64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_159" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_160')">
+<span class='extendable'>[+]</span> PredType::STD_I64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_160" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_161')">
+<span class='extendable'>[+]</span> PredType::STD_I8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_161" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_I8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_162')">
+<span class='extendable'>[+]</span> PredType::STD_I8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_162" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_I8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_163')">
+<span class='extendable'>[+]</span> PredType::STD_REF_DSETREG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_163" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType15STD_REF_DSETREGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_164')">
+<span class='extendable'>[+]</span> PredType::STD_REF_OBJ <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_164" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11STD_REF_OBJE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_165')">
+<span class='extendable'>[+]</span> PredType::STD_U16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_165" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_166')">
+<span class='extendable'>[+]</span> PredType::STD_U16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_166" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_167')">
+<span class='extendable'>[+]</span> PredType::STD_U32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_167" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_168')">
+<span class='extendable'>[+]</span> PredType::STD_U32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_168" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_169')">
+<span class='extendable'>[+]</span> PredType::STD_U64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_169" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_170')">
+<span class='extendable'>[+]</span> PredType::STD_U64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_170" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_171')">
+<span class='extendable'>[+]</span> PredType::STD_U8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_171" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_U8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_172')">
+<span class='extendable'>[+]</span> PredType::STD_U8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_172" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_U8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_173')">
+<span class='extendable'>[+]</span> PredType::UNIX_D32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_173" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_174')">
+<span class='extendable'>[+]</span> PredType::UNIX_D32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_174" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_175')">
+<span class='extendable'>[+]</span> PredType::UNIX_D64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_175" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_176')">
+<span class='extendable'>[+]</span> PredType::UNIX_D64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_176" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PropList.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_177')">
+<span class='extendable'>[+]</span> PropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_177" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PropList const</span> to <span class='value'>PropList const&</span> of different format.</td><td align='left' valign='top'>This global data may be incorrectly accessed by applications.</td></tr>
+</table><br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Low_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_Low'></a>
+<h2>Problems with Data Types, Low Severity (2)</h2><hr/>
+<span class='h_name'>H5DcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_178')">
+<span class='extendable'>[+]</span> <span class='ttype'>class</span> DSetCreatPropList (2)</span>
+<br/>
+<div id="c_178" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Base class <b>ObjCreatPropList</b> has been added.</td><td align='left' valign='top'>Possible incorrect access of applications to the memory occupied by the base classes.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>Base class <b>PropList</b> has been removed.</td><td align='left' valign='top'>Possible incorrect access of applications to the memory occupied by the base classes.</td></tr>
+</table>
+<span class="section_info" onclick="javascript:showContent(this, 'c_179')">
+[+] show v-table (old and new)</span>
+<br/>
+<div id="c_179" style="display:none;">
+<table class='vtable'><tr><th width='2%'>Offset</th><th width='45%'>Virtual Table (Old) - 8 entries</th><th>Virtual Table (New) - 8 entries</th></tr><tr><th>0</th>
+<td>(int (*)(...))0</td>
+<td>(int (*)(...))0</td></tr>
+<tr><th>8</th>
+<td>(int (*)(...))(& typeinfo)</td>
+<td>(int (*)(...))(& typeinfo)</td></tr>
+<tr><th>16</th>
+<td>PropList::getId</td>
+<td>PropList::getId</td></tr>
+<tr><th>24</th>
+<td>PropList::close</td>
+<td>PropList::close</td></tr>
+<tr><th>32</th>
+<td>DSetCreatPropList::fromClass</td>
+<td>DSetCreatPropList::fromClass</td></tr>
+<tr><th>40</th>
+<td>~DSetCreatPropList</td>
+<td>~DSetCreatPropList</td></tr>
+<tr><th>48</th>
+<td>~DSetCreatPropList</td>
+<td>~DSetCreatPropList</td></tr>
+<tr><th>56</th>
+<td>PropList::p_setId</td>
+<td>PropList::p_setId</td></tr>
+</table><br/>
+</div>
+<span class="section_affected" onclick="javascript:showContent(this, 'c_180')">
+[+] affected symbols (31)</span>
+<div id="c_180" style="display:none;">
+<div class='affected'><span class='iname_a'>DSetCreatPropList::allFiltersAvail <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::DEFAULT <span class='attr'>[data]</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::DSetCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This constructor is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::DSetCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>DSetCreatPropList const& <span class='param'>orig</span> )</span></span></span><br/><div class='affect'>This constructor is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::DSetCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='param'>plist_id</span> )</span></span></span><br/><div class='affect'>This constructor is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::fromClass <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getAllocTime <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getChunk <span class='sym_p'>( <span class='nowrap'>int <span class='param'>max_ndims</span>,</span> <span class='nowrap'>hsize_t* <span class='param'>dim</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getExternal <span class='sym_p'>( <span class='nowrap'>unsigned int <span class='param'>idx</span>,</span> <span class='nowrap'>size_t <span class='param'>name_size</span>,</span> <span class='nowrap'>char* <span class='param'>name</span>,</span> <span class='nowrap'>off_t& <span class='param'>offset</span>,</span> <span class='nowrap'>hsize_t& <span class='param'>size</span> )</span></span> const</span><br/><div class='affect'>T [...]
+<span class='iname_a'>DSetCreatPropList::getExternalCount <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getFillTime <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getFillValue <span class='sym_p'>( DataType const& <span class='param'>fvalue_type</span>, <span class='nowrap'>void* <span class='param'>value</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getFilter <span class='sym_p'>( <span class='nowrap'>int <span class='param'>filter_number</span>,</span> unsigned int& <span class='param'>flags</span>, size_t& <span class='param'>cd_nelmts</span>, unsigned int* <span class='param'>cd_values</span>, <span class='nowrap'>size_t <span class='param'>namelen</span>,</span> <span class='nowrap'>char* <span class='param'>name</span>,</span> <span class='nowrap'>unsigned int& <spa [...]
+<span class='iname_a'>DSetCreatPropList::getFilterById <span class='sym_p'>( H5Z_filter_t <span class='param'>filter_id</span>, unsigned int& <span class='param'>flags</span>, size_t& <span class='param'>cd_nelmts</span>, unsigned int* <span class='param'>cd_values</span>, <span class='nowrap'>size_t <span class='param'>namelen</span>,</span> <span class='nowrap'>char* <span class='param'>name</span>,</span> <span class='nowrap'>unsigned int& <span class='param'>fil [...]
+<span class='iname_a'>DSetCreatPropList::getLayout <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getNfilters <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::isFillValueDefined <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::modifyFilter <span class='sym_p'>( H5Z_filter_t <span class='param'>filter_id</span>, unsigned int <span class='param'>flags</span>, <span class='nowrap'>size_t <span class='param'>cd_nelmts</span>,</span> <span class='nowrap'>unsigned int const* <span class='param'>cd_values</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::removeFilter <span class='sym_p'>( <span class='nowrap'>H5Z_filter_t <span class='param'>filter_id</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setAllocTime <span class='sym_p'>( <span class='nowrap'>H5D_alloc_time_t <span class='param'>alloc_time</span> )</span></span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setChunk <span class='sym_p'>( <span class='nowrap'>int <span class='param'>ndims</span>,</span> <span class='nowrap'>hsize_t const* <span class='param'>dim</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setDeflate <span class='sym_p'>( <span class='nowrap'>int <span class='param'>level</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setExternal <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> <span class='nowrap'>off_t <span class='param'>offset</span>,</span> <span class='nowrap'>hsize_t <span class='param'>size</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setFillTime <span class='sym_p'>( <span class='nowrap'>H5D_fill_time_t <span class='param'>fill_time</span> )</span></span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setFillValue <span class='sym_p'>( DataType const& <span class='param'>fvalue_type</span>, <span class='nowrap'>void const* <span class='param'>value</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setFilter <span class='sym_p'>( H5Z_filter_t <span class='param'>filter</span>, unsigned int <span class='param'>flags</span>, <span class='nowrap'>size_t <span class='param'>cd_nelmts</span>,</span> <span class='nowrap'>unsigned int const* <span class='param'>cd_values</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setFletcher32 <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setLayout <span class='sym_p'>( <span class='nowrap'>H5D_layout_t <span class='param'>layout</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setShuffle <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setSzip <span class='sym_p'>( unsigned int <span class='param'>options_mask</span>, <span class='nowrap'>unsigned int <span class='param'>pixels_per_block</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::~DSetCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+</div></div>
+<br/><br/></div>
+
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Symbol_Binary_Problems_Low'></a><a name='Interface_Binary_Problems_Low'></a>
+<h2>Problems with Symbols, Low Severity (158)</h2><hr/>
+<span class='h_name'>H5DataSet.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_181')">
+<span class='extendable'>[+]</span> DataSet::read <span class='sym_p'>( std::string& <span class='color_p'>buf</span>, DataType const& <span class='color_p'>mem_type</span>, DataSpace const& <span class='color_p'>mem_space</span>, DataSpace const& <span class='color_p'>file_space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> const (3)</span>
+<br/>
+<div id="c_181" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H57DataSet4readERSsRKNS_8DataTypeERKNS_9DataSpaceES7_RKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>4th</b> parameter <b>file_space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>mem_space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>3</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>5th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_182')">
+<span class='extendable'>[+]</span> DataSet::read <span class='sym_p'>( <span class='nowrap'>void* <span class='color_p'>buf</span>,</span> DataType const& <span class='color_p'>mem_type</span>, DataSpace const& <span class='color_p'>mem_space</span>, DataSpace const& <span class='color_p'>file_space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> const (3)</span>
+<br/>
+<div id="c_182" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H57DataSet4readEPvRKNS_8DataTypeERKNS_9DataSpaceES7_RKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>4th</b> parameter <b>file_space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>mem_space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>3</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>5th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_183')">
+<span class='extendable'>[+]</span> DataSet::vlenReclaim <span class='sym_p'>( <span class='nowrap'>void* <span class='color_p'>buf</span>,</span> DataType const& <span class='color_p'>type</span>, DataSpace const& <span class='color_p'>space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> <span class='attr'>[static]</span> (2)</span>
+<br/>
+<div id="c_183" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H57DataSet11vlenReclaimEPvRKNS_8DataTypeERKNS_9DataSpaceERKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>4th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_184')">
+<span class='extendable'>[+]</span> DataSet::write <span class='sym_p'>( std::string const& <span class='color_p'>buf</span>, DataType const& <span class='color_p'>mem_type</span>, DataSpace const& <span class='color_p'>mem_space</span>, DataSpace const& <span class='color_p'>file_space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> const (3)</span>
+<br/>
+<div id="c_184" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H57DataSet5writeERKSsRKNS_8DataTypeERKNS_9DataSpaceES8_RKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>4th</b> parameter <b>file_space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>mem_space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>3</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>5th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_185')">
+<span class='extendable'>[+]</span> DataSet::write <span class='sym_p'>( <span class='nowrap'>void const* <span class='color_p'>buf</span>,</span> DataType const& <span class='color_p'>mem_type</span>, DataSpace const& <span class='color_p'>mem_space</span>, DataSpace const& <span class='color_p'>file_space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> const (3)</span>
+<br/>
+<div id="c_185" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H57DataSet5writeEPKvRKNS_8DataTypeERKNS_9DataSpaceES8_RKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>4th</b> parameter <b>file_space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>mem_space</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>3</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>5th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DataSpace.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_186')">
+<span class='extendable'>[+]</span> DataSpace::ALL <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_186" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H59DataSpace3ALLE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DataType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_187')">
+<span class='extendable'>[+]</span> DataType::convert <span class='sym_p'>( DataType const& <span class='color_p'>dest</span>, <span class='nowrap'>size_t <span class='color_p'>nelmts</span>,</span> <span class='nowrap'>void* <span class='color_p'>buf</span>,</span> void* <span class='color_p'>background</span>, <span class='nowrap'>PropList const& <span class='color_p'>plist</span> )</span></span> const (1)</span>
+<br/>
+<div id="c_187" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H58DataType7convertERKS0_mPvS3_RKNS_8PropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>PropList::DEFAULT</b> of <b>5th</b> parameter <b>plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_188')">
+<span class='extendable'>[+]</span> DSetCreatPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_188" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H517DSetCreatPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DxferProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_189')">
+<span class='extendable'>[+]</span> DSetMemXferPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_189" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H519DSetMemXferPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5FaccProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_190')">
+<span class='extendable'>[+]</span> FileAccPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_190" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H515FileAccPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5FcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_191')">
+<span class='extendable'>[+]</span> FileCreatPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_191" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H517FileCreatPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5File.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_192')">
+<span class='extendable'>[+]</span> H5File::H5File <span class='attr'>[in-charge]</span> <span class='sym_p'>( char const* <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, FileCreatPropList const& <span class='color_p'>create_plist</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (2)</span>
+<br/>
+<div id="c_192" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5FileC1EPKcjRKNS_17FileCreatPropListERKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>4th</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>FileCreatPropList::DEFAULT</b> of <b>3rd</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_193')">
+<span class='extendable'>[+]</span> H5File::H5File <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( char const* <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, FileCreatPropList const& <span class='color_p'>create_plist</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (2)</span>
+<br/>
+<div id="c_193" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5FileC2EPKcjRKNS_17FileCreatPropListERKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>4th</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>FileCreatPropList::DEFAULT</b> of <b>3rd</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_194')">
+<span class='extendable'>[+]</span> H5File::H5File <span class='attr'>[in-charge]</span> <span class='sym_p'>( std::string const& <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, FileCreatPropList const& <span class='color_p'>create_plist</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (2)</span>
+<br/>
+<div id="c_194" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5FileC1ERKSsjRKNS_17FileCreatPropListERKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>4th</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>FileCreatPropList::DEFAULT</b> of <b>3rd</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_195')">
+<span class='extendable'>[+]</span> H5File::H5File <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( std::string const& <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, FileCreatPropList const& <span class='color_p'>create_plist</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (2)</span>
+<br/>
+<div id="c_195" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5FileC2ERKSsjRKNS_17FileCreatPropListERKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>4th</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>FileCreatPropList::DEFAULT</b> of <b>3rd</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_196')">
+<span class='extendable'>[+]</span> H5File::openFile <span class='sym_p'>( char const* <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (1)</span>
+<br/>
+<div id="c_196" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5File8openFileEPKcjRKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>3rd</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_197')">
+<span class='extendable'>[+]</span> H5File::openFile <span class='sym_p'>( std::string const& <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (1)</span>
+<br/>
+<div id="c_197" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5File8openFileERKSsjRKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>3rd</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5Location.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_198')">
+<span class='extendable'>[+]</span> H5Location::createAttribute <span class='sym_p'>( char const* <span class='color_p'>name</span>, DataType const& <span class='color_p'>type</span>, DataSpace const& <span class='color_p'>space</span>, <span class='nowrap'>PropList const& <span class='color_p'>create_plist</span> )</span></span> const (1)</span>
+<br/>
+<div id="c_198" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H510H5Location15createAttributeEPKcRKNS_8DataTypeERKNS_9DataSpaceERKNS_8PropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>PropList::DEFAULT</b> of <b>4th</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_199')">
+<span class='extendable'>[+]</span> H5Location::createAttribute <span class='sym_p'>( std::string const& <span class='color_p'>name</span>, DataType const& <span class='color_p'>type</span>, DataSpace const& <span class='color_p'>space</span>, <span class='nowrap'>PropList const& <span class='color_p'>create_plist</span> )</span></span> const (1)</span>
+<br/>
+<div id="c_199" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H510H5Location15createAttributeERKSsRKNS_8DataTypeERKNS_9DataSpaceERKNS_8PropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>PropList::DEFAULT</b> of <b>4th</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PredType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_200')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_200" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_201')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_201" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_202')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_202" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_203')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_203" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_204')">
+<span class='extendable'>[+]</span> PredType::ALPHA_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_204" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_205')">
+<span class='extendable'>[+]</span> PredType::ALPHA_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_205" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_206')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_206" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_207')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_207" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_208')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_208" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_209')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_209" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_210')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_210" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_211')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_211" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_212')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_212" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_213')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_213" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_214')">
+<span class='extendable'>[+]</span> PredType::C_S1 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_214" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType4C_S1E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_215')">
+<span class='extendable'>[+]</span> PredType::FORTRAN_S1 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_215" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10FORTRAN_S1E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_216')">
+<span class='extendable'>[+]</span> PredType::IEEE_F32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_216" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_217')">
+<span class='extendable'>[+]</span> PredType::IEEE_F32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_217" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_218')">
+<span class='extendable'>[+]</span> PredType::IEEE_F64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_218" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_219')">
+<span class='extendable'>[+]</span> PredType::IEEE_F64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_219" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_220')">
+<span class='extendable'>[+]</span> PredType::INTEL_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_220" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_221')">
+<span class='extendable'>[+]</span> PredType::INTEL_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_221" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_222')">
+<span class='extendable'>[+]</span> PredType::INTEL_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_222" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_223')">
+<span class='extendable'>[+]</span> PredType::INTEL_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_223" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_224')">
+<span class='extendable'>[+]</span> PredType::INTEL_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_224" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_225')">
+<span class='extendable'>[+]</span> PredType::INTEL_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_225" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_226')">
+<span class='extendable'>[+]</span> PredType::INTEL_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_226" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_227')">
+<span class='extendable'>[+]</span> PredType::INTEL_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_227" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_228')">
+<span class='extendable'>[+]</span> PredType::INTEL_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_228" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_229')">
+<span class='extendable'>[+]</span> PredType::INTEL_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_229" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_230')">
+<span class='extendable'>[+]</span> PredType::INTEL_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_230" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_231')">
+<span class='extendable'>[+]</span> PredType::INTEL_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_231" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_232')">
+<span class='extendable'>[+]</span> PredType::INTEL_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_232" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_233')">
+<span class='extendable'>[+]</span> PredType::INTEL_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_233" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_234')">
+<span class='extendable'>[+]</span> PredType::MIPS_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_234" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_235')">
+<span class='extendable'>[+]</span> PredType::MIPS_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_235" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_236')">
+<span class='extendable'>[+]</span> PredType::MIPS_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_236" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_237')">
+<span class='extendable'>[+]</span> PredType::MIPS_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_237" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_238')">
+<span class='extendable'>[+]</span> PredType::MIPS_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_238" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_239')">
+<span class='extendable'>[+]</span> PredType::MIPS_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_239" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_240')">
+<span class='extendable'>[+]</span> PredType::MIPS_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_240" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_241')">
+<span class='extendable'>[+]</span> PredType::MIPS_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_241" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_242')">
+<span class='extendable'>[+]</span> PredType::MIPS_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_242" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_243')">
+<span class='extendable'>[+]</span> PredType::MIPS_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_243" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_244')">
+<span class='extendable'>[+]</span> PredType::MIPS_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_244" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_245')">
+<span class='extendable'>[+]</span> PredType::MIPS_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_245" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_246')">
+<span class='extendable'>[+]</span> PredType::MIPS_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_246" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_247')">
+<span class='extendable'>[+]</span> PredType::MIPS_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_247" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_248')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_248" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_249')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_249" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_250')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_250" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_251')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_251" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9NATIVE_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_252')">
+<span class='extendable'>[+]</span> PredType::NATIVE_CHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_252" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_CHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_253')">
+<span class='extendable'>[+]</span> PredType::NATIVE_DOUBLE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_253" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_DOUBLEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_254')">
+<span class='extendable'>[+]</span> PredType::NATIVE_FLOAT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_254" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_FLOATE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_255')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HBOOL <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_255" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_HBOOLE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_256')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HERR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_256" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_HERRE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_257')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HSIZE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_257" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_HSIZEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_258')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HSSIZE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_258" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_HSSIZEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_259')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_259" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_INTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_260')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_260" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_261')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_261" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_262')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_262" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_263')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_263" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_INT8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_264')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_264" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_265')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_265" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_266')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_266" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_267')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_267" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType16NATIVE_INT_FAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_268')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_268" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_269')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_269" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_270')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_270" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_271')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_271" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_LEAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_272')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LDOUBLE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_272" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType14NATIVE_LDOUBLEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_273')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LLONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_273" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_LLONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_274')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_274" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_LONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_275')">
+<span class='extendable'>[+]</span> PredType::NATIVE_OPAQUE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_275" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_OPAQUEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_276')">
+<span class='extendable'>[+]</span> PredType::NATIVE_SCHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_276" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_SCHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_277')">
+<span class='extendable'>[+]</span> PredType::NATIVE_SHORT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_277" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_SHORTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_278')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UCHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_278" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_UCHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_279')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_279" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_UINTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_280')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_280" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_281')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_281" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_282')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_282" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_283')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_283" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_UINT8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_284')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_284" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_285')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_285" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_286')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_286" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_287')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_287" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_UINT_FAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_288')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_288" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_289')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_289" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_290')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_290" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_291')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_291" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_LEAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_292')">
+<span class='extendable'>[+]</span> PredType::NATIVE_ULLONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_292" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_ULLONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_293')">
+<span class='extendable'>[+]</span> PredType::NATIVE_ULONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_293" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_ULONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_294')">
+<span class='extendable'>[+]</span> PredType::NATIVE_USHORT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_294" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_USHORTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_295')">
+<span class='extendable'>[+]</span> PredType::STD_B16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_295" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_296')">
+<span class='extendable'>[+]</span> PredType::STD_B16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_296" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_297')">
+<span class='extendable'>[+]</span> PredType::STD_B32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_297" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_298')">
+<span class='extendable'>[+]</span> PredType::STD_B32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_298" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_299')">
+<span class='extendable'>[+]</span> PredType::STD_B64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_299" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_300')">
+<span class='extendable'>[+]</span> PredType::STD_B64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_300" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_301')">
+<span class='extendable'>[+]</span> PredType::STD_B8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_301" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_B8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_302')">
+<span class='extendable'>[+]</span> PredType::STD_B8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_302" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_B8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_303')">
+<span class='extendable'>[+]</span> PredType::STD_I16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_303" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_304')">
+<span class='extendable'>[+]</span> PredType::STD_I16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_304" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_305')">
+<span class='extendable'>[+]</span> PredType::STD_I32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_305" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_306')">
+<span class='extendable'>[+]</span> PredType::STD_I32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_306" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_307')">
+<span class='extendable'>[+]</span> PredType::STD_I64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_307" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_308')">
+<span class='extendable'>[+]</span> PredType::STD_I64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_308" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_309')">
+<span class='extendable'>[+]</span> PredType::STD_I8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_309" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_I8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_310')">
+<span class='extendable'>[+]</span> PredType::STD_I8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_310" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_I8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_311')">
+<span class='extendable'>[+]</span> PredType::STD_REF_DSETREG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_311" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType15STD_REF_DSETREGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_312')">
+<span class='extendable'>[+]</span> PredType::STD_REF_OBJ <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_312" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11STD_REF_OBJE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_313')">
+<span class='extendable'>[+]</span> PredType::STD_U16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_313" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_314')">
+<span class='extendable'>[+]</span> PredType::STD_U16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_314" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_315')">
+<span class='extendable'>[+]</span> PredType::STD_U32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_315" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_316')">
+<span class='extendable'>[+]</span> PredType::STD_U32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_316" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_317')">
+<span class='extendable'>[+]</span> PredType::STD_U64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_317" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_318')">
+<span class='extendable'>[+]</span> PredType::STD_U64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_318" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_319')">
+<span class='extendable'>[+]</span> PredType::STD_U8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_319" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_U8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_320')">
+<span class='extendable'>[+]</span> PredType::STD_U8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_320" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_U8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_321')">
+<span class='extendable'>[+]</span> PredType::UNIX_D32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_321" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_322')">
+<span class='extendable'>[+]</span> PredType::UNIX_D32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_322" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_323')">
+<span class='extendable'>[+]</span> PredType::UNIX_D64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_323" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_324')">
+<span class='extendable'>[+]</span> PredType::UNIX_D64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_324" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PropList.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_325')">
+<span class='extendable'>[+]</span> PropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_325" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Replacement of data type may indicate a change in semantic meaning.</td></tr>
+</table><br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Constant_Binary_Problems_Low'></a><h2>Problems with Constants, Low Severity (5)</h2><hr/>
+<span class='h_name'>H5Library.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_326')">
+<span class='extendable'>[+]</span> NOTATEXIT</span>
+<br/>
+<div id="c_326" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>NOTATEXIT</b> with value <b>(-10)</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5PredType.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_327')">
+<span class='extendable'>[+]</span> H5CPP_EXITED</span>
+<br/>
+<div id="c_327" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5CPP_EXITED</b> with value <b>-3</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5pubconf.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_328')">
+<span class='extendable'>[+]</span> H5_CONVERT_DENORMAL_FLOAT</span>
+<br/>
+<div id="c_328" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_CONVERT_DENORMAL_FLOAT</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_329')">
+<span class='extendable'>[+]</span> H5_FP_TO_INTEGER_OVERFLOW_WORKS</span>
+<br/>
+<div id="c_329" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_FP_TO_INTEGER_OVERFLOW_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5public.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_330')">
+<span class='extendable'>[+]</span> H5_VERS_SUBRELEASE</span>
+<br/>
+<div id="c_330" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_VERS_SUBRELEASE</b> has been changed from <b>"patch1"</b> to <b>""</b>.</td><td align='left' valign='top'>Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.</td></tr>
+</table><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Constants'></a><h2>Other Changes in Constants (3)</h2><hr/>
+<span class='h_name'>H5pubconf.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_331')">
+<span class='extendable'>[+]</span> H5_HAVE___INLINE</span>
+<br/>
+<div id="c_331" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE___INLINE</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_332')">
+<span class='extendable'>[+]</span> H5_HAVE___INLINE__</span>
+<br/>
+<div id="c_332" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE___INLINE__</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_333')">
+<span class='extendable'>[+]</span> H5_HAVE_INLINE</span>
+<br/>
+<div id="c_333" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_INLINE</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files (76)</h2><hr/>
+<div class='h_list'>
+H5AbstractDs.h<br/>
+H5ACpublic.h<br/>
+H5api_adpt.h<br/>
+H5Apublic.h<br/>
+H5ArrayType.h<br/>
+H5AtomType.h<br/>
+H5Attribute.h<br/>
+H5Classes.h<br/>
+H5CommonFG.h<br/>
+H5CompType.h<br/>
+H5Cpp.h<br/>
+H5CppDoc.h<br/>
+H5Cpublic.h<br/>
+H5DataSet.h<br/>
+H5DataSpace.h<br/>
+H5DataType.h<br/>
+H5DcreatProp.h<br/>
+H5DOpublic.h<br/>
+H5Dpublic.h<br/>
+H5DSpublic.h<br/>
+H5DxferProp.h<br/>
+H5EnumType.h<br/>
+H5Epubgen.h<br/>
+H5Epublic.h<br/>
+H5Exception.h<br/>
+H5f90i.h<br/>
+H5f90i_gen.h<br/>
+H5FaccProp.h<br/>
+H5FcreatProp.h<br/>
+H5FDcore.h<br/>
+H5FDdirect.h<br/>
+H5FDfamily.h<br/>
+H5FDlog.h<br/>
+H5FDmpi.h<br/>
+H5FDmpio.h<br/>
+H5FDmulti.h<br/>
+H5FDpublic.h<br/>
+H5FDsec2.h<br/>
+H5FDstdio.h<br/>
+H5File.h<br/>
+H5FloatType.h<br/>
+H5Fpublic.h<br/>
+H5Gpublic.h<br/>
+H5Group.h<br/>
+H5IdComponent.h<br/>
+H5IMpublic.h<br/>
+H5Include.h<br/>
+H5IntType.h<br/>
+H5Ipublic.h<br/>
+H5Library.h<br/>
+H5Location.h<br/>
+H5Lpublic.h<br/>
+H5LTpublic.h<br/>
+H5MMpublic.h<br/>
+H5Object.h<br/>
+H5Opublic.h<br/>
+H5overflow.h<br/>
+H5PacketTable.h<br/>
+H5PLextern.h<br/>
+H5PLpublic.h<br/>
+H5Ppublic.h<br/>
+H5PredType.h<br/>
+H5PropList.h<br/>
+H5PTpublic.h<br/>
+H5pubconf.h<br/>
+H5public.h<br/>
+H5Rpublic.h<br/>
+H5Spublic.h<br/>
+H5StrType.h<br/>
+H5TBpublic.h<br/>
+H5Tpublic.h<br/>
+H5VarLenType.h<br/>
+H5version.h<br/>
+H5Zpublic.h<br/>
+hdf5.h<br/>
+hdf5_hl.h<br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><div id='SourceTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>hdf5</td></tr>
+<tr><th>Version #1</th><td>1.8.15-patch1</td></tr>
+<tr><th>Version #2</th><td>1.8.16</td></tr>
+<tr><th>CPU Type</th><td>x86_64</td></tr>
+<tr><th>GCC Version</th><td>4.4.7</td></tr>
+<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>76</a></td></tr>
+<tr><th>Total Shared Libraries</th><td>0 (not analyzed)</td></tr>
+<tr><th>Total Symbols / Types</th><td>1815 / 541</td></tr>
+<tr><th>Verdict</th><td><span style='color:Red;'><b>Incompatible<br/>(4.2%)</b></span></td></tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>35</a></td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Source_Removed' style='color:Blue;'>6</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Type_Source_Problems_Low' style='color:Blue;'>2</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td class='failed'><a href='#Symbol_Source_Problems_Medium' style='color:Blue;'>164</a></td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Symbol_Source_Problems_Low' style='color:Blue;'>131</a></td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>11</a></td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>3</a></td></tr>
+</table>
+
+<a name='Source_Added'></a><h2>Added Symbols (35)</h2><hr/>
+<span class='h_name'>H5DataSpace.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_334')">
+DataSpace::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_334" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H59DataSpace15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_335')">
+DSetCreatPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_335" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H517DSetCreatPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DxferProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_336')">
+DSetMemXferPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_336" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H519DSetMemXferPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5FaccProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_337')">
+FileAccPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_337" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H515FileAccPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5FcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_338')">
+FileCreatPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_338" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H517FileCreatPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5IdComponent.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_339')">
+IdComponent::H5dontAtexit_called <span class='attr'>[data]</span></span>
+<br/>
+<div id="c_339" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H511IdComponent19H5dontAtexit_calledE</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5Library.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_340')">
+H5Library::initH5cpp <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_340" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H59H5Library9initH5cppEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_341')">
+H5Library::termH5cpp <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_341" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H59H5Library9termH5cppEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5OcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_342')">
+ObjCreatPropList::DEFAULT <span class='attr'>[data]</span></span>
+<br/>
+<div id="c_342" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropList7DEFAULTE</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_343')">
+ObjCreatPropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_343" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_344')">
+ObjCreatPropList::fromClass <span class='sym_p'>( )</span> const</span>
+<br/>
+<div id="c_344" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList9fromClassEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_345')">
+ObjCreatPropList::getAttrCrtOrder <span class='sym_p'>( )</span> const</span>
+<br/>
+<div id="c_345" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList15getAttrCrtOrderEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_346')">
+ObjCreatPropList::getAttrPhaseChange <span class='sym_p'>( unsigned int& <span class='color_p'>max_compact</span>, <span class='nowrap'>unsigned int& <span class='color_p'>min_dense</span> )</span></span> const</span>
+<br/>
+<div id="c_346" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList18getAttrPhaseChangeERjS1_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_347')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_347" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC1Ev</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_348')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>ObjCreatPropList const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_348" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_349')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>plist_id</span> )</span></span></span>
+<br/>
+<div id="c_349" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC1Ei</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_350')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_350" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC2Ev</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_351')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>ObjCreatPropList const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_351" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC2ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_352')">
+ObjCreatPropList::ObjCreatPropList <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>plist_id</span> )</span></span></span>
+<br/>
+<div id="c_352" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListC2Ei</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_353')">
+ObjCreatPropList::setAttrCrtOrder <span class='sym_p'>( <span class='nowrap'>unsigned int <span class='color_p'>crt_order_flags</span> )</span></span> const</span>
+<br/>
+<div id="c_353" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList15setAttrCrtOrderEj</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_354')">
+ObjCreatPropList::setAttrPhaseChange <span class='sym_p'>( unsigned int <span class='color_p'>max_compact</span>, <span class='nowrap'>unsigned int <span class='color_p'>min_dense</span> )</span></span> const</span>
+<br/>
+<div id="c_354" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H516ObjCreatPropList18setAttrPhaseChangeEjj</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_355')">
+ObjCreatPropList::~ObjCreatPropList <span class='attr'>[in-charge-deleting]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_355" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListD0Ev</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_356')">
+ObjCreatPropList::~ObjCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_356" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListD1Ev</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_357')">
+ObjCreatPropList::~ObjCreatPropList <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( )</span></span>
+<br/>
+<div id="c_357" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516ObjCreatPropListD2Ev</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5PacketTable.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_358')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_358" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC1EiPKc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_359')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> char const* <span class='color_p'>name</span>, <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span></span>
+<br/>
+<div id="c_359" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC1EiPKciyi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_360')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_360" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC2EiPKc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_361')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> char const* <span class='color_p'>name</span>, <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span></span>
+<br/>
+<div id="c_361" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC2EiPKciyi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_362')">
+PacketTable::PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_362" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN11PacketTableC1EiPKc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_363')">
+PacketTable::PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_363" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN11PacketTableC2EiPKc</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5PredType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_364')">
+PredType::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_364" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58PredType15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_365')">
+PredType::PREDTYPE_CONST <span class='attr'>[data]</span></span>
+<br/>
+<div id="c_365" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58PredType14PREDTYPE_CONSTE</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5PropList.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_366')">
+f_PropList_setId <span class='sym_p'>( <span class='nowrap'>PropList* <span class='color_p'>plist</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_366" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516f_PropList_setIdEPNS_8PropListEi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_367')">
+PropList::deleteConstants <span class='sym_p'>( )</span> <span class='attr'>[static]</span></span>
+<br/>
+<div id="c_367" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58PropList15deleteConstantsEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5public.h</span><br/>
+<span class="iname">H5is_library_threadsafe <span class='sym_p'>( <span class='nowrap'>hbool_t* <span class='color_p'>is_ts</span> )</span></span></span><br/>
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Source_Removed'></a><a name='Source_Withdrawn'></a><h2>Removed Symbols (6)</h2><hr/>
+<span class='h_name'>H5PacketTable.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_368')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_368" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC1EiPc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_369')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span></span>
+<br/>
+<div id="c_369" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC1EiPciyi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_370')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_370" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC2EiPc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_371')">
+FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span></span>
+<br/>
+<div id="c_371" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN14FL_PacketTableC2EiPciyi</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_372')">
+PacketTable::PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_372" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN11PacketTableC1EiPc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_373')">
+PacketTable::PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span></span>
+<br/>
+<div id="c_373" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN11PacketTableC2EiPc</b>]</span><br/><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Medium_Risk_Source_Problems'></a><a name='Symbol_Source_Problems_Medium'></a><a name='Interface_Source_Problems_Medium'></a>
+<h2>Problems with Symbols, Medium Severity (164)</h2><hr/>
+<span class='h_name'>H5DataSet.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_374')">
+<span class='extendable'>[+]</span> DataSet::read <span class='sym_p'>( std::string& <span class='color_p'>buf</span>, DataType const& <span class='color_p'>mem_type</span>, DataSpace const& <span class='color_p'>mem_space</span>, DataSpace const& <span class='color_p'>file_space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> const (3)</span>
+<br/>
+<div id="c_374" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H57DataSet4readERSsRKNS_8DataTypeERKNS_9DataSpaceES7_RKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>4th</b> parameter <b>file_space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>mem_space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>3</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>5th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_375')">
+<span class='extendable'>[+]</span> DataSet::read <span class='sym_p'>( <span class='nowrap'>void* <span class='color_p'>buf</span>,</span> DataType const& <span class='color_p'>mem_type</span>, DataSpace const& <span class='color_p'>mem_space</span>, DataSpace const& <span class='color_p'>file_space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> const (3)</span>
+<br/>
+<div id="c_375" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H57DataSet4readEPvRKNS_8DataTypeERKNS_9DataSpaceES7_RKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>4th</b> parameter <b>file_space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>mem_space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>3</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>5th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_376')">
+<span class='extendable'>[+]</span> DataSet::vlenReclaim <span class='sym_p'>( <span class='nowrap'>void* <span class='color_p'>buf</span>,</span> DataType const& <span class='color_p'>type</span>, DataSpace const& <span class='color_p'>space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> <span class='attr'>[static]</span> (2)</span>
+<br/>
+<div id="c_376" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H57DataSet11vlenReclaimEPvRKNS_8DataTypeERKNS_9DataSpaceERKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>4th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_377')">
+<span class='extendable'>[+]</span> DataSet::write <span class='sym_p'>( std::string const& <span class='color_p'>buf</span>, DataType const& <span class='color_p'>mem_type</span>, DataSpace const& <span class='color_p'>mem_space</span>, DataSpace const& <span class='color_p'>file_space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> const (3)</span>
+<br/>
+<div id="c_377" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H57DataSet5writeERKSsRKNS_8DataTypeERKNS_9DataSpaceES8_RKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>4th</b> parameter <b>file_space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>mem_space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>3</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>5th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_378')">
+<span class='extendable'>[+]</span> DataSet::write <span class='sym_p'>( <span class='nowrap'>void const* <span class='color_p'>buf</span>,</span> DataType const& <span class='color_p'>mem_type</span>, DataSpace const& <span class='color_p'>mem_space</span>, DataSpace const& <span class='color_p'>file_space</span>, <span class='nowrap'>DSetMemXferPropList const& <span class='color_p'>xfer_plist</span> )</span></span> const (3)</span>
+<br/>
+<div id="c_378" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H57DataSet5writeEPKvRKNS_8DataTypeERKNS_9DataSpaceES8_RKNS_19DSetMemXferPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>4th</b> parameter <b>file_space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>DataSpace::ALL</b> of <b>3rd</b> parameter <b>mem_space</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>3</th><td align='left' valign='top'>The default argument <b>DSetMemXferPropList::DEFAULT</b> of <b>5th</b> parameter <b>xfer_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DataSpace.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_379')">
+<span class='extendable'>[+]</span> DataSpace::ALL <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_379" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H59DataSpace3ALLE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>DataSpace const</span> to <span class='value'>DataSpace const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DataType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_380')">
+<span class='extendable'>[+]</span> DataType::convert <span class='sym_p'>( DataType const& <span class='color_p'>dest</span>, <span class='nowrap'>size_t <span class='color_p'>nelmts</span>,</span> <span class='nowrap'>void* <span class='color_p'>buf</span>,</span> void* <span class='color_p'>background</span>, <span class='nowrap'>PropList const& <span class='color_p'>plist</span> )</span></span> const (1)</span>
+<br/>
+<div id="c_380" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H58DataType7convertERKS0_mPvS3_RKNS_8PropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>PropList::DEFAULT</b> of <b>5th</b> parameter <b>plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_381')">
+<span class='extendable'>[+]</span> DSetCreatPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_381" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H517DSetCreatPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>DSetCreatPropList const</span> to <span class='value'>DSetCreatPropList const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DxferProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_382')">
+<span class='extendable'>[+]</span> DSetMemXferPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_382" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H519DSetMemXferPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>DSetMemXferPropList const</span> to <span class='value'>DSetMemXferPropList const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5FaccProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_383')">
+<span class='extendable'>[+]</span> FileAccPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_383" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H515FileAccPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>FileAccPropList const</span> to <span class='value'>FileAccPropList const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5FcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_384')">
+<span class='extendable'>[+]</span> FileCreatPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_384" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H517FileCreatPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>FileCreatPropList const</span> to <span class='value'>FileCreatPropList const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5File.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_385')">
+<span class='extendable'>[+]</span> H5File::H5File <span class='attr'>[in-charge]</span> <span class='sym_p'>( char const* <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, FileCreatPropList const& <span class='color_p'>create_plist</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (2)</span>
+<br/>
+<div id="c_385" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5FileC1EPKcjRKNS_17FileCreatPropListERKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>4th</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>FileCreatPropList::DEFAULT</b> of <b>3rd</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_386')">
+<span class='extendable'>[+]</span> H5File::H5File <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( char const* <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, FileCreatPropList const& <span class='color_p'>create_plist</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (2)</span>
+<br/>
+<div id="c_386" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5FileC2EPKcjRKNS_17FileCreatPropListERKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>4th</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>FileCreatPropList::DEFAULT</b> of <b>3rd</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_387')">
+<span class='extendable'>[+]</span> H5File::H5File <span class='attr'>[in-charge]</span> <span class='sym_p'>( std::string const& <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, FileCreatPropList const& <span class='color_p'>create_plist</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (2)</span>
+<br/>
+<div id="c_387" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5FileC1ERKSsjRKNS_17FileCreatPropListERKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>4th</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>FileCreatPropList::DEFAULT</b> of <b>3rd</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_388')">
+<span class='extendable'>[+]</span> H5File::H5File <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( std::string const& <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, FileCreatPropList const& <span class='color_p'>create_plist</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (2)</span>
+<br/>
+<div id="c_388" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5FileC2ERKSsjRKNS_17FileCreatPropListERKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>4th</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>The default argument <b>FileCreatPropList::DEFAULT</b> of <b>3rd</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_389')">
+<span class='extendable'>[+]</span> H5File::openFile <span class='sym_p'>( char const* <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (1)</span>
+<br/>
+<div id="c_389" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5File8openFileEPKcjRKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>3rd</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_390')">
+<span class='extendable'>[+]</span> H5File::openFile <span class='sym_p'>( std::string const& <span class='color_p'>name</span>, unsigned int <span class='color_p'>flags</span>, <span class='nowrap'>FileAccPropList const& <span class='color_p'>access_plist</span> )</span></span> (1)</span>
+<br/>
+<div id="c_390" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H56H5File8openFileERKSsjRKNS_15FileAccPropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>FileAccPropList::DEFAULT</b> of <b>3rd</b> parameter <b>access_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5Location.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_391')">
+<span class='extendable'>[+]</span> H5Location::createAttribute <span class='sym_p'>( char const* <span class='color_p'>name</span>, DataType const& <span class='color_p'>type</span>, DataSpace const& <span class='color_p'>space</span>, <span class='nowrap'>PropList const& <span class='color_p'>create_plist</span> )</span></span> const (1)</span>
+<br/>
+<div id="c_391" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H510H5Location15createAttributeEPKcRKNS_8DataTypeERKNS_9DataSpaceERKNS_8PropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>PropList::DEFAULT</b> of <b>4th</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_392')">
+<span class='extendable'>[+]</span> H5Location::createAttribute <span class='sym_p'>( std::string const& <span class='color_p'>name</span>, DataType const& <span class='color_p'>type</span>, DataSpace const& <span class='color_p'>space</span>, <span class='nowrap'>PropList const& <span class='color_p'>create_plist</span> )</span></span> const (1)</span>
+<br/>
+<div id="c_392" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H510H5Location15createAttributeERKSsRKNS_8DataTypeERKNS_9DataSpaceERKNS_8PropListE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>PropList::DEFAULT</b> of <b>4th</b> parameter <b>create_plist</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PacketTable.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_393')">
+<span class='extendable'>[+]</span> FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span> (1)</span>
+<br/>
+<div id="c_393" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN14FL_PacketTableC2EiPc</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_394')">
+<span class='extendable'>[+]</span> FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span> (1)</span>
+<br/>
+<div id="c_394" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN14FL_PacketTableC1EiPc</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_395')">
+<span class='extendable'>[+]</span> FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span> (1)</span>
+<br/>
+<div id="c_395" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>FL_PacketTable::FL_PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN14FL_PacketTableC1EiPciyi</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_396')">
+<span class='extendable'>[+]</span> FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>dtypeID</span>,</span> hsize_t <span class='color_p'>chunkSize</span>, <span class='nowrap'>int <span class='color_p'>compression</span> )</span></span> (1)</span>
+<br/>
+<div id="c_396" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>FL_PacketTable::FL_PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN14FL_PacketTableC2EiPciyi</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_397')">
+<span class='extendable'>[+]</span> PacketTable::PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span> (1)</span>
+<br/>
+<div id="c_397" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>PacketTable::PacketTable <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN11PacketTableC1EiPc</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_398')">
+<span class='extendable'>[+]</span> PacketTable::PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char* <span class='color_p'>name</span> )</span></span> (1)</span>
+<br/>
+<div id="c_398" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>PacketTable::PacketTable <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>fileID</span>,</span> <span class='nowrap'>char const* <span class='color_p'>name</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN11PacketTableC2EiPc</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Parameters list has been changed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PredType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_399')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_399" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_400')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_400" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_401')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_401" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_402')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_402" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_403')">
+<span class='extendable'>[+]</span> PredType::ALPHA_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_403" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_404')">
+<span class='extendable'>[+]</span> PredType::ALPHA_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_404" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_405')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_405" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_406')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_406" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_407')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_407" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_408')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_408" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_409')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_409" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_410')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_410" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_411')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_411" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_412')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_412" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_413')">
+<span class='extendable'>[+]</span> PredType::C_S1 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_413" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType4C_S1E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_414')">
+<span class='extendable'>[+]</span> PredType::FORTRAN_S1 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_414" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10FORTRAN_S1E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_415')">
+<span class='extendable'>[+]</span> PredType::IEEE_F32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_415" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_416')">
+<span class='extendable'>[+]</span> PredType::IEEE_F32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_416" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_417')">
+<span class='extendable'>[+]</span> PredType::IEEE_F64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_417" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_418')">
+<span class='extendable'>[+]</span> PredType::IEEE_F64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_418" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_419')">
+<span class='extendable'>[+]</span> PredType::INTEL_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_419" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_420')">
+<span class='extendable'>[+]</span> PredType::INTEL_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_420" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_421')">
+<span class='extendable'>[+]</span> PredType::INTEL_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_421" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_422')">
+<span class='extendable'>[+]</span> PredType::INTEL_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_422" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_423')">
+<span class='extendable'>[+]</span> PredType::INTEL_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_423" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_424')">
+<span class='extendable'>[+]</span> PredType::INTEL_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_424" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_425')">
+<span class='extendable'>[+]</span> PredType::INTEL_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_425" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_426')">
+<span class='extendable'>[+]</span> PredType::INTEL_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_426" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_427')">
+<span class='extendable'>[+]</span> PredType::INTEL_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_427" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_428')">
+<span class='extendable'>[+]</span> PredType::INTEL_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_428" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_429')">
+<span class='extendable'>[+]</span> PredType::INTEL_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_429" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_430')">
+<span class='extendable'>[+]</span> PredType::INTEL_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_430" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_431')">
+<span class='extendable'>[+]</span> PredType::INTEL_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_431" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_432')">
+<span class='extendable'>[+]</span> PredType::INTEL_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_432" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_433')">
+<span class='extendable'>[+]</span> PredType::MIPS_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_433" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_434')">
+<span class='extendable'>[+]</span> PredType::MIPS_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_434" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_435')">
+<span class='extendable'>[+]</span> PredType::MIPS_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_435" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_436')">
+<span class='extendable'>[+]</span> PredType::MIPS_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_436" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_437')">
+<span class='extendable'>[+]</span> PredType::MIPS_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_437" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_438')">
+<span class='extendable'>[+]</span> PredType::MIPS_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_438" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_439')">
+<span class='extendable'>[+]</span> PredType::MIPS_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_439" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_440')">
+<span class='extendable'>[+]</span> PredType::MIPS_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_440" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_441')">
+<span class='extendable'>[+]</span> PredType::MIPS_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_441" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_442')">
+<span class='extendable'>[+]</span> PredType::MIPS_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_442" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_443')">
+<span class='extendable'>[+]</span> PredType::MIPS_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_443" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_444')">
+<span class='extendable'>[+]</span> PredType::MIPS_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_444" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_445')">
+<span class='extendable'>[+]</span> PredType::MIPS_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_445" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_446')">
+<span class='extendable'>[+]</span> PredType::MIPS_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_446" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_447')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_447" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_448')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_448" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_449')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_449" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_450')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_450" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9NATIVE_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_451')">
+<span class='extendable'>[+]</span> PredType::NATIVE_CHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_451" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_CHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_452')">
+<span class='extendable'>[+]</span> PredType::NATIVE_DOUBLE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_452" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_DOUBLEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_453')">
+<span class='extendable'>[+]</span> PredType::NATIVE_FLOAT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_453" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_FLOATE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_454')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HBOOL <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_454" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_HBOOLE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_455')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HERR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_455" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_HERRE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_456')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HSIZE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_456" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_HSIZEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_457')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HSSIZE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_457" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_HSSIZEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_458')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_458" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_INTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_459')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_459" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_460')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_460" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_461')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_461" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_462')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_462" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_INT8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_463')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_463" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_464')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_464" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_465')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_465" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_466')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_466" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType16NATIVE_INT_FAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_467')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_467" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_468')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_468" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_469')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_469" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_470')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_470" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_LEAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_471')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LDOUBLE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_471" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType14NATIVE_LDOUBLEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_472')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LLONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_472" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_LLONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_473')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_473" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_LONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_474')">
+<span class='extendable'>[+]</span> PredType::NATIVE_OPAQUE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_474" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_OPAQUEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_475')">
+<span class='extendable'>[+]</span> PredType::NATIVE_SCHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_475" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_SCHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_476')">
+<span class='extendable'>[+]</span> PredType::NATIVE_SHORT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_476" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_SHORTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_477')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UCHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_477" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_UCHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_478')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_478" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_UINTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_479')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_479" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_480')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_480" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_481')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_481" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_482')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_482" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_UINT8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_483')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_483" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_484')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_484" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_485')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_485" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_486')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_486" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_UINT_FAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_487')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_487" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_488')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_488" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_489')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_489" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_490')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_490" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_LEAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_491')">
+<span class='extendable'>[+]</span> PredType::NATIVE_ULLONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_491" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_ULLONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_492')">
+<span class='extendable'>[+]</span> PredType::NATIVE_ULONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_492" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_ULONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_493')">
+<span class='extendable'>[+]</span> PredType::NATIVE_USHORT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_493" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_USHORTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_494')">
+<span class='extendable'>[+]</span> PredType::STD_B16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_494" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_495')">
+<span class='extendable'>[+]</span> PredType::STD_B16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_495" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_496')">
+<span class='extendable'>[+]</span> PredType::STD_B32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_496" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_497')">
+<span class='extendable'>[+]</span> PredType::STD_B32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_497" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_498')">
+<span class='extendable'>[+]</span> PredType::STD_B64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_498" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_499')">
+<span class='extendable'>[+]</span> PredType::STD_B64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_499" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_500')">
+<span class='extendable'>[+]</span> PredType::STD_B8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_500" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_B8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_501')">
+<span class='extendable'>[+]</span> PredType::STD_B8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_501" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_B8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_502')">
+<span class='extendable'>[+]</span> PredType::STD_I16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_502" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_503')">
+<span class='extendable'>[+]</span> PredType::STD_I16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_503" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_504')">
+<span class='extendable'>[+]</span> PredType::STD_I32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_504" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_505')">
+<span class='extendable'>[+]</span> PredType::STD_I32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_505" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_506')">
+<span class='extendable'>[+]</span> PredType::STD_I64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_506" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_507')">
+<span class='extendable'>[+]</span> PredType::STD_I64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_507" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_508')">
+<span class='extendable'>[+]</span> PredType::STD_I8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_508" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_I8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_509')">
+<span class='extendable'>[+]</span> PredType::STD_I8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_509" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_I8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_510')">
+<span class='extendable'>[+]</span> PredType::STD_REF_DSETREG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_510" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType15STD_REF_DSETREGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_511')">
+<span class='extendable'>[+]</span> PredType::STD_REF_OBJ <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_511" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11STD_REF_OBJE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_512')">
+<span class='extendable'>[+]</span> PredType::STD_U16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_512" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_513')">
+<span class='extendable'>[+]</span> PredType::STD_U16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_513" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_514')">
+<span class='extendable'>[+]</span> PredType::STD_U32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_514" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_515')">
+<span class='extendable'>[+]</span> PredType::STD_U32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_515" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_516')">
+<span class='extendable'>[+]</span> PredType::STD_U64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_516" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_517')">
+<span class='extendable'>[+]</span> PredType::STD_U64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_517" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_518')">
+<span class='extendable'>[+]</span> PredType::STD_U8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_518" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_U8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_519')">
+<span class='extendable'>[+]</span> PredType::STD_U8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_519" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_U8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_520')">
+<span class='extendable'>[+]</span> PredType::UNIX_D32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_520" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_521')">
+<span class='extendable'>[+]</span> PredType::UNIX_D32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_521" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_522')">
+<span class='extendable'>[+]</span> PredType::UNIX_D64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_522" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_523')">
+<span class='extendable'>[+]</span> PredType::UNIX_D64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_523" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PredType const</span> to <span class='value'>PredType const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PropList.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_524')">
+<span class='extendable'>[+]</span> PropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_524" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <span class='value'>PropList const</span> to <span class='value'>PropList const&</span> of different format.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Low_Risk_Source_Problems'></a><a name='Type_Source_Problems_Low'></a>
+<h2>Problems with Data Types, Low Severity (2)</h2><hr/>
+<span class='h_name'>H5DcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_525')">
+<span class='extendable'>[+]</span> <span class='ttype'>class</span> DSetCreatPropList (2)</span>
+<br/>
+<div id="c_525" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Base class <b>ObjCreatPropList</b> has been added.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+<tr><th>2</th><td align='left' valign='top'>Base class <b>PropList</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table>
+<span class="section_affected" onclick="javascript:showContent(this, 'c_526')">
+[+] affected symbols (31)</span>
+<div id="c_526" style="display:none;">
+<div class='affected'><span class='iname_a'>DSetCreatPropList::allFiltersAvail <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::DEFAULT <span class='attr'>[data]</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::DSetCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This constructor is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::DSetCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>DSetCreatPropList const& <span class='param'>orig</span> )</span></span></span><br/><div class='affect'>This constructor is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::DSetCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='param'>plist_id</span> )</span></span></span><br/><div class='affect'>This constructor is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::fromClass <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getAllocTime <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getChunk <span class='sym_p'>( <span class='nowrap'>int <span class='param'>max_ndims</span>,</span> <span class='nowrap'>hsize_t* <span class='param'>dim</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getExternal <span class='sym_p'>( <span class='nowrap'>unsigned int <span class='param'>idx</span>,</span> <span class='nowrap'>size_t <span class='param'>name_size</span>,</span> <span class='nowrap'>char* <span class='param'>name</span>,</span> <span class='nowrap'>off_t& <span class='param'>offset</span>,</span> <span class='nowrap'>hsize_t& <span class='param'>size</span> )</span></span> const</span><br/><div class='affect'>T [...]
+<span class='iname_a'>DSetCreatPropList::getExternalCount <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getFillTime <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getFillValue <span class='sym_p'>( DataType const& <span class='param'>fvalue_type</span>, <span class='nowrap'>void* <span class='param'>value</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getFilter <span class='sym_p'>( <span class='nowrap'>int <span class='param'>filter_number</span>,</span> unsigned int& <span class='param'>flags</span>, size_t& <span class='param'>cd_nelmts</span>, unsigned int* <span class='param'>cd_values</span>, <span class='nowrap'>size_t <span class='param'>namelen</span>,</span> <span class='nowrap'>char* <span class='param'>name</span>,</span> <span class='nowrap'>unsigned int& <spa [...]
+<span class='iname_a'>DSetCreatPropList::getFilterById <span class='sym_p'>( H5Z_filter_t <span class='param'>filter_id</span>, unsigned int& <span class='param'>flags</span>, size_t& <span class='param'>cd_nelmts</span>, unsigned int* <span class='param'>cd_values</span>, <span class='nowrap'>size_t <span class='param'>namelen</span>,</span> <span class='nowrap'>char* <span class='param'>name</span>,</span> <span class='nowrap'>unsigned int& <span class='param'>fil [...]
+<span class='iname_a'>DSetCreatPropList::getLayout <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::getNfilters <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::isFillValueDefined <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::modifyFilter <span class='sym_p'>( H5Z_filter_t <span class='param'>filter_id</span>, unsigned int <span class='param'>flags</span>, <span class='nowrap'>size_t <span class='param'>cd_nelmts</span>,</span> <span class='nowrap'>unsigned int const* <span class='param'>cd_values</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::removeFilter <span class='sym_p'>( <span class='nowrap'>H5Z_filter_t <span class='param'>filter_id</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setAllocTime <span class='sym_p'>( <span class='nowrap'>H5D_alloc_time_t <span class='param'>alloc_time</span> )</span></span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setChunk <span class='sym_p'>( <span class='nowrap'>int <span class='param'>ndims</span>,</span> <span class='nowrap'>hsize_t const* <span class='param'>dim</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setDeflate <span class='sym_p'>( <span class='nowrap'>int <span class='param'>level</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setExternal <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> <span class='nowrap'>off_t <span class='param'>offset</span>,</span> <span class='nowrap'>hsize_t <span class='param'>size</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setFillTime <span class='sym_p'>( <span class='nowrap'>H5D_fill_time_t <span class='param'>fill_time</span> )</span></span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setFillValue <span class='sym_p'>( DataType const& <span class='param'>fvalue_type</span>, <span class='nowrap'>void const* <span class='param'>value</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setFilter <span class='sym_p'>( H5Z_filter_t <span class='param'>filter</span>, unsigned int <span class='param'>flags</span>, <span class='nowrap'>size_t <span class='param'>cd_nelmts</span>,</span> <span class='nowrap'>unsigned int const* <span class='param'>cd_values</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setFletcher32 <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setLayout <span class='sym_p'>( <span class='nowrap'>H5D_layout_t <span class='param'>layout</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setShuffle <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::setSzip <span class='sym_p'>( unsigned int <span class='param'>options_mask</span>, <span class='nowrap'>unsigned int <span class='param'>pixels_per_block</span> )</span></span> const</span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+<span class='iname_a'>DSetCreatPropList::~DSetCreatPropList <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'DSetCreatPropList' class.</div>
+</div></div>
+<br/><br/></div>
+
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Symbol_Source_Problems_Low'></a><a name='Interface_Source_Problems_Low'></a>
+<h2>Problems with Symbols, Low Severity (131)</h2><hr/>
+<span class='h_name'>H5DataSpace.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_527')">
+<span class='extendable'>[+]</span> DataSpace::ALL <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_527" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H59DataSpace3ALLE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_528')">
+<span class='extendable'>[+]</span> DSetCreatPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_528" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H517DSetCreatPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5DxferProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_529')">
+<span class='extendable'>[+]</span> DSetMemXferPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_529" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H519DSetMemXferPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5FaccProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_530')">
+<span class='extendable'>[+]</span> FileAccPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_530" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H515FileAccPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5FcreatProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_531')">
+<span class='extendable'>[+]</span> FileCreatPropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_531" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H517FileCreatPropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PredType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_532')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_532" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_533')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_533" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_534')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_534" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_535')">
+<span class='extendable'>[+]</span> PredType::ALPHA_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_535" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_536')">
+<span class='extendable'>[+]</span> PredType::ALPHA_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_536" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_537')">
+<span class='extendable'>[+]</span> PredType::ALPHA_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_537" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_538')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_538" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_539')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_539" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_540')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_540" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_541')">
+<span class='extendable'>[+]</span> PredType::ALPHA_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_541" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_542')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_542" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_543')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_543" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_544')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_544" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9ALPHA_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_545')">
+<span class='extendable'>[+]</span> PredType::ALPHA_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_545" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8ALPHA_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_546')">
+<span class='extendable'>[+]</span> PredType::C_S1 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_546" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType4C_S1E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_547')">
+<span class='extendable'>[+]</span> PredType::FORTRAN_S1 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_547" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10FORTRAN_S1E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_548')">
+<span class='extendable'>[+]</span> PredType::IEEE_F32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_548" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_549')">
+<span class='extendable'>[+]</span> PredType::IEEE_F32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_549" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_550')">
+<span class='extendable'>[+]</span> PredType::IEEE_F64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_550" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_551')">
+<span class='extendable'>[+]</span> PredType::IEEE_F64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_551" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10IEEE_F64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_552')">
+<span class='extendable'>[+]</span> PredType::INTEL_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_552" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_553')">
+<span class='extendable'>[+]</span> PredType::INTEL_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_553" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_554')">
+<span class='extendable'>[+]</span> PredType::INTEL_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_554" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_555')">
+<span class='extendable'>[+]</span> PredType::INTEL_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_555" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_556')">
+<span class='extendable'>[+]</span> PredType::INTEL_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_556" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_557')">
+<span class='extendable'>[+]</span> PredType::INTEL_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_557" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_558')">
+<span class='extendable'>[+]</span> PredType::INTEL_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_558" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_559')">
+<span class='extendable'>[+]</span> PredType::INTEL_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_559" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_560')">
+<span class='extendable'>[+]</span> PredType::INTEL_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_560" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_561')">
+<span class='extendable'>[+]</span> PredType::INTEL_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_561" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_562')">
+<span class='extendable'>[+]</span> PredType::INTEL_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_562" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_563')">
+<span class='extendable'>[+]</span> PredType::INTEL_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_563" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_564')">
+<span class='extendable'>[+]</span> PredType::INTEL_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_564" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9INTEL_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_565')">
+<span class='extendable'>[+]</span> PredType::INTEL_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_565" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8INTEL_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_566')">
+<span class='extendable'>[+]</span> PredType::MIPS_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_566" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_567')">
+<span class='extendable'>[+]</span> PredType::MIPS_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_567" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_568')">
+<span class='extendable'>[+]</span> PredType::MIPS_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_568" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_569')">
+<span class='extendable'>[+]</span> PredType::MIPS_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_569" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_570')">
+<span class='extendable'>[+]</span> PredType::MIPS_F32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_570" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_F32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_571')">
+<span class='extendable'>[+]</span> PredType::MIPS_F64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_571" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_F64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_572')">
+<span class='extendable'>[+]</span> PredType::MIPS_I16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_572" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_573')">
+<span class='extendable'>[+]</span> PredType::MIPS_I32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_573" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_574')">
+<span class='extendable'>[+]</span> PredType::MIPS_I64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_574" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_I64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_575')">
+<span class='extendable'>[+]</span> PredType::MIPS_I8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_575" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_I8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_576')">
+<span class='extendable'>[+]</span> PredType::MIPS_U16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_576" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_577')">
+<span class='extendable'>[+]</span> PredType::MIPS_U32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_577" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_578')">
+<span class='extendable'>[+]</span> PredType::MIPS_U64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_578" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8MIPS_U64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_579')">
+<span class='extendable'>[+]</span> PredType::MIPS_U8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_579" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType7MIPS_U8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_580')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_580" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_581')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_581" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_582')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_582" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_B64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_583')">
+<span class='extendable'>[+]</span> PredType::NATIVE_B8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_583" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9NATIVE_B8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_584')">
+<span class='extendable'>[+]</span> PredType::NATIVE_CHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_584" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_CHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_585')">
+<span class='extendable'>[+]</span> PredType::NATIVE_DOUBLE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_585" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_DOUBLEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_586')">
+<span class='extendable'>[+]</span> PredType::NATIVE_FLOAT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_586" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_FLOATE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_587')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HBOOL <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_587" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_HBOOLE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_588')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HERR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_588" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_HERRE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_589')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HSIZE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_589" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_HSIZEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_590')">
+<span class='extendable'>[+]</span> PredType::NATIVE_HSSIZE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_590" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_HSSIZEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_591')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_591" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10NATIVE_INTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_592')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_592" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_593')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_593" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_594')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_594" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_INT64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_595')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_595" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_INT8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_596')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_596" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_597')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_597" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_598')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_598" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_FAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_599')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_FAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_599" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType16NATIVE_INT_FAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_600')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_600" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_601')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_601" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_602')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_602" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_INT_LEAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_603')">
+<span class='extendable'>[+]</span> PredType::NATIVE_INT_LEAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_603" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_INT_LEAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_604')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LDOUBLE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_604" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType14NATIVE_LDOUBLEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_605')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LLONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_605" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_LLONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_606')">
+<span class='extendable'>[+]</span> PredType::NATIVE_LONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_606" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_LONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_607')">
+<span class='extendable'>[+]</span> PredType::NATIVE_OPAQUE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_607" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_OPAQUEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_608')">
+<span class='extendable'>[+]</span> PredType::NATIVE_SCHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_608" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_SCHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_609')">
+<span class='extendable'>[+]</span> PredType::NATIVE_SHORT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_609" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_SHORTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_610')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UCHAR <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_610" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_UCHARE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_611')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_611" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11NATIVE_UINTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_612')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_612" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_613')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_613" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_614')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_614" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_UINT64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_615')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_615" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_UINT8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_616')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_616" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_617')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_617" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_618')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_618" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_FAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_619')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_FAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_619" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType17NATIVE_UINT_FAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_620')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST16 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_620" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST16E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_621')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST32 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_621" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST32E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_622')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST64 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_622" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType19NATIVE_UINT_LEAST64E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_623')">
+<span class='extendable'>[+]</span> PredType::NATIVE_UINT_LEAST8 <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_623" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType18NATIVE_UINT_LEAST8E</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_624')">
+<span class='extendable'>[+]</span> PredType::NATIVE_ULLONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_624" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_ULLONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_625')">
+<span class='extendable'>[+]</span> PredType::NATIVE_ULONG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_625" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType12NATIVE_ULONGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_626')">
+<span class='extendable'>[+]</span> PredType::NATIVE_USHORT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_626" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType13NATIVE_USHORTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_627')">
+<span class='extendable'>[+]</span> PredType::STD_B16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_627" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_628')">
+<span class='extendable'>[+]</span> PredType::STD_B16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_628" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_629')">
+<span class='extendable'>[+]</span> PredType::STD_B32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_629" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_630')">
+<span class='extendable'>[+]</span> PredType::STD_B32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_630" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_631')">
+<span class='extendable'>[+]</span> PredType::STD_B64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_631" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_632')">
+<span class='extendable'>[+]</span> PredType::STD_B64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_632" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_B64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_633')">
+<span class='extendable'>[+]</span> PredType::STD_B8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_633" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_B8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_634')">
+<span class='extendable'>[+]</span> PredType::STD_B8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_634" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_B8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_635')">
+<span class='extendable'>[+]</span> PredType::STD_I16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_635" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_636')">
+<span class='extendable'>[+]</span> PredType::STD_I16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_636" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_637')">
+<span class='extendable'>[+]</span> PredType::STD_I32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_637" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_638')">
+<span class='extendable'>[+]</span> PredType::STD_I32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_638" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_639')">
+<span class='extendable'>[+]</span> PredType::STD_I64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_639" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_640')">
+<span class='extendable'>[+]</span> PredType::STD_I64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_640" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_I64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_641')">
+<span class='extendable'>[+]</span> PredType::STD_I8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_641" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_I8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_642')">
+<span class='extendable'>[+]</span> PredType::STD_I8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_642" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_I8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_643')">
+<span class='extendable'>[+]</span> PredType::STD_REF_DSETREG <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_643" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType15STD_REF_DSETREGE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_644')">
+<span class='extendable'>[+]</span> PredType::STD_REF_OBJ <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_644" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType11STD_REF_OBJE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_645')">
+<span class='extendable'>[+]</span> PredType::STD_U16BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_645" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U16BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_646')">
+<span class='extendable'>[+]</span> PredType::STD_U16LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_646" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U16LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_647')">
+<span class='extendable'>[+]</span> PredType::STD_U32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_647" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_648')">
+<span class='extendable'>[+]</span> PredType::STD_U32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_648" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_649')">
+<span class='extendable'>[+]</span> PredType::STD_U64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_649" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_650')">
+<span class='extendable'>[+]</span> PredType::STD_U64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_650" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType9STD_U64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_651')">
+<span class='extendable'>[+]</span> PredType::STD_U8BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_651" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_U8BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_652')">
+<span class='extendable'>[+]</span> PredType::STD_U8LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_652" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType8STD_U8LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_653')">
+<span class='extendable'>[+]</span> PredType::UNIX_D32BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_653" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D32BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_654')">
+<span class='extendable'>[+]</span> PredType::UNIX_D32LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_654" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D32LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_655')">
+<span class='extendable'>[+]</span> PredType::UNIX_D64BE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_655" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D64BEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_656')">
+<span class='extendable'>[+]</span> PredType::UNIX_D64LE <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_656" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PredType10UNIX_D64LEE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5PropList.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_657')">
+<span class='extendable'>[+]</span> PropList::DEFAULT <span class='attr'>[data]</span> (1)</span>
+<br/>
+<div id="c_657" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H58PropList7DEFAULTE</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Type of this global data has been changed from <b>0</b> to <b>1</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Constant_Source_Problems_Low'></a><h2>Problems with Constants, Low Severity (11)</h2><hr/>
+<span class='h_name'>H5Fpublic.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_658')">
+<span class='extendable'>[+]</span> H5F_ACC_DEBUG</span>
+<br/>
+<div id="c_658" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5F_ACC_DEBUG</b> has been changed from <span class='value'>(H5CHECK 0x0008u)</span> to <span class='value'>(H5CHECK 0x0000u)</span>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5Library.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_659')">
+<span class='extendable'>[+]</span> NOTATEXIT</span>
+<br/>
+<div id="c_659" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>NOTATEXIT</b> with value <b>(-10)</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5PredType.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_660')">
+<span class='extendable'>[+]</span> H5CPP_EXITED</span>
+<br/>
+<div id="c_660" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5CPP_EXITED</b> with value <b>-3</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5pubconf.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_661')">
+<span class='extendable'>[+]</span> H5_CONVERT_DENORMAL_FLOAT</span>
+<br/>
+<div id="c_661" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_CONVERT_DENORMAL_FLOAT</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_662')">
+<span class='extendable'>[+]</span> H5_FP_TO_INTEGER_OVERFLOW_WORKS</span>
+<br/>
+<div id="c_662" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_FP_TO_INTEGER_OVERFLOW_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_663')">
+<span class='extendable'>[+]</span> H5_PACKAGE_STRING</span>
+<br/>
+<div id="c_663" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_PACKAGE_STRING</b> has been changed from <span class='value'>"HDF5 1.8.15-patch1"</span> to <span class='value'>"HDF5 1.8.16"</span>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_664')">
+<span class='extendable'>[+]</span> H5_PACKAGE_VERSION</span>
+<br/>
+<div id="c_664" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_PACKAGE_VERSION</b> has been changed from <b>"1.8.15-patch1"</b> to <b>"1.8.16"</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_665')">
+<span class='extendable'>[+]</span> H5_VERSION</span>
+<br/>
+<div id="c_665" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_VERSION</b> has been changed from <b>"1.8.15-patch1"</b> to <b>"1.8.16"</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5public.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_666')">
+<span class='extendable'>[+]</span> H5_VERS_INFO</span>
+<br/>
+<div id="c_666" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_VERS_INFO</b> has been changed from <span class='value'>"HDF5 library version: 1.8.15-patch1"</span> to <span class='value'>"HDF5 library version: 1.8.16"</span>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_667')">
+<span class='extendable'>[+]</span> H5_VERS_RELEASE</span>
+<br/>
+<div id="c_667" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_VERS_RELEASE</b> has been changed from <b>15</b> to <b>16</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_668')">
+<span class='extendable'>[+]</span> H5_VERS_SUBRELEASE</span>
+<br/>
+<div id="c_668" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_VERS_SUBRELEASE</b> has been changed from <b>"patch1"</b> to <b>""</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Constants'></a><h2>Other Changes in Constants (3)</h2><hr/>
+<span class='h_name'>H5pubconf.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_669')">
+<span class='extendable'>[+]</span> H5_HAVE___INLINE</span>
+<br/>
+<div id="c_669" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE___INLINE</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_670')">
+<span class='extendable'>[+]</span> H5_HAVE___INLINE__</span>
+<br/>
+<div id="c_670" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE___INLINE__</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_671')">
+<span class='extendable'>[+]</span> H5_HAVE_INLINE</span>
+<br/>
+<div id="c_671" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_INLINE</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files (76)</h2><hr/>
+<div class='h_list'>
+H5AbstractDs.h<br/>
+H5ACpublic.h<br/>
+H5api_adpt.h<br/>
+H5Apublic.h<br/>
+H5ArrayType.h<br/>
+H5AtomType.h<br/>
+H5Attribute.h<br/>
+H5Classes.h<br/>
+H5CommonFG.h<br/>
+H5CompType.h<br/>
+H5Cpp.h<br/>
+H5CppDoc.h<br/>
+H5Cpublic.h<br/>
+H5DataSet.h<br/>
+H5DataSpace.h<br/>
+H5DataType.h<br/>
+H5DcreatProp.h<br/>
+H5DOpublic.h<br/>
+H5Dpublic.h<br/>
+H5DSpublic.h<br/>
+H5DxferProp.h<br/>
+H5EnumType.h<br/>
+H5Epubgen.h<br/>
+H5Epublic.h<br/>
+H5Exception.h<br/>
+H5f90i.h<br/>
+H5f90i_gen.h<br/>
+H5FaccProp.h<br/>
+H5FcreatProp.h<br/>
+H5FDcore.h<br/>
+H5FDdirect.h<br/>
+H5FDfamily.h<br/>
+H5FDlog.h<br/>
+H5FDmpi.h<br/>
+H5FDmpio.h<br/>
+H5FDmulti.h<br/>
+H5FDpublic.h<br/>
+H5FDsec2.h<br/>
+H5FDstdio.h<br/>
+H5File.h<br/>
+H5FloatType.h<br/>
+H5Fpublic.h<br/>
+H5Gpublic.h<br/>
+H5Group.h<br/>
+H5IdComponent.h<br/>
+H5IMpublic.h<br/>
+H5Include.h<br/>
+H5IntType.h<br/>
+H5Ipublic.h<br/>
+H5Library.h<br/>
+H5Location.h<br/>
+H5Lpublic.h<br/>
+H5LTpublic.h<br/>
+H5MMpublic.h<br/>
+H5Object.h<br/>
+H5Opublic.h<br/>
+H5overflow.h<br/>
+H5PacketTable.h<br/>
+H5PLextern.h<br/>
+H5PLpublic.h<br/>
+H5Ppublic.h<br/>
+H5PredType.h<br/>
+H5PropList.h<br/>
+H5PTpublic.h<br/>
+H5pubconf.h<br/>
+H5public.h<br/>
+H5Rpublic.h<br/>
+H5Spublic.h<br/>
+H5StrType.h<br/>
+H5TBpublic.h<br/>
+H5Tpublic.h<br/>
+H5VarLenType.h<br/>
+H5version.h<br/>
+H5Zpublic.h<br/>
+hdf5.h<br/>
+hdf5_hl.h<br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><div style='width:97%;padding-top:3px;font-size:11px;' align='right'><i>Generated on Tue Nov 10 11:48:32 2015 for <span style='font-weight:bold'>hdf5</span> by <a href='http://ispras.linuxbase.org/index.php/ABI_compliance_checker'>ABI Compliance Checker</a> 1.99.9  <br/>A tool for checking backward compatibility of a C/C++ library API  </i></div>
+<div style='height:999px;'></div>
+</body></html>
\ No newline at end of file
diff --git a/html/ADGuide/ImageSpec.html b/html/ADGuide/ImageSpec.html
index 946ce7e..d5d7e6a 100755
--- a/html/ADGuide/ImageSpec.html
+++ b/html/ADGuide/ImageSpec.html
@@ -39,7 +39,7 @@
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -1260,7 +1260,7 @@ it may or may not be correct for a given application.</p>
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
diff --git a/html/ADGuide/WhatsNew180.html b/html/ADGuide/WhatsNew180.html
index c6878bb..5ab450b 100755
--- a/html/ADGuide/WhatsNew180.html
+++ b/html/ADGuide/WhatsNew180.html
@@ -302,7 +302,7 @@ ul
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -511,7 +511,7 @@ provided here:
 While all new APIs are documented in the 
 <a href="../RM/RM_H5Front.html"><cite>HDF5 Reference Manual</cite></a>,
 there has not been time yet to describe all of them in the
-<a href="../UG/UG_frame.html"><cite>HDF5 User’s Guide</cite></a>.
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 User’s Guide</cite></a>.
 </p>
 
 
@@ -855,7 +855,7 @@ there has not been time yet to describe all of them in the
     </dir>
 
     <p>
-    See “<a href="../UG/UG_frame17SpecialTopics.html">Metadata 
+    See “<a href="../Advanced/MetadataCache/index.html">Metadata 
     Caching in HDF5</a>” in the 
     <cite>HDF5 User’s Guide</cite> for further information.
 
@@ -1178,7 +1178,7 @@ N-Bit Filter 
 <span style='font-size:10.0pt;font-family:"Courier New"'>H5Pset_nbit</span></a>
 in the <cite>HDF5 Reference Manual</cite>
 and the section “Using Filters / N-bit” in the 
-“<a href="../UG/UG_frame10Datasets.html">Datasets</a>”
+“<a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatasets%2FHDF5_Datasets.htm">Datasets</a>”
 chapter of the <cite>HDF5 User’s Guide</cite>.
 </p>
 
@@ -1191,7 +1191,7 @@ style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&n
 <span style='font-size:10.0pt;font-family:"Courier New"'>H5Pset_scaleoffset</span></a>
 in the <cite>HDF5 Reference Manual</cite>
 and the section “Using Filters / Scale-Offset” in the 
-“<a href="../UG/UG_frame10Datasets.html">Datasets</a>”
+“<a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatasets%2FHDF5_Datasets.htm">Datasets</a>”
 chapter of the <cite>HDF5 User’s Guide</cite>.
 </p>
 
@@ -1505,7 +1505,7 @@ the build infrastructure as well.
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
diff --git a/html/Advanced.html b/html/Advanced.html
index a2a8519..39411b7 100644
--- a/html/Advanced.html
+++ b/html/Advanced.html
@@ -39,7 +39,7 @@
     -->
 </td>
 <td valign="top" align="right">
-    <a href="UG/index.html">HDF5 User's Guide</a> <br />
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br />
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br />
     <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br />
 </td></tr>
@@ -157,16 +157,14 @@
       <tr><td colspan="3"> </td></tr>
 
       <tr><td valign="top">
-      <a href="Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf">
-      HDF5 Dynamically</a>
+      <a href="Advanced/DynamicallyLoadedFilters/">Dynamic Plugins</a>
           <br />   
-          <a href="Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf">
-          Loaded Filters</a>
+          <a href="Advanced/DynamicallyLoadedFilters/">
+          in HDF5</a>
         </td><td></td><td valign="top">
-          Describes how an HDF5 application can apply a filter that is not 
-          registered with the HDF5 Library.
-          <br />
-          <i>(PDF only)</i>
+          Describes the use of dynamic plugins, 
+          including dynamically loaded filters, in HDF5.
+          These plugins need not be registered with the HDF5 Library.
         </td></tr>
 
       <tr><td colspan="3"> </td></tr>
@@ -318,7 +316,7 @@
     -->
 </td>
 <td valign="top" align="right">
-    <a href="UG/index.html">HDF5 User's Guide</a> <br />
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br />
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br />
     <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br />
 </td></tr>
@@ -329,7 +327,7 @@
 
 <?php include("./ed_libs/Footer.htm"); ?>
 
-Last modified:  12 May 2015
+Last modified:  16 September 2015
 
 
 </body>
diff --git a/html/Advanced/Chunking/index.html b/html/Advanced/Chunking/index.html
index 55704f3..bdc0c9a 100644
--- a/html/Advanced/Chunking/index.html
+++ b/html/Advanced/Chunking/index.html
@@ -33,73 +33,73 @@
 
 <h2>Introduction</h2>
 
-    Datasets in HDF5 not only provide a convenient, structured, and 
+    <p>Datasets in HDF5 not only provide a convenient, structured, and 
     self-describing way to store data, but are also designed to do so with 
-    good performance. In order to maximize performance, the HDF5 library 
+    good performance. In order to maximize performance, the HDF5 Library 
     provides ways to specify how the data is stored on disk, 
-    how it is accessed, and how it should be held in memory.
+    how it is accessed, and how it should be held in memory.</p>
 <!--
 ---------1---------2---------3---------4---------5---------6---------7---------8
 -->
 
 <h2>What are Chunks?</h2>
 
-  Datasets in HDF5 can represent arrays with any number of dimensions (up to 32). 
+  <p>Datasets in HDF5 can represent arrays with any number of dimensions (up to 32). 
   However, in the file this dataset must be stored as part of the 1-dimensional 
   stream of data that is the low-level file. The way in which the multidimensional 
   dataset is mapped to the serial file is called the layout. The most obvious way to 
   accomplish this is to simply flatten the dataset in a way similar to how arrays are 
   stored in memory, serializing the entire dataset into a monolithic block on disk, 
   which maps directly to a memory buffer the size of the dataset. This is called a 
-  contiguous layout.
-  <p>
-  An alternative to the contiguous layout is the chunked layout. Whereas contiguous 
+  contiguous layout.</p>
+  
+  <p>An alternative to the contiguous layout is the chunked layout. Whereas contiguous 
   datasets are stored in a single block in the file, chunked datasets are split into 
   multiple <em>chunks</em> which are all stored separately in the file. The chunks can be 
   stored in any order and any position within the HDF5 file. Chunks can then be read 
   and written individually, improving performance when operating on a subset of the 
-  dataset. 
-  <p>
-  The API functions used to read and write chunked datasets are exactly the same 
+  dataset. </p>
+  
+  <p>The API functions used to read and write chunked datasets are exactly the same 
   functions used to read and write contiguous datasets. The only difference is a 
   single call to set up the layout on a property list before the dataset is created. 
   In this way, a program can switch between using chunked and contiguous datasets by 
   simply altering that call. Example 1, below, creates a dataset with a size of 12x12 
-  and a chunk size of 4x4. The example could be change to create a contiguous dataset 
-  instead by simply commenting out the call to <code>H5Pset_chunk</code>.
+  and a chunk size of 4x4. The example could be changed to create a contiguous dataset 
+  instead by simply commenting out the call to <code>H5Pset_chunk</code>.</p>
 
   <dir><pre>
   <example>
 #include <hdf5.h>
 int main(void) {
-	hid_t		file_id, dset_id, space_id, dcpl_id;
-	hsize_t	chunk_dims[2] = {4, 4};
-	hsize_t	dset_dims[2] = {12, 12};
-	int		buffer[12][12];
-
-	/* Create the file */
-	file_id = H5Fcreate(<em>file.h5</em>, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-	/* Create a dataset creation property list and set it to use chunking
-	 */
-	dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
-	H5Pset_chunk(dcpl_id, 2, chunk_dims);
-
-	/* Create the dataspace and the chunked dataset */
-	space_id = H5Screate_simple(2, dset_dims, NULL);
-	dset_id = H5Dcreate(file, <em>dataset</em>, H5T_NATIVE_INT, space_id, dcpl_id, 
-H5P_DEFAULT);
-
-	/* Write to the dataset */
-	buffer = <initialize buffer>
-	H5Dwrite(dset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer);
-
-	/* Close */
-	H5Dclose(dset_id);
-	H5Sclose(space_id);
-	H5Pclose(dcpl_id);
-	H5Fclose(file_id);
-	return 0;
+    hid_t   file_id, dset_id, space_id, dcpl_id;
+    hsize_t chunk_dims[2] = {4, 4};
+    hsize_t dset_dims[2] = {12, 12};
+    int     buffer[12][12];
+
+    /* Create the file */
+    file_id = H5Fcreate(<em>file.h5</em>, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+    /* Create a dataset creation property list and set it to use chunking
+     */
+    dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
+    H5Pset_chunk(dcpl_id, 2, chunk_dims);
+
+    /* Create the dataspace and the chunked dataset */
+    pace_id = H5Screate_simple(2, dset_dims, NULL);
+    dset_id = H5Dcreate(file, <em>dataset</em>, H5T_NATIVE_INT, space_id, dcpl_id, 
+                        H5P_DEFAULT);
+
+    /* Write to the dataset */
+    buffer = <initialize buffer>
+    H5Dwrite(dset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer);
+
+    /* Close */
+    H5Dclose(dset_id);
+    H5Sclose(space_id);
+    H5Pclose(dcpl_id);
+    H5Fclose(file_id);
+    return 0;
 }
   </example>
   </pre>
@@ -108,14 +108,14 @@ H5P_DEFAULT);
   </example caption>
   </dir>
 
-  <p>
-  The chunks of a chunked dataset are split along logical boundaries in the dataset's 
+  
+  <p>The chunks of a chunked dataset are split along logical boundaries in the dataset's 
   representation as an array, not along boundaries in the serialized form. Suppose a 
   dataset has a chunk size of 2x2. In this case, the first chunk would go from (0,0) 
   to (2,2), the second from (0,2) to (2,4), and so on. By selecting the chunk size 
   carefully, it is possible to fine tune I/O to maximize performance for any access 
   pattern. Chunking is also required to use advanced features such as compression and 
-  dataset resizing.
+  dataset resizing.</p>
 
     <div align="center">
 
@@ -137,13 +137,13 @@ H5P_DEFAULT);
 
 <h2>Data Storage Order</h2>
 
-  To understand the effects of chunking on I/O performance it is necessary to 
+  <p>To understand the effects of chunking on I/O performance it is necessary to 
   understand the order in which data is actually stored on disk.  When using the C 
   interface, data elements are stored in "row-major" order, meaning that, for a 2-
   dimensional dataset, rows of data are stored in-order on the disk. This is 
-  equivalent to the storage order of C arrays in memory.
-  <p>
-  Suppose we have a 10x10 contiguous dataset B. The first element stored on disk is 
+  equivalent to the storage order of C arrays in memory.</p>
+  
+  <p>Suppose we have a 10x10 contiguous dataset B. The first element stored on disk is 
   B[0][0], the second B[0][1], the eleventh B[1][0], and so on. If we want to read 
   the elements from B[2][3] to B[2][7], we have to read the elements in the 24th, 
   25th, 26th, 27th, and 28th positions. Since all of these positions are contiguous, or 
@@ -159,7 +159,7 @@ H5P_DEFAULT);
   elements starting at the 33rd position. This is called a <em>sieve buffer</em> and is 
   supported by HDF5 for contiguous datasets, but not for chunked datasets. By setting 
   the chunk sizes correctly, it is possible to greatly exceed the performance of the 
-  sieve buffer scheme.
+  sieve buffer scheme.</p>
 
     <div align="center">
 
@@ -172,7 +172,7 @@ H5P_DEFAULT);
             partial column of a contiguous dataset">
             </td></td>
         <tr><td align="left" valign="top">
-            <b>Figure 3:</b> Reading part of a row from a cantiguous dataset
+            <b>Figure 3:</b> Reading part of a row from a contiguous dataset
             </td><td> </td><td>
             <b>Figure 4:</b> Reading part of a column from a contiguous dataset
             </td></tr>
@@ -180,15 +180,15 @@ H5P_DEFAULT);
 
     </div>
 
-  <p>
-  Likewise, in higher dimensions, the last dimension specified is the fastest 
+  
+  <p>Likewise, in higher dimensions, the last dimension specified is the fastest 
   changing on disk. So if we have a four dimensional dataset A, then the first 
   element on disk would be A[0][0][0][0], the second A[0][0][0][1], the third 
-  A[0][0][0][2], and so on.
+  A[0][0][0][2], and so on.</p>
 
 <h2>Chunking and Partial I/O</h2>
 
-  The issues outlined above regarding data storage order help to illustrate one of 
+  <p>The issues outlined above regarding data storage order help to illustrate one of 
   the major benefits of dataset chunking, its ability to improve the performance of 
   partial I/O. Partial I/O is an I/O operation (read or write) which operates on only 
   one part of the dataset. To maximize the performance of partial I/O, the data 
@@ -200,9 +200,9 @@ H5P_DEFAULT);
   selected. With a 3-d dataset, this means that the selection must be as wide and as 
   deep as the entire dataset, unless only a single row is selected, in which case it 
   must still be as deep as the entire dataset, unless only a single column is also 
-  selected.
-  <p>
-  Chunking allows the user to modify the conditions for maximum performance by 
+  selected.</p>
+  
+  <p>Chunking allows the user to modify the conditions for maximum performance by 
   changing the regions in the dataset which are contiguous. For example, reading a 
   20x20 selection in a contiguous dataset with a width greater than 20 would require 
   20 separate and non-contiguous read operations. If the same operation were 
@@ -211,14 +211,14 @@ H5P_DEFAULT);
   always the same size (or multiples of the same size), and start at multiples of 
   that size, then the chunk size should be set to the selection size, or an integer 
   divisor of it. This recommendation is subject to the guidelines in the <em>pitfalls</em> 
-  section; specifically, it should not be too small or too large.
-  <p>
-  Using this strategy, we can greatly improve the performance of the operation shown 
+  section; specifically, it should not be too small or too large.</p>
+  
+  <p>Using this strategy, we can greatly improve the performance of the operation shown 
   in figure 4. If we create the dataset with a chunk size of 10x1, each column of the 
   dataset will be stored separately and contiguously. The read of a partial column 
   can then be done is a single operation. This is illustrated in figure 5, and the 
   code to implement a similar operation is shown in example 2. For simplicity, 
-  example 2 implements writing to this dataset instead of reading from it.
+  example 2 implements writing to this dataset instead of reading from it.</p>
 
     <div align="center">
 
@@ -238,44 +238,44 @@ H5P_DEFAULT);
 <example>
 #include <hdf5.h>
 int main(void) {
-	hid_t		file_id, dset_id, fspace_id, mspace_id, dcpl_id;
-	hsize_t	chunk_dims[2] = {10, 1};
-	hsize_t	dset_dims[2] = {10, 10};
-	hsize_t	mem_dims[1] = {5};
-	hsize_t	start[2] = {3, 2};
-	hsize_t	count[2] = {5, 1};
-	int		buffer[5];
-
-	/* Create the file */
-	file_id = H5Fcreate(<em>file.h5</em>, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-	/* Create a dataset creation property list and set it to use chunking
-	 * with a chunk size of 10x1 */
-	dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
-	H5Pset_chunk(dcpl_id, 2, chunk_dims);
-
-	/* Create the dataspace and the chunked dataset */
-	space_id = H5Screate_simple(2, dset_dims, NULL);
-	dset_id = H5Dcreate(file, <em>dataset</em>, H5T_NATIVE_INT, space_id, dcpl_id, 
-H5P_DEFAULT);
-
-	/* Select the elements from 3, 2 to 7, 2 */
-	H5Sselect_hyperslab(fspace_id, H5S_SELECT_SET, start, NULL, count, NULL);
-
-	/* Create the memory dataspace */
-	mspace_id = H5Screate_simple(1, mem_dims, NULL);
-
-	/* Write to the dataset */
-	buffer = <initialize buffer>
-	H5Dwrite(dset_id, H5T_NATIVE_INT, mspace_id, fpsace_id, H5P_DEFAULT, buffer);
-
-	/* Close */
-	H5Dclose(dset_id);
-	H5Sclose(fspace_id);
-	H5Sclose(mspace_id);
-	H5Pclose(dcpl_id);
-	H5Fclose(file_id);
-	return 0;
+    hid_t   file_id, dset_id, fspace_id, mspace_id, dcpl_id;
+    hsize_t chunk_dims[2] = {10, 1};
+    hsize_t dset_dims[2] = {10, 10};
+    hsize_t mem_dims[1] = {5};
+    hsize_t start[2] = {3, 2};
+    hsize_t count[2] = {5, 1};
+    int     buffer[5];
+
+    /* Create the file */
+    file_id = H5Fcreate(<em>file.h5</em>, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+    /* Create a dataset creation property list and set it to use chunking
+     * with a chunk size of 10x1 */
+    dcpl_id = H5Pcreate(H5P_DATASET_CREATE);
+    H5Pset_chunk(dcpl_id, 2, chunk_dims);
+
+    /* Create the dataspace and the chunked dataset */
+    space_id = H5Screate_simple(2, dset_dims, NULL);
+    dset_id = H5Dcreate(file, <em>dataset</em>, H5T_NATIVE_INT, space_id, dcpl_id, 
+                        H5P_DEFAULT);
+
+    /* Select the elements from 3, 2 to 7, 2 */
+    H5Sselect_hyperslab(fspace_id, H5S_SELECT_SET, start, NULL, count, NULL);
+
+    /* Create the memory dataspace */
+    mspace_id = H5Screate_simple(1, mem_dims, NULL);
+
+    /* Write to the dataset */
+    buffer = <initialize buffer>
+    H5Dwrite(dset_id, H5T_NATIVE_INT, mspace_id, fpsace_id, H5P_DEFAULT, buffer);
+
+    /* Close */
+    H5Dclose(dset_id);
+    H5Sclose(fspace_id);
+    H5Sclose(mspace_id);
+    H5Pclose(dcpl_id);
+    H5Fclose(file_id);
+    return 0;
 }
 </example>
 </pre>
@@ -286,7 +286,7 @@ Example 2: Writing part of a column to a chunked dataset
 
 <h2>Chunk Caching</h2>
 
-  Another major feature of the dataset chunking scheme is the chunk cache.  As it 
+  <p>Another major feature of the dataset chunking scheme is the chunk cache.  As it 
   sounds, this is a cache of the chunks in the dataset. This cache can greatly 
   improve performance whenever the same chunks are read from or written to multiple 
   times, by preventing the library from having to read from and write to disk 
@@ -294,21 +294,21 @@ Example 2: Writing part of a column to a chunked dataset
   adjust its parameters automatically, and therefore the parameters must be adjusted 
   manually to achieve optimal performance. In some rare cases it may be best to 
   completely disable the chunk caching scheme. Each open dataset has its own chunk 
-  cache, which is separate from the caches for all other open datasets.
-  <p>
-  When a selection is read from a chunked dataset, the chunks containing the 
+  cache, which is separate from the caches for all other open datasets.</p>
+  
+  <p>When a selection is read from a chunked dataset, the chunks containing the 
   selection are first read into the cache, and then the selected parts of those 
   chunks are copied into the user's buffer. The cached chunks stay in the cache until 
   they are evicted, which typically occurs because more space is needed in the cache 
   for new chunks, but they can also be evicted if hash values collide (more on this 
   later). Once the chunk is evicted it is written to disk if necessary and freed from 
-  memory.
-  <p>
-  This process is illustrated in figures 6 and 7. In figure 6, the application 
+  memory.</p>
+  
+  <p>This process is illustrated in figures 6 and 7. In figure 6, the application 
   requests a row of values, and the library responds by bringing the chunks 
   containing that row into cache, and retrieving the values from cache. In figure 7, 
   the application requests a different row that is covered by the same chunks, and 
-  the library retrieves the values directly from cache without touching the disk.
+  the library retrieves the values directly from cache without touching the disk.</p>
 
     <div align="center">
 
@@ -342,8 +342,7 @@ Example 2: Writing part of a column to a chunked dataset
 
     </div>
 
-  <p>
-  In order to allow the chunks to be looked up quickly in cache, each chunk is 
+  <p>In order to allow the chunks to be looked up quickly in cache, each chunk is 
   assigned a unique hash value that is used to look up the chunk. The cache contains 
   a simple array of pointers to chunks, which is called a hash table. A chunk's hash 
   value is simply the index into the hash table of the pointer to that chunk. While 
@@ -356,9 +355,9 @@ Example 2: Writing part of a column to a chunked dataset
   same hash value is already in cache, the second chunk must be evicted first. 
   Therefore it is very important to make sure that the size of the hash table, also 
   called the nslots parameter in <code>H5Pset_cache</code> and <code>H5Pset_chunk_cache</code>, is large enough 
-  to minimize the number of hash value collisions.
-  <p>
-  To determine the hash value for a chunk, the chunk is first assigned a unique index 
+  to minimize the number of hash value collisions.</p>
+  
+  <p>To determine the hash value for a chunk, the chunk is first assigned a unique index 
   that is the linear index into a hypothetical array of the chunks. That is, the 
   upper-left chunk has an index of 0, the one to the right of that has an index of 1, 
   and so on. This index is then divided by the size of the hash table, nslots, and 
@@ -368,61 +367,75 @@ Example 2: Writing part of a column to a chunked dataset
   probably be set to a number approximately 100 times the number of chunks that can 
   fit in nbytes bytes, unless memory is extremely limited. There is of course no 
   advantage in setting nslots to a number larger than the total number of chunks in 
-  the dataset.
-  <p>
-  The w0 parameter affects how the library decides which chunk to evict when it needs 
+  the dataset.</p>
+  
+  <p>The w0 parameter affects how the library decides which chunk to evict when it needs 
   room in the cache. If w0 is set to 0, then the library will always evict the least 
   recently used chunk in cache. If w0 is set to 1, the library will always evict the 
   least recently used chunk which has been fully read or written, and if none have 
   been fully read or written, it will evict the least recently used chunk. If w0 is 
-  between 0 and 1, the behaviour will be a blend of the two. Therefore, if the 
+  between 0 and 1, the behavior will be a blend of the two. Therefore, if the 
   application will access the same data more than once, w0 should be set closer to 0, 
-  and if the application does not, w0 should be set closer to 1.
-  <p>
-  It is important to remember that chunk caching will only give a benefit when 
+  and if the application does not, w0 should be set closer to 1.</p>
+  
+  <p>It is important to remember that chunk caching will only give a benefit when 
   reading or writing the same chunk more than once. If, for example, an application 
   is reading an entire dataset, with only whole chunks selected for each operation, 
   then chunk caching will not help performance, and it may be preferable to 
   completely disable the chunk cache in order to save memory. It may also be 
   advantageous to disable the chunk cache when writing small amounts to many 
   different chunks, if memory is not large enough to hold all those chunks in cache 
-  at once.
+  at once.</p>
 
 <h2>I/O Filters and Compression</h2>
 
-  Dataset chunking also enables the use of I/O filters, including compression.  The 
+  <p>Dataset chunking also enables the use of I/O filters, including compression.  The 
   filters are applied to each chunk individually, and the entire chunk is processed 
   at once. The filter must be applied every time the chunk is loaded into cache, and 
   every time the chunk is flushed to disk. These facts all make choosing the proper 
   settings for the chunk cache and chunk size even more critical for the performance 
-  of filtered datasets.
-  <p>
-  Because the entire chunk must be filtered every time disk I/O occurs, it is no 
+  of filtered datasets.</p>
+  
+  <p>Because the entire chunk must be filtered every time disk I/O occurs, it is no 
   longer a viable option to disable the chunk cache when writing small amounts of 
   data to many different chunks. To achieve acceptable performance, it is critical to 
   minimize the chance that a chunk will be flushed from cache before it is completely 
   read or written. This can be done by increasing the size of the chunk cache, 
-  adjusting the size of the chunks, or adjusting I/O patterns.
+  adjusting the size of the chunks, or adjusting I/O patterns.</p>
+
+<h2>Chunk Maximum Limits</h2>
+  <p>Chunks have some maximum limits. They are:</p>
+  <ul>
+    <li>The maximum number of elements in a chunk is 2<sup>32</sup>-1 
+    which is equal to 4,294,967,295.</li>
+    <li>The maximum size for any chunk is 4GB.</li>
+    <li>The size of a chunk cannot exceed the size of a fixed-size 
+    dataset. For example, a dataset consisting of a 5x4 fixed-size 
+    array cannot be defined with 10x10 chunks.</li>
+    </ul>
+
+  <p>For more information, see the entry for 
+  <a href="../../RM/RM_H5P.html#Property-SetChunk">
+  <code>H5Pset_chunk</code></a> in the <cite>HDF5 Reference Manual</cite>.</p>
 
 <h2>Pitfalls</h2>
 
-  Inappropriate chunk size and cache settings can dramatically reduce performance. 
-  There are a number of ways this can happen. Some of the more common issues include:
+  <p>Inappropriate chunk size and cache settings can dramatically reduce 
+  performance. There are a number of ways this can happen. Some of the 
+  more common issues include:</p>
 
   <ul>
       <li>Chunks are too small
-          <p>
-          There is a certain amount of overhead associated with finding chunks. When chunks 
+          <p>There is a certain amount of overhead associated with finding chunks. When chunks 
           are made smaller, there are more of them in the dataset. When performing I/O on a 
           dataset, if there are many chunks in the selection, it will take extra time to look 
           up each chunk. In addition, since the chunks are stored independently, more chunks 
           results in more I/O operations, further compounding the issue. The extra metadata 
           needed to locate the chunks also causes the file size to increase as chunks are 
           made smaller. Making chunks larger results in fewer chunk lookups, smaller file 
-          size, and fewer I/O operations in most cases.
+          size, and fewer I/O operations in most cases.</p></li>
       <li>Chunks are too large
-          <p>
-          It may be tempting to simply set the chunk size to be the same as the dataset size 
+          <p>It may be tempting to simply set the chunk size to be the same as the dataset size 
           in order to enable compression on a <em>contiguous</em> dataset. However, this can have 
           unintended consequences. Because the entire chunk must be read from disk and 
           decompressed before performing any operations, this will impose a great performance 
@@ -430,22 +443,21 @@ Example 2: Writing part of a column to a chunked dataset
           enough to hold the one-chunk dataset. In addition, if the dataset is large enough, 
           since the entire chunk must be held in memory while compressing and decompressing, 
           the operation could cause the operating system to page memory to disk, slowing down 
-          the entire system.
+          the entire system.</p></li>
       <li>Cache is not big enough
-          <p>
-          Similarly, if the chunk cache is not set to a large enough size for the chunk size 
+          <p>Similarly, if the chunk cache is not set to a large enough size for the chunk size 
           and access pattern, poor performance will result. In general, the chunk cache 
           should be large enough to fit all of the chunks that contain part of a hyperslab 
           selection used to read or write. When the chunk cache is not large enough, all of 
-          the chunks in the selection will be read into cache and then written to disk (if 
-          writing) and evicted. If the application then revisits the same chunks, they will 
+          the chunks in the selection will be read into cache, written to disk (if 
+          writing), and evicted. If the application then revisits the same chunks, they will 
           have to be read and possibly written again, whereas if the cache were large enough 
           they would only have to be read (and possibly written) once. However, if selections 
           for I/O always coincide with chunk boundaries, this does not matter as much, as 
           there is no wasted I/O and the application is unlikely to revisit the same chunks 
-          soon after.
-          <p>
-          If the total size of the chunks involved in a selection is too big to practically 
+          soon after.</p>
+          
+          <p>If the total size of the chunks involved in a selection is too big to practically 
           fit into memory, and neither the chunk nor the selection can be resized or 
           reshaped, it may be better to disable the chunk cache. Whether this is better 
           depends on the storage order of the selected elements. It will also make little 
@@ -459,10 +471,9 @@ Example 2: Writing part of a column to a chunked dataset
           direct I/O will involve a large number of small operations, and it will probably be 
           more efficient to just operate on the entire chunk, therefore the cache should be 
           set large enough to hold at least 1 chunk. To disable the chunk cache, either 
-          nbytes or nslots should be set to 0.
+          nbytes or nslots should be set to 0.</p></li>
       <li>Improper hash table size
-          <p>
-          Because only one chunk can be present in each slot of the hash table, it is 
+          <p>Because only one chunk can be present in each slot of the hash table, it is 
           possible for an improperly set hash table size (nslots) to severely impact 
           performance. For example, if there are 100 columns of chunks in a dataset, and the 
           hash table size is set to 100, then all the chunks in each row will have the same 
@@ -470,13 +481,13 @@ Example 2: Writing part of a column to a chunked dataset
           brought into cache and then evicted to allow the next one to occupy its slot in the 
           hash table, even if the chunk cache is large enough, in terms of nbytes, to hold 
           all of them. Similar situations can arise when nslots is a factor or multiple of 
-          the number of rows of chunks, or equivalent situations in higher dimensions.
-          <p>
-          Luckily, because each slot in the hash table only occupies the size of the pointer 
+          the number of rows of chunks, or equivalent situations in higher dimensions.</p>
+          
+          <p>Luckily, because each slot in the hash table only occupies the size of the pointer 
           for the system, usually 4 or 8 bytes, there is little reason to keep nslots small. 
           Again, a general rule is that nslots should be set to a prime number at least 100 
           times the number of chunks that can fit in nbytes, or simply set to the number of 
-          chunks in the dataset.
+          chunks in the dataset.</p></li>
   </ul>
 
 <h2>Additional Resources</h2>
@@ -484,51 +495,49 @@ Example 2: Writing part of a column to a chunked dataset
 <!--
 ---------1---------2---------3---------4---------5---------6---------7---------8
 -->
-    The slide set “<a href="Chunking_Tutorial_EOS13_2009.pdf">HDF5 
+    <p>The slide set “<a href="Chunking_Tutorial_EOS13_2009.pdf">HDF5 
     Advanced Topics: Chunking in HDF5</a>” (PDF), a tutorial from 
     HDF and HDF-EOS Workshop XIII (2009) provides additional HDF5 chunking 
-    use cases and examples.
-
-    <p>
-    The page 
+    use cases and examples.</p>
+    
+    <p>The page 
     “<a href="http://www.hdfgroup.org/HDF5/examples/index.html">HDF5 
     Examples</a>” lists many code examples that are regularly 
     tested with the HDF5 Library.  Several illustrate the use of chunking 
     in HDF5, particularly “Read/Write Chunked Dataset” and 
-    any examples demonstrating filters. 
-
-    <p>
-    “<a href="../../H5.user/Chunking.html">Dataset Chunking Issues</a>”
+    any examples demonstrating filters.</p> 
+    
+    <p>“<a href="../../H5.user/Chunking.html">Dataset Chunking Issues</a>”
     provides additional information regarding chunking that has not yet been
-    incorporated into this document.  
+    incorporated into this document.</p>
 
 
 <h2>Directions for Future Development</h2>
 
-  As seen above, the HDF5 chunk cache currently requires careful control of the 
+  <p>As seen above, the HDF5 chunk cache currently requires careful control of the 
   parameters in order to achieve optimal performance. In the future, we plan to 
   improve the chunk cache to be more foolproof in many ways, and deliver acceptable 
-  performance in most cases even when no thought is given to the chunking parameters.
-  <p>
-  One way to make the chunk cache more user-friendly is to automatically resize the 
+  performance in most cases even when no thought is given to the chunking parameters.</p>
+  
+  <p>One way to make the chunk cache more user-friendly is to automatically resize the 
   chunk cache as needed for each operation. The cache should be able to detect when 
   the cache should be skipped or when it needs to be enlarged based on the pattern of 
   I/O operations. At a minimum, it should be able to detect when the cache would 
   severely hurt performance for a single operation and disable the cache for that 
-  operation. This would of course be optional.
-  <p>
-  Another way is to allow chaining of entries in the hash table. This would make the 
-  hash table size much less of an issue, as chunks could shared the same hash value 
-  by making a linked list.
-  <p>
-  Finally, it may even be desirable to set some reasonable default chunk size based 
+  operation. This would of course be optional.</p>
+  
+  <p>Another way is to allow chaining of entries in the hash table. This would make the 
+  hash table size much less of an issue, as chunks could share the same hash value 
+  by making a linked list.</p>
+  
+  <p>Finally, it may even be desirable to set some reasonable default chunk size based 
   on the dataset size and possibly some other information on the intended access 
-  pattern. This would probably be a high-level routine.
-  <p>
-  Other features planned for chunking include new index methods (besides b-trees), 
+  pattern. This would probably be a high-level routine.</p>
+  
+  <p>Other features planned for chunking include new index methods (besides b-trees), 
   disabling filters for chunks that are partially over the edge of a dataset, only 
   storing the used portions of these edge chunks, and allowing multiple reader 
-  processes to read the same dataset as a single writer process writes to it.
+  processes to read the same dataset as a single writer process writes to it.</p>
 
 <hr /><br />
 <p>Return to the <a href="../../Advanced.html">"Advanced Topics"</a> page.</p>
@@ -539,7 +548,7 @@ Example 2: Writing part of a column to a chunked dataset
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 5 October 2010");
+document.writeln("Last modified: 16 September 2015");
 -->
 </SCRIPT>
  
diff --git a/html/Advanced/DynamicallyLoadedFilters/index.html b/html/Advanced/DynamicallyLoadedFilters/index.html
new file mode 100644
index 0000000..dad6e83
--- /dev/null
+++ b/html/Advanced/DynamicallyLoadedFilters/index.html
@@ -0,0 +1,94 @@
+<html>
+<head>
+<title> UTF-8 in HDF5</title>
+</head>
+
+<body>
+
+
+<!--
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+  * Copyright by The HDF Group.                                               *
+  * Copyright by the Board of Trustees of the University of Illinois.         *
+  * All rights reserved.                                                      *
+  *                                                                           *
+  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+  * terms governing use, modification, and redistribution, is contained in    *
+  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+  * of the source code distribution tree; Copyright.html can be found at the  *
+  * root level of an installed copy of the electronic HDF5 document set and   *
+  * is linked from the top-level documents page.  It can also be found at     *
+  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+  * access to either file, you may request a copy from help at hdfgroup.org.     *
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ -->
+
+
+<br />
+<p>
+Return to “<a href="../../Advanced.html">Advanced Topics</a>.”</p>
+<hr />
+
+
+
+<h1>Dynamic Plugins in HDF5
+<br />
+<font size="4">Including Dynamically Loaded Filters</font>
+</h1>
+
+    <dir>
+    HDF5 provides the capability to employ dynamic plugins.
+    The first application of dynamic plugins was dynamically loaded filters.
+    <p />
+    The deployment of dynamic plugins can be managed in the following ways:
+    <ul>
+        <li>Through the setting of an environment variable 
+        <li>Programmatically from within an application 
+    </ul>
+    
+    
+    <p /> 
+    <h3>Documentation</h3>
+    <p />
+    Guides to the design and use of dynamic plugins and
+    dynamically loaded filters in HDF5:
+    <p />
+    <dir>
+    “<a href="HDF5DynamicallyLoadedFilters.pdf">HDF5
+    Dynamically Loaded Filters</a>”
+    <p />
+    “<a 
+    href="Design-HDF5-Programmatic_Control_of_Dynamic_Plugins.pdf">Programmatic
+    Control of Dynamic Plugins</a>” 
+    </dir>
+    <p />
+    HDF5 functions for programmatic control of dynamic plugins and
+    dynamically loaded filters from within an HDF5 application:
+    <dir>
+    <a href="../../RM/RM_H5PL.html#Plugin-SetLoadingState"><code>H5PLset_loading_state</code></a>
+    <p />
+
+    <a href="../../RM/RM_H5PL.html#Plugin-GetLoadingState"><code>H5PLget_loading_state</code></a>
+    </dir>
+    <p />
+    </dir>
+
+
+<hr /><br />
+<p>
+Return to “<a href="../../Advanced.html">Advanced Topics</a>.”</p>
+<br />
+
+
+<hr>
+
+<?php include("../../ed_libs/Footer-THGonly3.htm"); ?>
+
+<SCRIPT LANGUAGE="JAVASCRIPT">
+<!--
+document.writeln("Last modified: 28 August 2015");
+-->
+</SCRIPT>
+ 
+</body>
+</html>
diff --git a/html/Advanced/HDF5_Metadata/index.html b/html/Advanced/HDF5_Metadata/index.html
index 4c1c9a4..38dc43f 100644
--- a/html/Advanced/HDF5_Metadata/index.html
+++ b/html/Advanced/HDF5_Metadata/index.html
@@ -437,11 +437,11 @@ Return to “<a href="../../Advanced.html">Advanced Topics</a>.”</p>
     Both static and dynamic user properties associated with the following 
     classes of objects are discussed in specific chapters of the
     <!-- BEGIN FOR ELECTRONIC -->
-    <a href="../../UG/index.html"><cite>HDF5 User’s Guide</cite></a>:
+    <a href="../../UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 User’s Guide</cite></a>:
     <!-- END FOR ELECTRONIC -->
     <!-- BEGIN FOR PRINT --
     <cite>HDF5 User’s Guide</cite>
-    (<code>http://www.hdfgroup.org/HDF5/doc/UG/index.html</code>):
+    (<code>http://www.hdfgroup.org/HDF5/doc/UG/HDF5_Users_Guide-Responsive HTML5/index.html</code>):
     <!-- END FOR PRINT -->
     <div align=left>
     <table>
@@ -454,17 +454,17 @@ Return to “<a href="../../Advanced.html">Advanced Topics</a>.”</p>
         <td> </td>
         <td>File properties</td>
         
-        <td>“<a href="../../UG/UG_frame08TheFile.html">The HDF5 File</a>”</td>
+        <td>“<a href="../../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FTheFile%2FThe_HDF5_File.htm">The HDF5 File</a>”</td>
         </tr>
       <tr valign="top" align="left">
         <td> </td>
         <td>Group properties</td>
-        <td>“<a href="../../UG/UG_frame09Groups.html">HDF5 Groups</a>”</td>
+        <td>“<a href="../../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FGroups%2FHDF5_Groups.htm">HDF5 Groups</a>”</td>
         </tr>
       <tr valign="top" align="left">
         <td> </td>
         <td>Dataset properties<code>  </code></td>
-        <td>“<a href="../../UG/UG_frame10Datasets.html">HDF5 Datasets</a>”</td>
+        <td>“<a href="../../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatasets%2FHDF5_Datasets.htm">HDF5 Datasets</a>”</td>
         </tr>
     </table>
     </div>
@@ -483,9 +483,9 @@ Return to “<a href="../../Advanced.html">Advanced Topics</a>.”</p>
     HDF5 attributes, which offer nearly infinite flexibility for 
     dynamic user metadata, are discussed in:
     <ul>
-        <li>The “<a href="../../UG/UG_frame13Attributes.html">HDF5 
+        <li>The “<a href="../../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FAttributes%2FHDF5_Attributes.htm">HDF5 
             Attributes</a>” chapter of the 
-            <a href="../../UG/UG_front.html"><cite>HDF5 User’s 
+            <a href="../../UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 User’s 
             Guide</cite></a>
         <li>The “<a href="../../RM/RM_H5A.html">H5A: Attribute 
             Interface</a>” section in the 
@@ -551,7 +551,7 @@ Return to “<a href="../../Advanced.html">Advanced Topics</a>.”</p>
     <ul>
         <li><a href="../../H5.format.html"><cite>HDF5 
             File Format Specification</cite></a>
-        <li><a href="../../UG/index.html"><cite>HDF5 
+        <li><a href="../../UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 
             User’s Guide</cite></a>
         <li><a href="../../RM/RM_H5Front.html"><cite>HDF5 
             Reference Manual</cite></a>
diff --git a/html/Glossary.html b/html/Glossary.html
index 7a91fdf..c82a22c 100644
--- a/html/Glossary.html
+++ b/html/Glossary.html
@@ -35,7 +35,7 @@ HDF5 Glossary and Terms
     -->
 </td>
 <td valign=top align=right>
-    <a href="UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
@@ -541,7 +541,7 @@ HDF5 Glossary and Terms
     -->
 </td>
 <td valign=top align=right>
-    <a href="UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
diff --git a/html/H5.format.html b/html/H5.format.html
index f5f7691..22b8e6a 100644
--- a/html/H5.format.html
+++ b/html/H5.format.html
@@ -1,34 +1,163 @@
+<!DOCTYPE HTML>
 <html>
   <head>
     <title>
       HDF5 File Format Specification Version 2.0
     </title>
 
-<STYLE TYPE="text/css">
-
-P { text-indent: 2em}
-P.item { margin-left: 2em; text-indent: -2em}
-P.item2 { margin-left: 2em; text-indent: 2em}
-
-TABLE.format { border:solid; border-collapse:collapse; caption-side:top; text-align:center; width:80%;}
-TABLE.format TH { border:ridge; padding:4px; width:25%;}
-TABLE.format TD { border:ridge; padding:4px; }
-TABLE.format CAPTION { font-weight:bold; font-size:larger;}
-
-TABLE.note {border:none; text-align:right; width:80%;}
-
-TABLE.desc { border:solid; border-collapse:collapse; caption-size:top; text-align:left; width:80%;}
-TABLE.desc TR { vertical-align:top;}
-TABLE.desc TH { border-style:ridge; font-size:larger; padding:4px; text-decoration:underline;}
-TABLE.desc TD { border-style:ridge; padding:4px; }
-TABLE.desc CAPTION { font-weight:bold; font-size:larger;}
-
-TABLE.list { border:none; }
-TABLE.list TR { vertical-align:top;}
-TABLE.list TH { border:none; text-decoration:underline;}
-TABLE.list TD { border:none; }
-
-</STYLE>
+<style>
+h1 {    display: block;
+        margin-top: 24px;
+        margin-bottom: 24px;
+        margin-left: 0px;
+        margin-right: 0px;
+        text-indent: 0px;
+        }
+
+h2 {    display: block;
+        margin-top: 8x;
+        margin-bottom: 8px;
+        margin-left: 0px;
+        margin-right: 0px;
+        text-indent: 0px;
+        }
+<!-- A horizontal rule (<hr />) should be placed on the line above 
+each h2 tag. The h2 tags are used on the main sections along with 
+the hr tags. -->
+
+h3 {    display: block;
+        margin-top: 8px;
+        margin-bottom: 8px;
+        margin-left: 0px;
+        margin-right: 0px;
+        text-indent: 0px;
+        }
+
+h4 {    display: block;
+        margin-top: 8px;
+        margin-bottom: 8px;
+        margin-left: 0px;
+        margin-right: 0px;
+        text-indent: 0px;
+        }
+
+p { display: block;
+    margin-top: 8px;
+    margin-bottom: 8px;
+    margin-left: 0px;
+    margin-right: 0px;
+    text-indent: 0px;
+    }
+<!-- 
+p.item {    margin-left: 2em; 
+            text-indent: -2em 
+            } -->
+<!-- p.item2 { margin-left: 2em; text-indent: 2em} -->
+
+table.format {  border:solid; 
+                border-collapse:collapse; 
+                caption-side:top; 
+                text-align:center; 
+                width:80%; 
+                }
+table.format th {   border:ridge; 
+                    padding:4px; 
+                    width:25%;
+                    }
+table.format td {   border:ridge; 
+                    padding:4px; 
+                    }
+table.format caption {  font-weight:bold; 
+                        font-size:larger;
+                        }
+
+table.note {border:none; 
+            text-align:right; 
+            width:80%; 
+            }
+
+table.desc {    border:solid; 
+                border-collapse:collapse; 
+                caption-size:top; 
+                text-align:left; 
+                width:80%; 
+                }
+table.desc tr { vertical-align:top;
+                }
+table.desc th { border-style:ridge; 
+                font-size:larger; 
+                padding:4px;
+                <!-- text-decoration:underline; -->
+                }
+table.desc td { border-style:ridge; 
+                <!-- padding: 4px; -->
+                vertical-align:text-top; 
+                }
+table.desc caption {    font-weight:bold; 
+                        font-size:larger;
+                        }
+
+table.list {    border:none; 
+                width:100% 
+                }
+table.list tr { vertical-align:text-top; 
+                }
+table.list th { border:none; 
+                text-decoration:underline; 
+                vertical-align:text-top; 
+                }
+table.list td { border:none; 
+                vertical-align:text-top; 
+                }
+
+table.msgdesc    {  border:none; 
+                    text-align:left;
+                    width: 80% 
+                    }
+table.msgdesc tr {  vertical-align:text-top; 
+                    border-spacing:0; 
+                    padding:0; }
+table.msgdesc th {  border:none; 
+                    text-decoration:underline; 
+                    vertical-align:text-top; }
+table.msgdesc td {  border:none; 
+                    vertical-align:text-top; 
+                    }
+
+table.list80 {  border:none; 
+                width:80% 
+                }
+table.list80 tr {   vertical-align:text-top; 
+                    }
+table.list80 th {   border:none; 
+                    text-decoration:underline; 
+                    vertical-align:text-top; 
+                    } 
+table.list80 td {   border:none; 
+                    vertical-align:text-top; 
+                    }
+
+table.glossary    { border:none; 
+                    text-align:left;
+                    width: 80% 
+                    }
+table.glossary tr { vertical-align:text-top; 
+                    border-spacing:0; 
+                    padding:0; }
+table.glossary th { border:none; 
+                    text-align:left;
+                    text-decoration:underline; 
+                    vertical-align:text-top; }
+table.glossary td { border:none; 
+                    text-align:left;
+                    vertical-align:text-top; 
+                    }
+
+div {   page-break-inside:avoid; 
+        page-break-after:auto 
+        }
+
+</style>
        
 <!-- #BeginLibraryItem "/ed_libs/styles_Format.lbi" -->
 <!--
@@ -48,71 +177,88 @@ TABLE.list TD { border:none; }
   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  -->
 <!-- #EndLibraryItem --><!-- #BeginLibraryItem "/ed_libs/NavBar_ADevG.lbi" -->
-<hr>
+</head>
+<body>
+<hr />
 <center>
-<table border=0 width=98%>
-<tr><td valign=top align=left>
-    <a href="index.html">HDF5 documents and links</a> <br>
-    <a href="H5.intro.html">Introduction to HDF5</a> <br>
+<table border="0" width="98%">
+<tr><td valign="top" align="left">
+    <a href="index.html">HDF5 documents and links</a> <br />
+    <a href="H5.intro.html">Introduction to HDF5</a> <br />
     <!--
-    <a href="Glossary.html">Glossary</a><br>
+    <a href="Glossary.html">Glossary</a><br />
     -->
 </td>
-<td valign=top align=right>
-    <a href="UG/index.html">HDF5 User's Guide</a> <br>
-    <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
-    <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
+<td valign="top" align="right">
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br />
+    <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br />
+    <a href="ADGuide.html">HDF5 Application Developer’s Guide</a> <br />
 </td></tr>
 </table>
 </center>
-<hr>
-<!-- #EndLibraryItem --><center><h1>HDF5 File Format Specification Version 2.0</h1></center>
+<hr />
+<!-- #EndLibraryItem -->
+
+<center>
+<h1>HDF5 File Format Specification Version 2.0</h1>
+</center>
 
     <center>
-    <table border=0 width=90%>
+    <table border="0" width="90%">
     <tr>
-    <td valign=top>
-    <ol type=I>
-      <li><a href="#Intro">Introduction</a>
-      <li><a href="#FileMetaData">Disk Format Level 0 - File Metadata</a>
-        <font size=-2>
-	<ol type=A>
-	  <li><a href="#Superblock">Disk Format Level 0A - Format Signature and Superblock</a>
-	  <li><a href="#DriverInfo">Disk Format Level 0B - File Driver Info</a>
-	  <li><a href="#SuperblockExt">Disk Format Level 0C - Superblock Extension</a>
+    <td valign="top">
+    <ol type="I">
+      <li><a href="#Intro">Introduction</a></li>
+        <font size="-1">
+        <ol type="A">
+            <li><a href="#ThisDocument">This Document</a></li>
+            <li><a href="#ChangesForHdf5_1_10">Changes for HDF5 1.10</a></li>
+        </ol>
+        </font>
+      
+      <li><a href="#FileMetaData">Disk Format: Level 0 - File Metadata</a></li>
+        <font size="-1">
+	<ol type="A">
+	  <li><a href="#Superblock">Disk Format: Level 0A - Format Signature and Superblock</a></li>
+	  <li><a href="#DriverInfo">Disk Format: Level 0B - File Driver Info</a></li>
+	  <li><a href="#SuperblockExt">Disk Format: Level 0C - Superblock Extension</a></li>
 	</ol>
         </font>
-      <li><a href="#FileInfra">Disk Format Level 1 - File Infrastructure</a>
-        <font size=-2>
-	<ol type=A>
-	  <li><a href="#Btrees">Disk Format Level 1A - B-Trees</a>
-	    <ol type=1>
-              <li><a href="#V1Btrees">Version 1 B-Trees (B-link trees)</a>
-              <li><a href="#V2Btrees">Version 2 B-Trees</a>
+      <li><a href="#FileInfra">Disk Format: Level 1 - File Infrastructure</a></li>
+        <font size="-1">
+	<ol type="A">
+	  <li><a href="#Btrees">Disk Format: Level 1A - B-trees and B-tree 
+        Nodes</a></li>
+	    <ol type="1">
+              <li><a href="#V1Btrees">Disk Format: Level 1A1 - Version 1 
+                B-trees (B-link Trees)</a></li>
+              <li><a href="#V2Btrees">Disk Format: Level 1A2 - Version 2 
+                B-trees</a></li>
             </ol>
-	  <li><a href="#SymbolTable">Disk Format Level 1B - Group Symbol Table</a>
-	  <li><a href="#SymbolTableEntry">Disk Format Level 1C - Group Symbol Table Entry</a>
-	  <li><a href="#LocalHeap">Disk Format Level 1D - Local Heaps</a>
-	  <li><a href="#GlobalHeap">Disk Format Level 1E - Global Heap</a>
-	  <li><a href="#FractalHeap">Disk Format Level 1F - Fractal Heap</a>
-	  <li><a href="#FreeSpaceManager">Disk Format Level 1G - Free-Space Manager</a>
-	  <li><a href="#SOHMTable">Disk Format Level 1H - Shared Object Header Message Table</a>
+	  <li><a href="#SymbolTable">Disk Format: Level 1B - Group Symbol Table Nodes</a></li>
+	  <li><a href="#SymbolTableEntry">Disk Format: Level 1C - Symbol Table Entry</a></li>
+	  <li><a href="#LocalHeap">Disk Format: Level 1D - Local Heaps</a></li>
+	  <li><a href="#GlobalHeap">Disk Format: Level 1E - Global Heap</a></li>
+	  <li><a href="#FractalHeap">Disk Format: Level 1F - Fractal Heap</a></li>
+	  <li><a href="#FreeSpaceManager">Disk Format: Level 1G - Free-space Manager</a></li>
+	  <li><a href="#SOHMTable">Disk Format: Level 1H - Shared Object Header Message Table</a></li>
 	</ol>
         </font>
-      <li><a href="#DataObject">Disk Format Level 2 - Data Objects</a>
-        <font size=-2>
-	<ol type=A>
-	  <li><a href="#ObjectHeader">Disk Format Level 2A - Data Object Headers</a>
-            <ol type=1>
-              <li><a href="#ObjectHeaderPrefix">Disk Format Level 2A1 - Data Object Header Prefix</a>
-                <ol type=a>
-                  <li><a href="#V1ObjectHeaderPrefix">Version 1 Data Object Header Prefix</a>
-                  <li><a href="#V2ObjectHeaderPrefix">Version 2 Data Object Header Prefix</a>
+      <li><a href="#DataObject">Disk Format: Level 2 - Data Objects</a></li>
+        <font size="-1">
+	<ol type="A">
+	  <li><a href="#ObjectHeader">Disk Format: Level 2A - Data Object Headers</a></li>
+            <ol type="1">
+              <li><a href="#ObjectHeaderPrefix">Disk Format: Level 2A1 - Data Object Header Prefix</a></li>
+                <ol type="a">
+                  <li><a href="#V1ObjectHeaderPrefix">Version 1 Data Object Header Prefix</a></li>
+                  <li><a href="#V2ObjectHeaderPrefix">Version 2 Data Object Header Prefix</a></li>
                 </ol>
-              <li><a href="#ObjectHeaderMessages">Disk Format Level 2A2 - Data Object Header Messages</a>
-                <ol type=a>
-                  <li><a href="#NILMessage">NIL</a>                                                       <!-- 0x0000 -->
-                  <li><a href="#DataspaceMessage">Dataspace</a>                                           <!-- 0x0001 -->
+              <li><a href="#ObjectHeaderMessages">Disk Format: Level 2A2 - Data Object Header Messages</a></li>
+                <ol type="a">
+                  <li><a href="#NILMessage">The NIL Message</a></li>                                                       <!-- 0x0000 -->
+                  <li><a href="#DataspaceMessage">The Dataspace Message</a></li>                                           <!-- 0x0001 -->
+                  <li><a href="#LinkInfoMessage">The Link Info Message</a></li>                                     	  <!-- 0x0002 -->
                 </ol>
             </ol>
         </ol>
@@ -122,69 +268,91 @@ TABLE.list TD { border:none; }
     
     <td> </td>
 
-    <td valign=top>
-    <ol type=I start=4>
-      <li><a href="#DataObject">Disk Format Level 2 - Data Objects</a> 
-        <font size=-2><i>(Continued)</i>
-	<ol type=A>
-	  <li><a href="#ObjectHeader">Disk Format Level 2A - Data Object Headers</a><i>(Continued)</i>
-	    <ol type=1 start=2>
-              <li><a href="#ObjectHeaderMessages">Disk Format Level 2A2 - Data Object Header Messages</a><i>(Continued)</i>
-                <ol type=a start=3>
-                  <li><a href="#LinkInfoMessage">Link Info</a>                                     	  <!-- 0x0002 -->
-                  <li><a href="#DatatypeMessage">Datatype</a>                                             <!-- 0x0003 -->
-                  <li><a href="#OldFillValueMessage">Data Storage - Fill Value (Old)</a>                  <!-- 0x0004 -->
-                  <li><a href="#FillValueMessage">Data Storage - Fill Value</a>                           <!-- 0x0005 -->
-                  <li><a href="#LinkMessage">Link Message</a>                                             <!-- 0x0006 -->
-                  <li><a href="#ExternalFileListMessage">Data Storage - External Data Files</a>           <!-- 0x0007 -->
-                  <li><a href="#LayoutMessage">Data Storage - Layout</a>                                  <!-- 0x0008 -->
-                  <li><a href="#BogusMessage">Bogus</a>                                                   <!-- 0x0009 -->
-                  <li><a href="#GroupInfoMessage">Group Info</a>                                          <!-- 0x000a -->
-                  <li><a href="#FilterMessage">Data Storage - Filter Pipeline</a>                	  <!-- 0x000b -->
-                  <li><a href="#AttributeMessage">Attribute</a>                                           <!-- 0x000c -->
-                  <li><a href="#CommentMessage">Object Comment</a>                                        <!-- 0x000d -->
-                  <li><a href="#OldModificationTimeMessage">Object Modification Time (Old)</a>            <!-- 0x000e -->
-                  <li><a href="#SOHMTableMessage">Shared Message Table</a>                                <!-- 0x000f -->
-                  <li><a href="#ContinuationMessage">Object Header Continuation</a>                       <!-- 0x0010 -->
-                  <li><a href="#SymbolTableMessage">Symbol Table</a>                                      <!-- 0x0011 -->
-                  <li><a href="#ModificationTimeMessage">Object Modification Time</a>                     <!-- 0x0012 -->
-                  <li><a href="#BtreeKValuesMessage">B-tree 'K' Values</a>                    	          <!-- 0x0013 -->
-                  <li><a href="#DrvInfoMessage">Driver Info</a>                    		          <!-- 0x0014 -->
-                  <li><a href="#AinfoMessage">Attribute Info</a>                    		          <!-- 0x0015 -->
-                  <li><a href="#RefCountMessage">Object Reference Count</a>                    		  <!-- 0x0016 -->
+    <td valign="top">
+    <ol type="I" start="4">
+      <li><a href="#DataObject">Disk Format: Level 2 - Data 
+        Objects</a><font size="-1"><i> (Continued)</i></li>
+	<ol type="A">
+	  <li><a href="#ObjectHeader">Disk Format: Level 2A - Data Object 
+        Headers</a><i> (Continued)</i></li>
+	    <ol type="1" start="2">
+              <li><a href="#ObjectHeaderMessages">Disk Format: Level 2A2 - 
+                Data Object Header Messages</a><i> (Continued)</i></li>
+                <ol type="a" start="4">
+                  <li><a href="#DatatypeMessage">The Datatype Message</a></li>                                             <!-- 0x0003 -->
+                  <li><a href="#OldFillValueMessage">The Data Storage - 
+                    Fill Value (Old) Message</a></li>                  <!-- 0x0004 -->
+                  <li><a href="#FillValueMessage">The Data Storage - 
+                    Fill Value Message</a></li>                           <!-- 0x0005 -->
+                  <li><a href="#LinkMessage">The Link Message</a></li>                                             <!-- 0x0006 -->
+                  <li><a href="#ExternalFileListMessage">The Data Storage - 
+                    External Data Files Message</a></li>           <!-- 0x0007 -->
+                  <li><a href="#LayoutMessage">The Data Storage - 
+                    Layout Message</a></li>                                  <!-- 0x0008 -->
+                  <li><a href="#BogusMessage">The Bogus Message</a></li>                                                   <!-- 0x0009 -->
+                  <li><a href="#GroupInfoMessage">The Group Info 
+                    Message</a></li>                                          <!-- 0x000a -->
+                  <li><a href="#FilterMessage">The Data Storage - 
+                    Filter Pipeline Message</a></li>                         <!-- 0x000b -->
+                  <li><a href="#AttributeMessage">The Attribute 
+                    Message</a></li>                                           <!-- 0x000c -->
+                  <li><a href="#CommentMessage">The Object Comment 
+                    Message</a></li>                                        <!-- 0x000d -->
+                  <li><a href="#OldModificationTimeMessage">The Object 
+                    Modification Time (Old) Message</a></li>            <!-- 0x000e -->
+                  <li><a href="#SOHMTableMessage">The Shared Message 
+                    Table Message</a></li>                                <!-- 0x000f -->
+                  <li><a href="#ContinuationMessage">The Object Header 
+                    Continuation Message</a></li>                       <!-- 0x0010 -->
+                  <li><a href="#SymbolTableMessage">The Symbol 
+                    Table Message</a></li>                                      <!-- 0x0011 -->
+                  <li><a href="#ModificationTimeMessage">The Object 
+                    Modification Time Message</a></li>                     <!-- 0x0012 -->
+                  <li><a href="#BtreeKValuesMessage">The B-tree 
+                    ‘K’ Values Message</a></li>                    	          <!-- 0x0013 -->
+                  <li><a href="#DrvInfoMessage">The Driver Info 
+                    Message</a></li>                                          <!-- 0x0014 -->
+                  <li><a href="#AinfoMessage">The Attribute Info 
+                    Message</a></li>                                         <!-- 0x0015 -->
+                  <li><a href="#RefCountMessage">The Object Reference 
+                    Count Message</a></li>                              <!-- 0x0016 -->
+                  <li><a href="#FsinfoMessage">The File Space Info 
+                    Message</a></li>                                      <!-- 0x0018 -->
                 </ol>
 	    </ol>
-	  <li><a href="#DataStorage">Disk Format: Level 2B - Data Object Data Storage</a>
+	  <li><a href="#DataStorage">Disk Format: Level 2B - Data Object Data Storage</a></li>
 	</ol>
         </font>
-      <li><a href="#Appendix">Appendix</a>
+      <li><a href="#AppendixA">Appendix A: Definitions</a></li>
+      <li><a href="#AppendixB">Appendix B: File Memory Allocation Types</a></li>
     </ol>
 </td></tr>
 </table>
 </center>
 
-    <BR>
-    <HR>
 
 
-    <a name="Intro"><h2>Introduction</h2></a>
+<br />
+<br />
+<hr />
+<a name="Intro"><h2>I. Introduction</h2></a>
 
-    <table align=right width=100>
-    <tr><td> </td><td align=center>
-        <hr>
-        <img src="FF-IH_FileGroup.gif" alt="HDF5 Groups" hspace=15 vspace=15>
+    <table align="right" width="100">
+    <tr><td> </td><td align="center">
+        <hr />
+        <img src="FF-IH_FileGroup.gif" alt="HDF5 Groups" hspace="15" vspace="15">
     </td><td> </td></tr>
-    <tr><td> </td><td align=center>
+    <tr><td> </td><td align="center">
         <strong>Figure 1:</strong> Relationships among the HDF5 root group, other groups, and objects
-        <hr>
+        <hr />
     </td><td> </td></tr>
 
-    <tr><td> </td><td align=center>
-        <img src="FF-IH_FileObject.gif" alt="HDF5 Objects" hspace=15 vspace=15>
+    <tr><td> </td><td align="center">
+        <img src="FF-IH_FileObject.gif" alt="HDF5 Objects" hspace="15" vspace="15">
     </td><td> </td></tr>
-    <tr><td> </td><td align=center>
+    <tr><td> </td><td align="center">
         <strong>Figure 2:</strong> HDF5 objects -- datasets, datatypes, or dataspaces
-        <hr>
+        <hr />
     </td><td> </td></tr>
     </table>
 
@@ -193,46 +361,47 @@ TABLE.list TD { border:none; }
       key ideas of the HDF4 and AIO file formats as well as
       addressing some shortcomings therein.  The new format is
       more self-describing than the HDF4 format and is more
-      uniformly applied to data objects in the file.
+      uniformly applied to data objects in the file.</p>
       
     <p>An HDF5 file appears to the user as a directed graph.  
       The nodes of this graph are the higher-level HDF5 objects
-      that are exposed by the HDF5 APIs:
+      that are exposed by the HDF5 APIs:</p>
 
       <ul>
-         <li>Groups
-         <li>Datasets
-         <li>Named datatypes
+         <li>Groups</li>
+         <li>Datasets</li>
+         <li>Committed (formerly Named) datatypes</li>
       </ul>
 
     <p>At the lowest level, as information is actually written to the disk, 
-       an HDF5 file is made up of the following objects:
+       an HDF5 file is made up of the following objects:</p>
       <ul>
-         <li>A superblock
-         <li>B-tree nodes
-         <li>Heap blocks
-         <li>Object headers
-         <li>Object data
-         <li>Free space
+         <li>A superblock</li>
+         <li>B-tree nodes</li>
+         <li>Heap blocks</li>
+         <li>Object headers</li>
+         <li>Object data</li>
+         <li>Free space</li>
       </ul>
 
-    <p>The HDF5 library uses these low-level objects to represent the
+    <p>The HDF5 Library uses these low-level objects to represent the
       higher-level objects that are then presented to the user or 
-      to applications through the APIs.
-      For instance, a group is an object header that contains a message that
-      points to a local heap (for storing the links to objects in the group)
-      and to a B-tree (which indexes the links).
-      A dataset is an object header that contains messages that describe
-      datatype, dataspace, layout, filters, external files, fill value, etc
-      with the layout message pointing to either a raw data chunk or to a
-      B-tree that points to raw data chunks.
+      to applications through the APIs. For instance, a group is an 
+      object header that contains a message that points to a local 
+      heap (for storing the links to objects in the group) and to a 
+      B-tree (which indexes the links). A dataset is an object header 
+      that contains messages that describe datatype, dataspace, layout, 
+      filters, external files, fill value, and other elements with the 
+      layout message pointing to either a raw data chunk or to a 
+      B-tree that points to raw data chunks.</p>
 
 
-    <h3>This Document</h3>
+<br />
+<a name="ThisDocument"><h3>I.A. This Document</h3></a>
 
     <p>This document describes the lower-level data objects;
       the higher-level objects and their properties are described 
-      in the <a href="UG/index.html"><cite>HDF5 User's Guide</cite></a>.
+      in the <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 User’s Guide</cite></a>.</p>
 
     <p>Three levels of information comprise the file format.  
       Level 0 contains basic information for identifying and
@@ -241,7 +410,7 @@ TABLE.list TD { border:none; }
       in the file (such as a B-trees and heaps).  Level 2 is the rest 
       of the file and contains all of the data objects, with each object
       partitioned into header information, also known as 
-      <em>metadata</em>, and data.
+      <em>metadata</em>, and data.</p>
 
     <p>The sizes of various fields in the following layout tables are
       determined by looking at the number of columns the field spans
@@ -249,9 +418,9 @@ TABLE.list TD { border:none; }
       overridden by specifying a size in parentheses, (2) the size of
       addresses is determined by the <em>Size of Offsets</em> field
       in the superblock and is indicated in this document with a
-      superscripted 'O', and (3) the size of length fields is determined
+      superscripted ‘O’, and (3) the size of length fields is determined
       by the <em>Size of Lengths</em> field in the superblock and is
-      indicated in this document with a superscripted 'L'.
+      indicated in this document with a superscripted ‘L’.</p>
 
     <p>Values for all fields in this document should be treated as unsigned
       integers, unless otherwise noted in the description of a field.
@@ -260,53 +429,68 @@ TABLE.list TD { border:none; }
     </p>
     
     <p>All checksums used in the format are computed with the
-      <a href="http://www.burtleburtle.net/bob/hash/doobs.html">Jenkins'
+      <a href="http://www.burtleburtle.net/bob/hash/doobs.html">Jenkins’
       lookup3</a> algorithm.
     </p>
 
-    <p>Various tables in this document aligned with "This space inserted
-        only to align table nicely".  These entries in the table are just
+    <p>Whenever a bit flag or field is mentioned for an entry, bits are
+      numbered from the lowest bit position in the entry.
+    </p>
+
+    <p>Various tables in this document aligned with “This space inserted
+        only to align table nicely”.  These entries in the table are just
         to make the table presentation nicer and do not represent any values
         or padding in the file.
     </p>
 
-    <BR>
-    <HR>
 
-    <h2><a name="FileMetaData">
-	Disk Format: Level 0 - File Metadata</a></h2>
+<br />
+<a name="ChangesForHdf5_1_10"><h3>I.B. Changes for HDF5 1.10</h3></a>
+
+    <p>As of October 2015, changes in the file format for HDF5 1.10 
+    have not yet been finalized.</p>
 
-    <h3><A name="Superblock">
-	Disk Format: Level 0A - Format Signature and Superblock</a></h3>
+
+
+<br />
+<br />
+<hr />
+<h2><a name="FileMetaData">
+II. Disk Format: Level 0 - File Metadata</a></h2>
+
+<br />
+<h3><a name="Superblock">
+II.A. Disk Format: Level 0A - Format Signature and Superblock</a></h3>
 
     <p>The superblock may begin at certain predefined offsets within
       the HDF5 file, allowing a block of unspecified content for
       users to place additional information at the beginning (and
-      end) of the HDF5 file without limiting the HDF5 library's
+      end) of the HDF5 file without limiting the HDF5 Library’s
       ability to manage the objects within the file itself.  This
       feature was designed to accommodate wrapping an HDF5 file in
       another file format or adding descriptive information to an HDF5
-      file without requiring the modification of the actual file's
+      file without requiring the modification of the actual file’s
       information.  The superblock is located by searching for the
-      HDF5 format signature at byte offset 0, byte offset 512 and at
+      HDF5 format signature at byte offset 0, byte offset 512, and at
       successive locations in the file, each a multiple of two of
-      the previous location, i.e.  0, 512, 1024, 2048, etc.
+      the previous location; in other words, at these byte offsets: 
+      0, 512, 1024, 2048, and so on.</p>
 
     <p>The superblock is composed of the format signature, followed by a
       superblock version number and information that is specific to each
       version of the superblock.
       Currently, there are three versions of the superblock format.
       Version 0 is the default format, while version 1 is basically the same
-      as version 0 with additional information when a non-default B-tree 'K'
+      as version 0 with additional information when a non-default B-tree ‘K’
       value is stored.  Version 2 is the latest format, with some fields
       eliminated or compressed and with superblock extension and checksum
-      support.
+      support.</p>
 
-    <p>Version 0 and 1 of the superblock are described below:
+    <p>Version 0 and 1 of the superblock are described below:</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Superblock (Versions 0 and 1)
 	</caption>
@@ -319,12 +503,12 @@ TABLE.list TD { border:none; }
 	</tr>  
 
 	<tr>
-	  <td colspan=4><br>Format Signature (8 bytes)<br><br></td>
+	  <td colspan="4"><br />Format Signature (8 bytes)<br /><br /></td>
 	</tr>
 
 	<tr>
 	  <td>Version # of Superblock</td>
-	  <td>Version # of File Free-space Storage</td>
+	  <td>Version # of File’s Free Space Storage</td>
 	  <td>Version # of Root Group Symbol Table Entry</td>
 	  <td>Reserved (zero)</td>
 	</tr>
@@ -337,78 +521,77 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=2>Group Leaf Node K</td>
-	  <td colspan=2>Group Internal Node K</td>
+	  <td colspan="2">Group Leaf Node K</td>
+	  <td colspan="2">Group Internal Node K</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>File Consistency Flags</td>
+	  <td colspan="4">File Consistency Flags</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2 style="border:dotted;">Indexed Storage Internal Node K<sup>1</sup></td>
-	  <td colspan=2 style="border:dotted;">Reserved (zero)<sup>1</sup></td>
+	  <td colspan="2" style="border:dotted;">Indexed Storage Internal Node K<sup>1</sup></td>
+	  <td colspan="2" style="border:dotted;">Reserved (zero)<sup>1</sup></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Base Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Base Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address of File Free-space Info<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Address of File Free space Info<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>End of File Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />End of File Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Driver Information Block Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Driver Information Block Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Root Group Symbol Table Entry</td>
+	  <td colspan="4">Root Group Symbol Table Entry</td>
 	</tr>
       </table>
 
-      <table class=note>
-        <tr><td>
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
             (Items marked with an ‘O’ in the above table are
-            <br>
-            of the size specified in “Size of Offsets.”)
+	    of the size specified in “Size of Offsets.”)
         </td></tr>
-        <tr><td>
+        <tr>
+        <td> </td>
+        <td>
             (Items marked with a ‘1’ in the above table are
-            <br>
             new in version 1 of the superblock)
         </td></tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Format Signature</td>
-	  <td>
-            <p>This field contains a constant value and can be used to
-	    quickly identify a file as being an HDF5 file.  The
+	  <td><p>Format Signature</p></td>
+	  <td><p>This field contains a constant value and can be used to
+	    quickly identify a file as being an HDF5 file. The
 	    constant value is designed to allow easy identification of
 	    an HDF5 file and to allow certain types of data corruption
 	    to be detected.  The file signature of an HDF5 file always
-	    contains the following values:
-            </p>
-
-            <center>
-	      <table border align=center cellpadding=4>
-		<tr align=center>
-		  <td align=right>Decimal:</td>
-                  <td width="8%">137</td>
+	    contains the following values:</p>
+        <center>
+        <table border align="center" cellpadding="4">
+		<tr align="center">
+		  <td align="right">Decimal:</td>
+          <td width="8%">137</td>
 		  <td width="8%">72</td>
 		  <td width="8%">68</td>
 		  <td width="8%">70</td>
@@ -418,8 +601,8 @@ TABLE.list TD { border:none; }
 		  <td width="8%">10</td>
 		</tr>
 
-		<tr align=center>
-		  <td align=right>Hexadecimal:</td>
+		<tr align="center">
+		  <td align="right">Hexadecimal:</td>
 		  <td>89</td>
 		  <td>48</td>
 		  <td>44</td>
@@ -430,8 +613,8 @@ TABLE.list TD { border:none; }
 		  <td>0a</td>
 		</tr>
 
-		<tr align=center>
-		  <td align=right>ASCII C Notation:</td>
+		<tr align="center">
+		  <td align="right">ASCII C Notation:</td>
 		  <td>\211</td>
 		  <td>H</td>
 		  <td>D</td>
@@ -443,9 +626,7 @@ TABLE.list TD { border:none; }
 		</tr>
 	      </table>
 	    </center>
-	    <br>
-
-	    <p>This signature both identifies the file as an HDF5 file
+        <p>This signature both identifies the file as an HDF5 file
 	    and provides for immediate detection of common
 	    file-transfer problems. The first two bytes distinguish
 	    HDF5 files on systems that expect the first two bytes to
@@ -458,94 +639,86 @@ TABLE.list TD { border:none; }
 	    sequences. The control-Z character stops file display
 	    under MS-DOS. The final line feed checks for the inverse
 	    of the CR-LF translation problem.  (This is a direct
-	    descendent of the <a href="http://www.libpng.org/pub/png/spec/iso/index-object.html#5PNG-file-signature">PNG</a> file
-            signature.)
-            </p>
-
-            <p><EM>This field is present in version 0+ of the superblock.</EM>
-            </p>
-            </td>
-	</tr>
+	    descendent of the 
+        <a href="http://www.libpng.org/pub/png/spec/iso/index-object.html#5PNG-file-signature">PNG</a> file
+        signature.)</p>
+        <p><em>This field is present in version 0+ of the superblock.</em>
+        </p></td>
+        </tr>
 
 	<tr>
-	  <td>Version Number of the Superblock</td>
-	  <td>
-            <p>This value is used to determine the format of the
+	  <td><p>Version Number of the Superblock</p></td>
+	  <td><p>This value is used to determine the format of the
 	    information in the superblock.  When the format of the
 	    information in the superblock is changed, the version number
 	    is incremented to the next integer and can be used to
 	    determine how the information in the superblock is
-	    formatted.
-            </p>
+	    formatted.</p>
 
             <p>Values of 0, 1 and 2 are defined for this field.  (The format
             of version 2 is described below, not here)
             </p>
 
-            <p><EM>This field is present in version 0+ of the superblock.</EM>
+            <p><em>This field is present in version 0+ of the superblock.</em>
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Version Number of the File Free-Space Information</td>
+	  <td><p>Version Number of the File’s Free Space 
+        Information</p></td>
 	  <td>
             <p>This value is used to determine the format of the
-	    information in the file's free-space Information.
+	    file’s free space information.
             </p>
-            <p>The only value currently valid in this field is '0', which
-            indicates that the free space index is formatted as described 
+            <p>The only value currently valid in this field is ‘0’, which
+            indicates that the file’s free space is as described 
             <a href="#FreeSpaceManager">below</a>.
             </p>
 
-            <p><EM>This field is present in version 0 and 1 of the superblock.</EM>
+            <p><em>This field is present in version 0 and 1 of the superblock.</em>
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Version Number of the Root Group Symbol Table Entry</td>
-	  <td>
-            <p>This value is used to determine the format of the
+	  <td><p>Version Number of the Root Group Symbol Table 
+        Entry</p></td>
+	  <td><p>This value is used to determine the format of the
 	    information in the Root Group Symbol Table Entry.  When the
-            format of the information in that field is changed, the
+        format of the information in that field is changed, the
 	    version number is incremented to the next integer and can be
 	    used to determine how the information in the field
-	    is formatted.
-            </p>
-            <p>The only value currently valid in this field is '0', which
-            indicates that the root group symbol table entry is formatted as
-            described <a href="#SymbolTableEntry">below</a>.
-            </p>
-
-            <p><EM>This field is present in version 0 and 1 of the superblock.</EM>
-            </p>
+	    is formatted.</p>
+        <p>The only value currently valid in this field is ‘0’, 
+        which indicates that the root group symbol table entry is 
+        formatted as described <a href="#SymbolTableEntry">below</a>.</p>
+        <p><em>This field is present in version 0 and 1 of the 
+        superblock.</em></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Version Number of the Shared Header Message Format</td>
-	  <td>
-            <p>This value is used to determine the format of the
+	  <td><p>Version Number of the Shared Header Message Format</p></td>
+	  <td><p>This value is used to determine the format of the
 	    information in a shared object header message. Since the format
 	    of the shared header messages differs from the other private
 	    header messages, a version number is used to identify changes
 	    in the format.
             </p>
-            <p>The only value currently valid in this field is '0', which
+            <p>The only value currently valid in this field is ‘0’, which
             indicates that shared header messages are formatted as
             described <a href="#ObjectHeaderMessages">below</a>.
             </p>
 
-            <p><EM>This field is present in version 0 and 1 of the superblock.</EM>
+            <p><em>This field is present in version 0 and 1 of the superblock.</em>
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Size of Offsets</td>
-	  <td>
-            <p>This value contains the number of bytes used to store
+	  <td><p>Size of Offsets</p></td>
+	  <td><p>This value contains the number of bytes used to store
 	    addresses in the file.  The values for the addresses of
 	    objects in the file are offsets relative to a base address,
 	    usually the address of the superblock signature.  This
@@ -553,25 +726,23 @@ TABLE.list TD { border:none; }
 	    without invalidating the internal offset locations.
             </p>
 
-            <p><EM>This field is present in version 0+ of the superblock.</EM>
+            <p><em>This field is present in version 0+ of the superblock.</em>
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Size of Lengths</td>
-	  <td>
-            <p>This value contains the number of bytes used to store
+	  <td><p>Size of Lengths</p></td>
+	  <td><p>This value contains the number of bytes used to store
 	    the size of an object.
             </p>
-
-            <p><EM>This field is present in version 0+ of the superblock.</EM>
+        <p><em>This field is present in version 0+ of the superblock.</em>
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Group Leaf Node K</td>
+	  <td><p>Group Leaf Node K</p></td>
 	  <td>
             <p>Each leaf node of a group B-tree will have at
 	    least this many entries but not more than twice this
@@ -583,13 +754,13 @@ TABLE.list TD { border:none; }
             <p>See the <a href="#Btrees">description</a> of B-trees below.
             </p>
 
-            <p><EM>This field is present in version 0 and 1 of the superblock.</EM>
+            <p><em>This field is present in version 0 and 1 of the superblock.</em>
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Group Internal Node K</td>
+	  <td><p>Group Internal Node K</p></td>
 	  <td>
             <p>Each internal node of a group B-tree will have at
 	    least this many entries but not more than twice this
@@ -601,13 +772,13 @@ TABLE.list TD { border:none; }
             <p>See the <a href="#Btrees">description</a> of B-trees below.
             </p>
 
-            <p><EM>This field is present in version 0 and 1 of the superblock.</EM>
+            <p><em>This field is present in version 0 and 1 of the superblock.</em>
             </p>
           </td>
 	</tr>
 
         <tr>
-          <td>File Consistency Flags</td>
+          <td><p>File Consistency Flags</p></td>
           <td>
             <p>This value contains flags to indicate information
             about the consistency of the information contained
@@ -615,28 +786,28 @@ TABLE.list TD { border:none; }
             defined: 
             <ul>
             <li>Bit 0 set indicates that the file is opened for
-            write-access.
+            write-access.</li>
             <li>Bit 1 set indicates that the file has
             been verified for consistency and is guaranteed to be
-            consistent with the format defined in this document.
-            <li>Bits 2-31 are reserved for future use.
+            consistent with the format defined in this document.</li>
+            <li>Bits 2-31 are reserved for future use.</li>
             </ul>
             Bit 0 should be
             set as the first action when a file is opened for write
             access and should be cleared only as the final action
             when closing a file.  Bit 1 should be cleared during
-            normal access to a file and only set after the file's
+            normal access to a file and only set after the file’s
             consistency is guaranteed by the library or a
             consistency utility.
             </p>
 
-            <p><EM>This field is present in version 0+ of the superblock.</EM>
+            <p><em>This field is present in version 0+ of the superblock.</em>
             </p>
           </td>
         </tr>
 
 	<tr>
-	  <td>Indexed Storage Internal Node K</td>
+	  <td><p>Indexed Storage Internal Node K</p></td>
 	  <td>
             <p>Each internal node of an indexed storage B-tree will have at
 	    least this many entries but not more than twice this
@@ -648,13 +819,13 @@ TABLE.list TD { border:none; }
             <p>See the <a href="#Btrees">description</a> of B-trees below.
             </p>
 
-            <p><EM>This field is present in version 1 of the superblock.</EM>
+            <p><em>This field is present in version 1 of the superblock.</em>
             </p>
           </td>
 	</tr>
 
         <tr>
-          <td>Base Address</td>
+          <td><p>Base Address</p></td>
           <td>
             <p>This is the absolute file address of the first byte of
             the HDF5 data within the file.  The library currently 
@@ -670,27 +841,27 @@ TABLE.list TD { border:none; }
             address.
             </p>
 
-            <p><EM>This field is present in version 0+ of the superblock.</EM>
+            <p><em>This field is present in version 0+ of the superblock.</em>
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Address of Global Free-space Index</td>
+          <td><p>Address of Global Free-space Index</p></td>
           <td>
-            <p>Free-space management is not yet defined in the HDF5
-            file format and is not handled by the library.
+            <p>The file’s free space is not persistent for version 0 and 1 of
+	    the superblock.
             Currently this field always contains the 
             <a href="#UndefinedAddress">undefined address</a>. 
             </p>
 
-            <p><EM>This field is present in version 0 and 1 of the superblock.</EM>
+            <p><em>This field is present in version 0 and 1 of the superblock.</em>
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>End of File Address</td>
+          <td><p>End of File Address</p></td>
           <td>
             <p>This is the absolute file address of the first byte past
             the end of all HDF5 data.  It is used to determine whether a
@@ -699,13 +870,13 @@ TABLE.list TD { border:none; }
             not used.
             </p>
 
-            <p><EM>This field is present in version 0+ of the superblock.</EM>
+            <p><em>This field is present in version 0+ of the superblock.</em>
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Driver Information Block Address</td>
+          <td><p>Driver Information Block Address</p></td>
           <td>
             <p>This is the relative file address of the file driver
             information block which contains driver-specific
@@ -714,31 +885,31 @@ TABLE.list TD { border:none; }
             <a href="#UndefinedAddress">undefined address</a>.
             </p>
 
-            <p><EM>This field is present in version 0 and 1 of the superblock.</EM>
+            <p><em>This field is present in version 0 and 1 of the superblock.</em>
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Root Group Symbol Table Entry</td>
+          <td><p>Root Group Symbol Table Entry</p></td>
           <td>
             <p>This is the <a href="#SymbolTableEntry">symbol table entry</a>
             of the root group, which serves as the entry point into 
             the group graph for the file.
             </p>
 
-            <p><EM>This field is present in version 0 and 1 of the superblock.</EM>
+            <p><em>This field is present in version 0 and 1 of the superblock.</em>
             </p>
           </td>
         </tr>
       </table>
     </div>
 
-    <p>Version 2 of the superblock is described below:
+    <br />
+    <p>Version 2 of the superblock is described below:</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Superblock (Version 2)
 	</caption>
@@ -751,7 +922,7 @@ TABLE.list TD { border:none; }
 	</tr>  
 
 	<tr>
-	  <td colspan=4><br>Format Signature (8 bytes)<br><br></td>
+	  <td colspan="4"><br />Format Signature (8 bytes)<br /><br /></td>
 	</tr>
 
 	<tr>
@@ -762,53 +933,55 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Base Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Base Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Superblock Extension Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Superblock Extension Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>End of File Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />End of File Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Root Group Object Header Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Root Group Object Header Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Superblock Checksum</sup></td>
+	  <td colspan="4">Superblock Checksum</td>
 	</tr>
       </table>
 
-      <table class=note>
-        <tr><td>
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
             (Items marked with an ‘O’ in the above table are
-            <br>
-            of the size specified in “Size of Offsets.”)
+	    of the size specified in “Size of Offsets.”)
         </td></tr>
       </table>
+
     </div>
  
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Format Signature</td>
+	  <td><p>Format Signature</p></td>
 	  <td>
             <p>This field is the same as described for versions 0 and 1 of the
                 superblock.
-            </p>
+            </p></td>
 	</tr>
 
 	<tr>
-	  <td>Version Number of the Superblock</td>
+	  <td><p>Version Number of the Superblock</p></td>
 	  <td>
             <p>This field has a value of 2 and has the same meaning as for
                 versions 0 and 1.
@@ -817,7 +990,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Size of Offsets</td>
+	  <td><p>Size of Offsets</p></td>
 	  <td>
             <p>This field is the same as described for versions 0 and 1 of the
                 superblock.
@@ -826,7 +999,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Size of Lengths</td>
+	  <td><p>Size of Lengths</p></td>
 	  <td>
             <p>This field is the same as described for versions 0 and 1 of the
                 superblock.
@@ -835,9 +1008,9 @@ TABLE.list TD { border:none; }
 	</tr>
 
         <tr>
-          <td>File Consistency Flags</td>
+          <td><p>File Consistency Flags</p></td>
           <td>
-            <p>This field is the same as desribed for versions 0 and 1 except
+            <p>This field is the same as described for versions 0 and 1 except
             that it is smaller (the number of reserved bits has been reduced
             from 30 to 6).
             </p>
@@ -845,7 +1018,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Base Address</td>
+          <td><p>Base Address</p></td>
           <td>
             <p>This field is the same as described for versions 0 and 1 of the
                 superblock.
@@ -854,7 +1027,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Superblock Extension Address</td>
+          <td><p>Superblock Extension Address</p></td>
           <td>
             <p>The field is the address of the object header for the
                 <a href="#SuperblockExt">superblock extension</a>.
@@ -865,7 +1038,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>End of File Address</td>
+          <td><p>End of File Address</p></td>
           <td>
             <p>This field is the same as described for versions 0 and 1 of the
                 superblock.
@@ -874,7 +1047,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Root Group Object Header Address</td>
+          <td><p>Root Group Object Header Address</p></td>
           <td>
             <p>This is the address of 
 		the <a href="#DataObject">root group object header</a>, 
@@ -884,7 +1057,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Superblock Checksum</td>
+          <td><p>Superblock Checksum</p></td>
           <td>
             <p>The checksum for the superblock.
             </p>
@@ -894,17 +1067,17 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <h3><A name="DriverInfo">
-	Disk Format: Level 0B - File Driver Info</a></h3>
+<br />
+<h3><a name="DriverInfo">
+II.B. Disk Format: Level 0B - File Driver Info</a></h3>
 
     <p>The <b>driver information block</b> is an optional region of the
       file which contains information needed by the file driver
-      to reopen a file.  The format is described below:
+      to reopen a file.  The format is described below:</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    
+    <div align="center">
+      <table class="format">
         <caption>
           Driver Information Block
         </caption>
@@ -918,33 +1091,33 @@ TABLE.list TD { border:none; }
  
         <tr>
           <td>Version</td>
-          <td colspan=3>Reserved</td>
+          <td colspan="3">Reserved</td>
         </tr>
 
         <tr>
-          <td colspan=4>Driver Information Size</td>
+          <td colspan="4">Driver Information Size</td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Driver Identification (8 bytes)<br><br></td>
+          <td colspan="4"><br />Driver Identification (8 bytes)<br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br><br>Driver Information (<em>variable size</em>)<br><br><br></td>
+          <td colspan="4"><br /><br />Driver Information (<em>variable size</em>)<br /><br /><br /></td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>The version number of the Driver Information Block.
 	       This document describes version 0.
@@ -953,7 +1126,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Driver Information Size</td>
+          <td><p>Driver Information Size</p></td>
           <td>
             <p>The size in bytes of the <em>Driver Information</em> field.
             </p>
@@ -961,12 +1134,12 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Driver Identification</td>
+          <td><p>Driver Identification</p></td>
           <td>
             <p>This is an eight-byte ASCII string without null
             termination which identifies the driver and/or version number 
             of the Driver Information Block. The predefined driver encoded
-            in this field by the HDF5 library is identified by the
+            in this field by the HDF5 Library is identified by the
             letters <code>NCSA</code> followed by the first four characters of
             the driver name. If the Driver Information block is not
             the original version then the last letter(s) of the
@@ -976,49 +1149,48 @@ TABLE.list TD { border:none; }
             <p>
             Identification for user-defined drivers is also eight-byte long.  
 	    It can be arbitrary but should be unique to avoid 
-            the four character prefix "NCSA".
+            the four character prefix “NCSA”.
             </p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Driver Information</td>
+        <tr valign="top">
+          <td><p>Driver Information</p></td>
           <td>Driver information is stored in a format defined by the
             file driver (see description below).</td>
         </tr>
       </table>
     </div>
 
-    <BR>
+    <br />
     The two drivers encoded in the <em>Driver Identification</em> field are as follows:
     <ul>
     <li>
     Multi driver:
     <p>
-    The identifier for this driver is "NCSAmulti".  
-    This driver provides a mechanism for segregating raw data and different types of meta data 
+    The identifier for this driver is “NCSAmulti”.  
+    This driver provides a mechanism for segregating raw data and different types of metadata 
     into multiple files.
     These files are viewed by the library as a single virtual HDF5 file with a single file address.
     A maximum of 6 files will be created for the following data:
     superblock, B-tree, raw data, global heap, local heap, and object header.  
     More than one type of data can be written to the same file.
-    </p>
+    </p></li>
     <li>
     Family driver
     <p>
-    The identifier for this driver is "NCSAfami" and is encoded in this field for library version 1.8 and after.
+    The identifier for this driver is “NCSAfami” and is encoded in this field for library version 1.8 and after.
     This driver is designed for systems that do not support files larger than 2 gigabytes
     by splitting the HDF5 file address space across several smaller files. 
-    It does nothing to segregate meta data and raw data; 
+    It does nothing to segregate metadata and raw data; 
     they are mixed in the address space just as they would be in a single contiguous file.
-    </p>
+    </p></li>
     </ul>
-    <BR>
-    The format of the <em>Driver Information</em> field for the above two drivers are described below:
-    <BR>
-    <BR>
-    <div align=center>
-      <table class=format>
+    <p>The format of the <em>Driver Information</em> field for the 
+    above two drivers are described below:</p>
+
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Multi Driver Information
 	</caption>
@@ -1045,121 +1217,121 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address of Member File 1<br><br></td>
+	  <td colspan="4"><br />Address of Member File 1<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>End of Address for Member File 1<br><br></td>
+	  <td colspan="4"><br />End of Address for Member File 1<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address of Member File 2<br><br></td>
+	  <td colspan="4"><br />Address of Member File 2<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>End of Address for Member File 2<br><br></td>
+	  <td colspan="4"><br />End of Address for Member File 2<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>... ...<br><br></td>
+	  <td colspan="4"><br />... ...<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address of Member File N<br><br></td>
+	  <td colspan="4"><br />Address of Member File N<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>End of Address for Member File N<br><br></td>
+	  <td colspan="4"><br />End of Address for Member File N<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name of Member File 1 <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Name of Member File 1 <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name of Member File 2 <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Name of Member File 2 <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>... ...<br><br></td>
+	  <td colspan="4"><br />... ...<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name of Member File N <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Name of Member File N <em>(variable size)</em><br /><br /></td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
 	  <th width="30%">Field Name</th>
 	  <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Member Mapping</td>
-	  <td>These fields are integer values from 1 to 6 
+	  <td><p>Member Mapping</p></td>
+	  <td><p>These fields are integer values from 1 to 6 
             indicating how the data can be mapped to or merged with another type of
             data.
-	        <table class=list>
+	        <table class="list">
                     <tr>
-                    <th width="30%">Member Mapping</th>
-                    <th align=left>Description</th>
+                    <th width="20%" align="center">Member Mapping</th>
+                    <th width="80%" align="left">Description</th>
                     </tr>
                     <tr>
-                        <td align=center>1</td>
+                        <td align="center">1</td>
                         <td>The superblock data.</td>
                     </tr>
                     <tr>
-                        <td align=center>2</td>
+                        <td align="center">2</td>
                         <td>The B-tree data.</td>
                     </tr>
                     <tr>
-                        <td align=center>3</td>
+                        <td align="center">3</td>
                         <td>The raw data.</td>
                     </tr>
                     <tr>
-                        <td align=center>4</td>
+                        <td align="center">4</td>
                         <td>The global heap data.</td>
                     </tr>
                     <tr>
-                        <td align=center>5</td>
+                        <td align="center">5</td>
                         <td>The local heap data.</td>
                     </tr>
                     <tr>
-                        <td align=center>6</td>
+                        <td align="center">6</td>
                         <td>The object header data.</td>
                     </tr>
                 </table></p>
-            For example, if the third field has the value 3 and all the rest have the 
+            <p>For example, if the third field has the value 3 and all the rest have the 
             value 1, it means there are two files: one for raw data, and one for superblock,
-            B-tree, global heap, local heap, and object header.
+            B-tree, global heap, local heap, and object header.</p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Reserved</td>
+	  <td><p>Reserved</p></td>
 	  <td><p>These fields are reserved and should always be zero.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Address of Member File N</td>
+	  <td><p>Address of Member File N</p></td>
 	  <td><p>This field Specifies the virtual address at which the member file starts.</p>
 	      <p>N is the number of member files.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>End of Address for Member File N</td>
+	  <td><p>End of Address for Member File N</p></td>
 	  <td><p>This field is the end of the allocated address for the member file.
             </p></td>
 	</tr>
 
 	<tr>
-	  <td>Name of Member File N</td>
+	  <td><p>Name of Member File N</p></td>
 	  <td><p>This field is the null-terminated name of the member file and
 		its length should be multiples of 8 bytes.  
 		Additional bytes will be padded with <em>NULL</em>s. The default naming
@@ -1174,9 +1346,9 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <BR>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Family Driver Information
 	</caption>
@@ -1189,83 +1361,91 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=8><br>Size of member file<br><br></td>
+	  <td colspan="8"><br />Size of Member File<br /><br /></td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
 	  <th width="30%">Field Name</th>
 	  <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Size of member file</td>
+	  <td><p>Size of Member File</p></td>
 	  <td><p>This field is the size of the member file in the family of files.</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <h3><A name="SuperblockExt">
-	Disk Format: Level 0C - Superblock Extension</a></h3>
+<br />
+<h3><a name="SuperblockExt">
+II.C. Disk Format: Level 0C - Superblock Extension</a></h3>
 
     <p>The <em>superblock extension</em> is used to store superblock metadata
-      which is either optional or added after the version of the superblock
+      which is either optional, or added after the version of the superblock
       was defined.  Superblock extensions may only exist when version 2+ of
       superblock is used.  A superblock extension is an object header which may
-      hold the following messages:
+      hold the following messages:</p>
 	<ul>
 	<li>
 	<a href="#SOHMTableMessage">Shared Message Table message</a> containing
         information to locate the master table of shared object header message
-        indices.
+        indices.</li>
 	<li>
-	<a href="#BtreeKValuesMessage">B-tree 'K' Values message</a> containing
-        non-default B-tree 'K' values.
+	<a href="#BtreeKValuesMessage">B-tree ‘K’ Values message</a> containing
+        non-default B-tree ‘K’ values.</li>
 	<li>
 	<a href="#DrvInfoMessage">Driver Info message</a> containing information
         needed by the file driver in order to reopen a file. 
         See also the 
         <a href="#DriverInfo">“Disk Format: Level 0B - File Driver 
-        Info”</a> section above.
+        Info”</a> section above.</li>
+	<li>
+	<a href="#FsinfoMessage">File Space Info message</a> containing
+	information about file space handling in the file.</li>
 	</ul>
 
-    <BR>
-    <HR>
 
-    <h2><a name="FileInfra">
-        Disk Format: Level 1 - File Infrastructure</a></h2>
-    <h3><a name="Btrees">
-        Disk Format: Level 1A - B-Trees and B-Tree Nodes</a></h3>
 
-    <p>B-Trees allow flexible storage for objects which tend to grow
+<br />
+<br />
+<hr />
+<h2><a name="FileInfra">
+III. Disk Format: Level 1 - File Infrastructure</a></h2>
+
+<br />
+<h3><a name="Btrees">
+III.A. Disk Format: Level 1A - B-trees and B-tree Nodes</a></h3>
+
+    <p>B-trees allow flexible storage for objects which tend to grow
       in ways that cause the object to be stored discontiguously.  B-trees
-      are described in various algorithms books including "Introduction to
-      Algorithms" by Thomas H. Cormen, Charles E. Leiserson, and Ronald
+      are described in various algorithms books including “Introduction to
+      Algorithms” by Thomas H. Cormen, Charles E. Leiserson, and Ronald
       L. Rivest.  B-trees are used in several places in the HDF5 file format,
-      when an index is needed for another data structure.
+      when an index is needed for another data structure.</p>
 
     <p>The version 1 B-tree structure described below is the original index
       structure, but are limited by some bugs in our implementation (mainly in
       how they handle deleting records).  The version 1 B-trees are being phased
       out in favor of the version 2 B-trees described below, although both
       types of structures may be found in the same file, depending on
-      application settings when creating the file.
+      application settings when creating the file.</p>
 
-    <h4><a name="V1Btrees">
-        Disk Format: Level 1A1 - Version 1 B-trees</a></h4>
+<br />
+<h4><a name="V1Btrees">
+III.A.1. Disk Format: Level 1A1 - Version 1 B-trees (B-link Trees)</a></h4>
 
     <p>Version 1 B-trees in HDF5 files an implementation of the B-link tree,
       in which the sibling nodes at a particular level in the tree are stored
-      in a doubly-linked list, is described in the "Efficient Locking for
-      Concurrent Operations on B-trees" paper by Phillip Lehman and S. Bing Yao
+      in a doubly-linked list, is described in the “Efficient Locking for
+      Concurrent Operations on B-trees” paper by Phillip Lehman and S. Bing Yao
       as published in the <cite>ACM Transactions on Database Systems</cite>,
-      Vol. 6, No. 4, December 1981.
+      Vol. 6, No. 4, December 1981.</p>
 
     <p>The B-link trees implemented by the file format contain one more
       key than the number of children.  In other words, each child
@@ -1274,11 +1454,10 @@ TABLE.list TD { border:none; }
       the pointers out of leaf nodes point to symbol nodes and 
       raw data chunks.
       Aside from that difference, internal nodes and leaf nodes
-      are identical.
+      are identical.</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           B-link Tree Nodes
         </caption>
@@ -1288,67 +1467,82 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
+        </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
+        </tr>
 
         <tr>
           <td>Node Type</td>
           <td>Node Level</td>
-          <td colspan=2>Entries Used</td>
+          <td colspan="2">Entries Used</td>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Address of Left Sibling<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Left Sibling<sup>O</sup><br /><br /></td>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Address of Right Sibling<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Right Sibling<sup>O</sup><br /><br /></td>
+        </tr>
 
         <tr>
-          <td colspan=4>Key 0 (variable size)</td>
+          <td colspan="4">Key 0 (variable size)</td>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Address of Child 0<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Child 0<sup>O</sup><br /><br /></td>
+        </tr>
 
         <tr>
-          <td colspan=4>Key 1 (variable size)</td>
+          <td colspan="4">Key 1 (variable size)</td>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Address of Child 1<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Child 1<sup>O</sup><br /><br /></td>
+        </tr>
 
         <tr>
-          <td colspan=4>...</td>
+          <td colspan="4">...</td>
+        </tr>
 
         <tr>
-          <td colspan=4>Key 2<em>K</em> (variable size)</td>
+          <td colspan="4">Key 2<em>K</em> (variable size)</td>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Address of Child 2<em>K</em><sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Child 2<em>K</em><sup>O</sup><br /><br /></td>
+        </tr>
 
         <tr>
-          <td colspan=4>Key 2<em>K</em>+1 (variable size)</td>
+          <td colspan="4">Key 2<em>K</em>+1 (variable size)</td>
+        </tr>
       </table>
 
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘O’ the above table are
-            <br>
-            of the size specified in “Size of Offsets.”)
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
         </td></tr>
       </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>TREE</code>" is 
+            <p>The ASCII character string “<code>TREE</code>” is 
             used to indicate the
             beginning of a B-link tree node.  This gives file
             consistency checking utilities a better chance of
@@ -1358,46 +1552,46 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Node Type</td>
+          <td><p>Node Type</p></td>
           <td>
             <p>Each B-link tree points to a particular type of data.
             This field indicates the type of data as well as
             implying the maximum degree <em>K</em> of the tree and
             the size of each Key field.
-            </p>
+            
 
-            <table class=list>
+            <table class="list">
                 <tr>
-                <th width="30%">Node Type</th>
-                <th align=left>Description</th>
+                <th width="20%" align="center">Node Type</th>
+                <th width="80%" align="left">Description</th>
                 </tr>
                 <tr>
-                    <td align=center>0</td>
+                    <td align="center">0</td>
                     <td>This tree points to group nodes.</td>
                 </tr>
                 <tr>
-                    <td align=center>1</td>
+                    <td align="center">1</td>
                     <td>This tree points to raw data chunk nodes.</td>
                 </tr>
-            </table>
+            </table></p>
           </td>
         </tr>
 
         <tr>
-          <td>Node Level</td>
+          <td><p>Node Level</p></td>
           <td>
             <p>The node level indicates the level at which this node
             appears in the tree (leaf nodes are at level zero).  Not
             only does the level indicate whether child pointers
             point to sub-trees or to data, but it can also be used
             to help file consistency checking utilities reconstruct
-            damanged trees.
+            damaged trees.
             </p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Entries Used</td>
+        <tr valign="top">
+          <td><p>Entries Used</p></td>
           <td>
             <p>This determines the number of children to which this
             node points.  All nodes of a particular type of tree
@@ -1411,8 +1605,8 @@ TABLE.list TD { border:none; }
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Address of Left Sibling</td>
+        <tr valign="top">
+          <td><p>Address of Left Sibling</p></td>
           <td>
             <p>This is the relative file address of the left sibling of
             the current node.  If the current
@@ -1422,8 +1616,8 @@ TABLE.list TD { border:none; }
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Address of Right Sibling</td>
+        <tr valign="top">
+          <td><p>Address of Right Sibling</p></td>
           <td>
             <p>This is the relative file address of the right sibling of
             the current node.  If the current
@@ -1433,21 +1627,21 @@ TABLE.list TD { border:none; }
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Keys and Child Pointers</td>
+        <tr valign="top">
+          <td><p>Keys and Child Pointers</p></td>
           <td>
             <p>Each tree has 2<em>K</em>+1 keys with 2<em>K</em>
             child pointers interleaved between the keys.  The number
             of keys and child pointers actually containing valid
-            values is determined by the node's <em>Entries Used</em> field.
+            values is determined by the node’s <em>Entries Used</em> field.
             If that field is <em>N</em> then the B-link tree contains
             <em>N</em> child pointers and <em>N</em>+1 keys.
             </p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Key</td>
+        <tr valign="top">
+          <td><p>Key</p></td>
           <td>
             <p>The format and size of the key values is determined by
             the type of data to which this tree points.  The keys are
@@ -1463,32 +1657,32 @@ TABLE.list TD { border:none; }
             The format of the key depends on the node type.
             For nodes of node type 0 (group nodes), the key is formatted as
             follows:
-            <center>
-            <table class=list>
+            
+            <table class="list">
             <tr>
-              <td width=30%>A single field of <i>Size of Lengths</i> 
+              <td width="20%">A single field of <i>Size of Lengths</i> 
                 bytes:</td>
-              <td>Indicates the byte offset into the local heap 
+              <td width="80%">Indicates the byte offset into the local heap 
                 for the first object name in the subtree which 
                 that key describes.
               </td>
             </tr>
             </table>
-            </center>
             </p>
+            
 
             <p>
             For nodes of node type 1 (chunked raw data nodes), the key is
             formatted as follows:
-            <center>
-            <table class=list>
+            
+            <table class="list">
             <tr>
-              <td width=30%>Bytes 1-4:</td>
-              <td>Size of chunk in bytes.</td>
+              <td width="20%">Bytes 1-4:</td>
+              <td width="80%">Size of chunk in bytes.</td>
             </tr>
             <tr>
               <td>Bytes 4-8:</td>
-              <td>Filter mask, a 32-bit bitfield indicating which 
+              <td>Filter mask, a 32-bit bit field indicating which 
                 filters have been skipped for this chunk.  Each filter
                 has an index number in the pipeline (starting at 0, with
                 the first filter to apply) and if that filter is skipped,
@@ -1499,7 +1693,7 @@ TABLE.list TD { border:none; }
               <td>The offset of the 
                 chunk within the dataset where <i>D</i> is the number 
                 of dimensions of the dataset, and the last value is the
-                offset within the dataset's datatype and should always be
+                offset within the dataset’s datatype and should always be
                 zero.  For example, if 
                 a chunk in a 3-dimensional dataset begins at the
                 position <code>[5,5,5]</code>, there will be three
@@ -1507,13 +1701,13 @@ TABLE.list TD { border:none; }
                 <code>5</code>, followed by a <code>0</code> value.</td>
             </tr>
             </table>
-            </center>
             </p>
+            
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Child Pointer</td>
+        <tr valign="top">
+          <td><p>Child Pointer</p></td>
           <td>
             <p>The tree node contains file addresses of subtrees or
             data depending on the node level.  Nodes at Level 0 point 
@@ -1532,10 +1726,10 @@ TABLE.list TD { border:none; }
     </div>
 
     <p>
-     Conceptually, each B-tree node looks like this:
+     Conceptually, each B-tree node looks like this:</p>
      <center>
      <table>
-       <tr valign=top align=center>
+       <tr valign="top" align="center">
          <td>key[0]</td><td> </td>
          <td>child[0]</td><td> </td>
          <td>key[1]</td><td> </td>
@@ -1549,7 +1743,7 @@ TABLE.list TD { border:none; }
        </tr>
      </table>
      </center>
-     <br>
+     <br />
 
      where child[<i>i</i>] is a pointer to a sub-tree (at a level 
      above Level 0) or to data (at Level 0).  
@@ -1560,48 +1754,48 @@ TABLE.list TD { border:none; }
 
 
     <p>The following question must next be answered: 
-     "Is the value described by key[<i>i</i>] contained in 
-     child[<i>i</i>-1] or in child[<i>i</i>]?"  
+     “Is the value described by key[<i>i</i>] contained in 
+     child[<i>i</i>-1] or in child[<i>i</i>]?”  
      The answer depends on the type of tree. 
      In trees for groups (node type 0) the object described by 
      key[<i>i</i>] is the greatest object contained in 
      child[<i>i</i>-1] while in chunk trees (node type 1) the 
      chunk described by key[<i>i</i>] is the least chunk in 
-     child[<i>i</i>].
+     child[<i>i</i>].</p>
 
     <p>That means that key[0] for group trees is sometimes unused; 
      it points to offset zero in the heap, which is always the 
-     empty string and compares as "less-than" any valid object name.
+     empty string and compares as “less-than” any valid object name.</p>
 
     <p>And key[<i>N</i>] for chunk trees is sometimes unused; 
-     it contains a chunk offset which compares as "greater-than" 
+     it contains a chunk offset which compares as “greater-than” 
      any other chunk offset and has a chunk byte size of zero 
-     to indicate that it is not actually allocated.
+     to indicate that it is not actually allocated.</p>
 
-    <h4><a name="V2Btrees">
-        Disk Format: Level 1A2 - Version 2 B-Trees</a></h4>
+<br />
+<h4><a name="V2Btrees">
+III.A.2. Disk Format: Level 1A2 - Version 2 B-trees</a></h4>
 
-    <p>Version 2 B-trees are "traditional" B-trees, with one major difference.
+    <p>Version 2 B-trees are “traditional” B-trees, with one major difference.
         Instead of just using a simple pointer (or address in the file) to a
         child of an internal node, the pointer to the child node contains two
         additional pieces of information: the number of records in the child
         node itself, and the total number of records in the child node and
-        all its descendents.  Storing this additional information allows fast
-        array-like indexing to locate the n'th record in the B-tree.
+        all its descendants.  Storing this additional information allows fast
+        array-like indexing to locate the n<sup>th</sup> record in the B-tree.</p>
 
     <p>The entry into a version 2 B-tree is a header which contains global
-        information about the structure of the B-tree.  The <EM>root node
-        address</EM>
+        information about the structure of the B-tree.  The <em>root node
+        address</em>
         field in the header points to the B-tree root node, which is either an
-        internal or leaf node, depending on the value in the header's
+        internal or leaf node, depending on the value in the header’s
         <em>depth</em> field.  An internal node consists of records plus
         pointers to further leaf or internal nodes in the tree.  A leaf node
         consists of solely of records.  The format of the records depends on
-        the B-tree type (stored in the header).
+        the B-tree type (stored in the header).</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree Header
         </caption>
@@ -1613,61 +1807,76 @@ TABLE.list TD { border:none; }
           <th>byte</th>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
         <tr>
           <td>Version</td>
           <td>Type</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 	<tr>
-          <td colspan=4>Node Size</td>
+          <td colspan="4">Node Size</td>
 	</tr>
 	<tr>
-          <td colspan=2>Record Size</td>
-          <td colspan=2>Depth</td>
+          <td colspan="2">Record Size</td>
+          <td colspan="2">Depth</td>
 	</tr>
 	<tr>
           <td>Split Percent</td>
           <td>Merge Percent</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 	<tr>
-          <td colspan=4><br>Root Node Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Root Node Address<sup>O</sup><br /><br /></td>
 	</tr>
 	<tr>
-          <td colspan=2>Number of Records in Root Node</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2">Number of Records in Root Node</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 	<tr>
-          <td colspan=4><br>Total Number of Records in B-tree<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Total Number of Records in B-tree<sup>L</sup><br /><br /></td>
 	</tr>
 	<tr>
-          <td colspan=4>Checksum</td>
+          <td colspan="4">Checksum</td>
 	</tr>
       </table>
-    </div>
 
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
+    </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>BTHD</code>" is 
+            <p>The ASCII character string “<code>BTHD</code>” is 
             used to indicate the header of a version 2 B-link tree node.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>The version number for this B-tree header.  This document
                 describes version 0.
@@ -1676,105 +1885,105 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Type</td>
+          <td><p>Type</p></td>
           <td>
             <p>This field indicates the type of B-tree:
-            <table class=list>
+            <table class="list">
                 <tr>
-                <th width="30%">Value</th>
-                <th align=left>Description</th>
+                <th width="20%" align="center">Value</th>
+                <th width="80%" align="left">Description</th>
                 </tr>
                 <tr>
-                    <td align=center>0</td>
-                    <td>A "testing" B-tree, this value should <em>not</em> be
+                    <td align="center">0</td>
+                    <td>A “testing” B-tree, this value should <em>not</em> be
                         used for storing records in actual HDF5 files.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>1</td>
+                    <td align="center">1</td>
                     <td>This B-tree is used for indexing indirectly accessed,
-                        non-filtered 'huge' fractal heap objects.
+                        non-filtered ‘huge’ fractal heap objects.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>2</td>
+                    <td align="center">2</td>
                     <td>This B-tree is used for indexing indirectly accessed,
-                        filtered 'huge' fractal heap objects.
+                        filtered ‘huge’ fractal heap objects.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>3</td>
+                    <td align="center">3</td>
                     <td>This B-tree is used for indexing directly accessed,
-                        non-filtered 'huge' fractal heap objects.
+                        non-filtered ‘huge’ fractal heap objects.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>4</td>
+                    <td align="center">4</td>
                     <td>This B-tree is used for indexing directly accessed,
-                        filtered 'huge' fractal heap objects.
+                        filtered ‘huge’ fractal heap objects.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>5</td>
-                    <td>This B-tree is used for indexing the 'name' field for
+                    <td align="center">5</td>
+                    <td>This B-tree is used for indexing the ‘name’ field for
                         links in indexed groups.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>6</td>
-                    <td>This B-tree is used for indexing the 'creation order'
+                    <td align="center">6</td>
+                    <td>This B-tree is used for indexing the ‘creation order’
                         field for links in indexed groups.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>7</td>
+                    <td align="center">7</td>
                     <td>This B-tree is used for indexing shared object header
                         messages.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>8</td>
-                    <td>This B-tree is used for indexing the 'name' field for
+                    <td align="center">8</td>
+                    <td>This B-tree is used for indexing the ‘name’ field for
                         indexed attributes.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>9</td>
-                    <td>This B-tree is used for indexing the 'creation order'
+                    <td align="center">9</td>
+                    <td>This B-tree is used for indexing the ‘creation order’
                         field for indexed attributes.
                     </td>
                 </tr>
-            </table>
-            <p>The format of records for each type is described below.
+            </table></p>
+            <p>The format of records for each type is described below.</p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Node Size</td>
+        <tr valign="top">
+          <td><p>Node Size</p></td>
           <td>
             <p>This is the size in bytes of all B-tree nodes.
             </p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Record Size</td>
+        <tr valign="top">
+          <td><p>Record Size</p></td>
           <td>
             <p>This field is the size in bytes of the B-tree record.
             </p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Depth</td>
+        <tr valign="top">
+          <td><p>Depth</p></td>
           <td>
             <p>This is the depth of the B-tree.
             </p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Split Percent</td>
+        <tr valign="top">
+          <td><p>Split Percent</p></td>
           <td>
             <p>The percent full that a node needs to increase above before it
                 is split.
@@ -1782,8 +1991,8 @@ TABLE.list TD { border:none; }
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Merge Percent</td>
+        <tr valign="top">
+          <td><p>Merge Percent</p></td>
           <td>
             <p>The percent full that a node needs to be decrease below before it
                 is split.
@@ -1791,8 +2000,8 @@ TABLE.list TD { border:none; }
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Root Node Address</td>
+        <tr valign="top">
+          <td><p>Root Node Address</p></td>
           <td>
             <p>This is the address of the root B-tree node.  A B-tree with
                 no records will have the <a href="#UndefinedAddress">undefined
@@ -1801,24 +2010,24 @@ TABLE.list TD { border:none; }
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Number of Records in Root Node</td>
+        <tr valign="top">
+          <td><p>Number of Records in Root Node</p></td>
           <td>
             <p>This is the number of records in the root node.
             </p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Total Number of Records in B-tree</td>
+        <tr valign="top">
+          <td><p>Total Number of Records in B-tree</p></td>
           <td>
             <p>This is the total number of records in the entire B-tree.
             </p>
           </td>
         </tr>
 
-        <tr valign=top>
-          <td>Checksum</td>
+        <tr valign="top">
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for the B-tree header.
             </p>
@@ -1827,9 +2036,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree Internal Node
         </caption>
@@ -1839,68 +2049,80 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
+        </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
         <tr>
           <td>Version</td>
           <td>Type</td>
-          <td colspan=2>Records 0, 1, 2...N-1 <em>(variable size)</em></td>
-	</tr>
+          <td colspan="2">Records 0, 1, 2...N-1 <em>(variable size)</em></td>
+        </tr>
 	<tr>
-	  <td colspan=4><br>Child Node Pointer 0<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Child Node Pointer 0<sup>O</sup><br /><br /></td>
 	</tr>
-	  <td colspan=4><br>Number of Records N<sub>0</sub> for Child Node 0 <em>(variable size)</em></td>
+    <tr>
+	  <td colspan="4"><br />Number of Records N<sub>0</sub> for Child Node 0 <em>(variable size)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Total Number of Records for Child Node 0 <em>(optional, variable size)</em></td>
+	  <td colspan="4"><br />Total Number of Records for Child Node 0 <em>(optional, variable size)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Child Node Pointer 1<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Child Node Pointer 1<sup>O</sup><br /><br /></td>
 	</tr>
-	  <td colspan=4><br>Number of Records N<sub>1</sub> for Child Node 1 <em>(variable size)</em></td>
+	  <td colspan="4"><br />Number of Records N<sub>1</sub> for Child Node 1 <em>(variable size)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Total Number of Records for Child Node 1 <em>(optional, variable size)</em></td>
+	  <td colspan="4"><br />Total Number of Records for Child Node 1 <em>(optional, variable size)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4>...</td>
+	  <td colspan="4">...</td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Child Node Pointer N<sup>O</sup><br><br></td>
-	</tr>
+	  <td colspan="4"><br />Child Node Pointer N<sup>O</sup><br /><br /></td>
 	</tr>
-	  <td colspan=4><br>Number of Records N<sub>n</sub>for Child Node N <em>(variable size)</em></td>
+	<tr>
+	  <td colspan="4"><br />Number of Records N<sub>n</sub> for Child Node N <em>(variable size)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Total Number of Records for Child Node N <em>(optional, variable size)</em></td>
+	  <td colspan="4"><br />Total Number of Records for Child Node N <em>(optional, variable size)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Checksum</td>
+	  <td colspan="4">Checksum</td>
+    </tr>
+      </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
       </table>
     </div>
 
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>BTIN</code>" is 
+            <p>The ASCII character string “<code>BTIN</code>” is 
             used to indicate the internal node of a B-link tree.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>The version number for this B-tree internal node.  
 	       This document describes version 0.
@@ -1909,7 +2131,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Type</td>
+          <td><p>Type</p></td>
           <td>
             <p>This field is the type of the B-tree node.  It should always
                 be the same as the B-tree type in the header.
@@ -1918,7 +2140,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Records</td>
+          <td><p>Records</p></td>
           <td>
             <p>The size of this field is determined by the number of records
 	       for this node and the record size (from the header).  The format
@@ -1928,7 +2150,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Child Node Pointer</td>
+          <td><p>Child Node Pointer</p></td>
           <td>
             <p>This field is the address of the child node pointed to by the
                 internal node.
@@ -1937,7 +2159,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Number of Records in Child Node</td>
+          <td><p>Number of Records in Child Node</p></td>
           <td>
             <p>This is the number of records in the child node pointed to by
                 the corresponding <em>Node Pointer</em>.
@@ -1947,25 +2169,31 @@ TABLE.list TD { border:none; }
                 child node.
             </p>
             <p>
-                The maximum number of records in a child node is computed in
-                the following way: Subtract the fixed size overhead for the
-                child node
-                (e.g. it's signature, version, checksum, etc. and <em>one</em>
-                pointer triplet of information for the child node (because there
-                is one more pointer triplet than records in each internal node))
-                from the size of nodes for the B-tree and dividing that result
-                by the size of a record plus the pointer triplet of information
-                stored to reach each child node from this node.
+                The maximum number of records in a child node is computed 
+                in the following way: 
+                
+                <ul>
+                <li>Subtract the fixed size overhead for 
+                the child node (for example, its signature, version, 
+                checksum, and so on and <em>one</em> pointer triplet 
+                of information for the child node (because there is one 
+                more pointer triplet than records in each internal node)) 
+                from the size of nodes for the B-tree. </li>
+                <li>Divide that result by the size of a record plus the 
+                pointer triplet of information stored to reach each 
+                child node from this node.
+                </ul>
+                
             </p>
             <p>
-                Note that leaf nodes don't encode any
+                Note that leaf nodes do not encode any
                 child pointer triplets, so the maximum number of records in a
                 leaf node is just the node size minus the leaf node overhead,
                 divided by the record size.
             </p>
             <p>
                 Also note that the first level of internal nodes above the
-                leaf nodes don't encode the <em>Total Number of Records in Child
+                leaf nodes do not encode the <em>Total Number of Records in Child
                 Node</em> value in the child pointer triplets (since it is the
                 same as the <em>Number of Records in Child Node</em>), so the
                 maximum number of records in these nodes is computed with the
@@ -1980,32 +2208,34 @@ TABLE.list TD { border:none; }
                 in the B-tree.
             </p>
             <p>
-                For example, if the maximum number of child records is 123, one
-                byte will be used to encode these values in this node, if the
-                maximum number of child records is
+                For example, if the maximum number of child records is 
+                123, one byte will be used to encode these values in this 
+                node; if the maximum number of child records is 
                 20000, two bytes will be used to encode these values in this
-                node, etc.  The maximum number of bytes used to encode these
-                values is 8 (i.e. an unsigned 64-bit integer).
+                node; and so on. The maximum number of bytes used to 
+                encode these values is 8 (in other words, an unsigned 
+                64-bit integer).
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Total Number of Records in Child Node</td>
+          <td><p>Total Number of Records in Child Node</p></td>
           <td>
             <p>This is the total number of records for the node pointed to by
                the corresponding <em>Node Pointer</em> and all its children.
                This field exists only in nodes whose depth in the B-tree node
-               is greater than 1 (i.e. the "twig" internal nodes, just above
-               leaf nodes, don't store this field in their child node pointers).
+               is greater than 1 (in other words, the “twig” 
+               internal nodes, just above leaf nodes, do not store this 
+               field in their child node pointers).
             </p>
             <p>The number of bytes used to store this field is determined by
                 the maximum possible number of records able to be stored in the
-                child node and its descendents.
+                child node and its descendants.
             </p>
             <p>
                 The maximum possible number of records able to be stored in a
-                child node and its descendents is computed iteratively, in the
+                child node and its descendants is computed iteratively, in the
                 following way:  The maximum number of records in a leaf node
                 is computed, then that value is used to compute the maximum
                 possible number of records in the first level of internal nodes
@@ -2023,7 +2253,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for this node.
             </p>
@@ -2033,9 +2263,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree Leaf Node
         </caption>
@@ -2045,39 +2276,41 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
+        </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
         <tr>
           <td>Version</td>
           <td>Type</td>
-          <td colspan=2>Record 0, 1, 2...N-1 <em>(variable size)</em></td>
+          <td colspan="2">Record 0, 1, 2...N-1 <em>(variable size)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Checksum</td>
+	  <td colspan="4">Checksum</td>
+      </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>BTLF</code>" is 
+            <p>The ASCII character string “<code>BTLF</code>“ is 
                 used to indicate the leaf node of a version 2 B-link tree.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>The version number for this B-tree leaf node.  
 	       This document describes version 0.
@@ -2086,15 +2319,16 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Type</td>
+          <td><p>Type</p></td>
           <td>
             <p>This field is the type of the B-tree node.  It should always
                 be the same as the B-tree type in the header.
             </p>
           </td>
+          </tr>
 
         <tr>
-          <td>Records</td>
+          <td><p>Records</p></td>
           <td>
             <p>The size of this field is determined by the number of records
 	       for this node and the record size (from the header).  The format
@@ -2104,7 +2338,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for this node.
             </p>
@@ -2114,16 +2348,15 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-
-    <p>The record layout for each stored (i.e. non-testing) B-tree type is as
-        follows:
-
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <p>The record layout for each stored (in other words, non-testing) 
+    B-tree type is as follows:</p>
+    
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 1 Record Layout - Indirectly Accessed, Non-Filtered,
-            'Huge' Fractal Heap Objects
+            ‘Huge’ Fractal Heap Objects
         </caption>
 
         <tr>
@@ -2134,27 +2367,43 @@ TABLE.list TD { border:none; }
 	</tr>
 
         <tr>
-          <td colspan=4><br>Huge Object Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Huge Object Address<sup>O</sup><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4><br>Huge Object Length<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Huge Object Length<sup>L</sup><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4><br>Huge Object ID<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Huge Object ID<sup>L</sup><br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Huge Object Address</td>
+          <td><p>Huge Object Address</p></td>
           <td>
             <p>The address of the huge object in the file.
             </p>
@@ -2162,7 +2411,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Huge Object Length</td>
+          <td><p>Huge Object Length</p></td>
           <td>
             <p>The length of the huge object in the file.
             </p>
@@ -2170,7 +2419,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Huge Object ID</td>
+          <td><p>Huge Object ID</p></td>
           <td>
             <p>The heap ID for the huge object.
             </p>
@@ -2180,12 +2429,13 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 2 Record Layout - Indirectly Accessed, Filtered,
-            'Huge' Fractal Heap Objects
+            ‘Huge’ Fractal Heap Objects
         </caption>
 
         <tr>
@@ -2193,36 +2443,52 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
-	</tr>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Filtered Huge Object Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Filtered Huge Object Address<sup>O</sup><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4><br>Filtered Huge Object Length<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Filtered Huge Object Length<sup>L</sup><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4>Filter Mask</td>
+          <td colspan="4">Filter Mask</td>
         </tr>
         <tr>
-          <td colspan=4><br>Filtered Huge Object Memory Size<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Filtered Huge Object Memory Size<sup>L</sup><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4><br>Huge Object ID<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Huge Object ID<sup>L</sup><br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Filtered Huge Object Address</td>
+          <td><p>Filtered Huge Object Address</p></td>
           <td>
             <p>The address of the filtered huge object in the file.
             </p>
@@ -2230,7 +2496,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Filtered Huge Object Length</td>
+          <td><p>Filtered Huge Object Length</p></td>
           <td>
             <p>The length of the filtered huge object in the file.
             </p>
@@ -2238,9 +2504,9 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Filter Mask</td>
+          <td><p>Filter Mask</p></td>
           <td>
-            <p>A 32-bit bitfield indicating which filters have been skipped for
+            <p>A 32-bit bit field indicating which filters have been skipped for
                 this chunk.  Each filter has an index number in the pipeline
                 (starting at 0, with the first filter to apply) and if that
                 filter is skipped, the bit corresponding to its index is set.
@@ -2249,7 +2515,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Filtered Huge Object Memory Size</td>
+          <td><p>Filtered Huge Object Memory Size</p></td>
           <td>
             <p>The size of the de-filtered huge object in memory.
             </p>
@@ -2257,7 +2523,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Huge Object ID</td>
+          <td><p>Huge Object ID</p></td>
           <td>
             <p>The heap ID for the huge object.
             </p>
@@ -2267,12 +2533,13 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 3 Record Layout - Directly Accessed, Non-Filtered,
-            'Huge' Fractal Heap Objects
+            ‘Huge’ Fractal Heap Objects
         </caption>
 
         <tr>
@@ -2283,24 +2550,40 @@ TABLE.list TD { border:none; }
 	</tr>
 
         <tr>
-          <td colspan=4><br>Huge Object Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Huge Object Address<sup>O</sup><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4><br>Huge Object Length<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Huge Object Length<sup>L</sup><br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Huge Object Address</td>
+          <td><p>Huge Object Address</p></td>
           <td>
             <p>The address of the huge object in the file.
             </p>
@@ -2308,7 +2591,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Huge Object Length</td>
+          <td><p>Huge Object Length</p></td>
           <td>
             <p>The length of the huge object in the file.
             </p>
@@ -2318,12 +2601,13 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 4 Record Layout - Directly Accessed, Filtered,
-            'Huge' Fractal Heap Objects
+            ‘Huge’ Fractal Heap Objects
         </caption>
 
         <tr>
@@ -2331,33 +2615,49 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
-	</tr>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Filtered Huge Object Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Filtered Huge Object Address<sup>O</sup><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4><br>Filtered Huge Object Length<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Filtered Huge Object Length<sup>L</sup><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4>Filter Mask</td>
+          <td colspan="4">Filter Mask</td>
         </tr>
         <tr>
-          <td colspan=4><br>Filtered Huge Object Memory Size<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Filtered Huge Object Memory Size<sup>L</sup><br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Filtered Huge Object Address</td>
+          <td><p>Filtered Huge Object Address</p></td>
           <td>
             <p>The address of the filtered huge object in the file.
             </p>
@@ -2365,7 +2665,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Filtered Huge Object Length</td>
+          <td><p>Filtered Huge Object Length</p></td>
           <td>
             <p>The length of the filtered huge object in the file.
             </p>
@@ -2373,9 +2673,9 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Filter Mask</td>
+          <td><p>Filter Mask</p></td>
           <td>
-            <p>A 32-bit bitfield indicating which filters have been skipped for
+            <p>A 32-bit bit field indicating which filters have been skipped for
                 this chunk.  Each filter has an index number in the pipeline
                 (starting at 0, with the first filter to apply) and if that
                 filter is skipped, the bit corresponding to its index is set.
@@ -2384,7 +2684,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Filtered Huge Object Memory Size</td>
+          <td><p>Filtered Huge Object Memory Size</p></td>
           <td>
             <p>The size of the de-filtered huge object in memory.
             </p>
@@ -2394,9 +2694,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 5 Record Layout - Link Name for Indexed Group
         </caption>
@@ -2409,51 +2710,52 @@ TABLE.list TD { border:none; }
 	</tr>
 
         <tr>
-          <td colspan=4>Hash of Name</td>
+          <td colspan="4">Hash of Name</td>
         </tr>
         <tr>
-          <td colspan=4>ID <em>(bytes 1-4)</em></td>
+          <td colspan="4">ID <em>(bytes 1-4)</em></td>
 	</tr>
 
         <tr>
-          <td colspan=3>ID <em>(bytes 5-7)</em></td>
+          <td colspan="3">ID <em>(bytes 5-7)</em></td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Hash</td>
+          <td><p>Hash</p></td>
           <td>
             <p>This field is hash value of the name for the link.  The hash 
-                value is the Jenkins' lookup3 checksum algorithm applied to
-                the link's name.
+                value is the Jenkins’ lookup3 checksum algorithm applied to
+                the link’s name.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>ID</td>
+          <td><p>ID</p></td>
           <td>
             <p>This is a 7-byte sequence of bytes and is the heap ID for the
-                link record in the group's fractal heap.
+                link record in the group’s fractal heap.</p>
           </td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 6 Record Layout - Creation Order for Indexed Group
         </caption>
@@ -2463,30 +2765,30 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
-	</tr>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Creation Order <em>(8 bytes)</em><br><br></td>
+          <td colspan="4"><br />Creation Order <em>(8 bytes)</em><br /><br /></td>
         </tr>
         <tr>
-          <td colspan=4>ID <em>(bytes 1-4)</em></td>
-	</tr>
-	<tr>
-          <td colspan=3>ID <em>(bytes 5-7)</em></td>
-	</tr>
+          <td colspan="4">ID <em>(bytes 1-4)</em></td>
+        </tr>
+        <tr>
+          <td colspan="3">ID <em>(bytes 5-7)</em></td>
+        </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Creation Order</td>
+          <td><p>Creation Order</p></td>
           <td>
             <p>This field is the creation order value for the link.
             </p>
@@ -2494,19 +2796,20 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>ID</td>
+          <td><p>ID</p></td>
           <td>
             <p>This is a 7-byte sequence of bytes and is the heap ID for the
-                link record in the group's fractal heap.
+                link record in the group’s fractal heap.</p>
           </td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 7 Record Layout - Shared Object Header Messages (Sub-Type 0 - Message in Heap)
         </caption>
@@ -2516,85 +2819,86 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
-	</tr>
+        </tr>
 
         <tr>
           <td colspan>Message Location</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
         <tr>
-          <td colspan=4>Hash</td>
-	</tr>
-	<tr>
-          <td colspan=4>Reference Count</td>
-	</tr>
-	<tr>
-          <td colspan=4><br>Heap ID <em>(8 bytes)</em><br><br></td>
-	</tr>
+          <td colspan="4">Hash</td>
+        </tr>
+        <tr>
+          <td colspan="4">Reference Count</td>
+        </tr>
+        <tr>
+          <td colspan="4"><br />Heap ID <em>(8 bytes)</em><br /><br /></td>
+        </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Message Location</td>
+          <td><p>Message Location</p></td>
           <td>
             <p>This field Indicates the location where the message is stored:
-            <table class=list>
+            <table class="list">
                 <tr>
-                <th width="30%">Value</th>
-                <th align=left>Description</th>
+                <th width="20%" align="center">Value</th>
+                <th width="80%" align="left">Description</th>
                 </tr>
                 <tr>
-                    <td align=center>0</td>
+                    <td align="center">0</td>
                     <td>Shared message is stored in shared message index heap.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>1</td>
+                    <td align="center">1</td>
                     <td>Shared message is stored in object header.
                     </td>
                 </tr>
-            </table>
+            </table></p>
           </td>
         </tr>
 
         <tr>
-          <td>Hash</td>
+          <td><p>Hash</p></td>
           <td>
             <p>This field is hash value of the shared message.  The hash 
-                value is the Jenkins' lookup3 checksum algorithm applied to
-                the shared message.
+                value is the Jenkins’ lookup3 checksum algorithm applied to
+                the shared message.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Reference Count</td>
+          <td><p>Reference Count</p></td>
           <td>
-            <p>The number of objects which reference this message.
+            <p>The number of objects which reference this message.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Heap ID</td>
+          <td><p>Heap ID</p></td>
           <td>
-            <p>This is a 8-byte sequence of bytes and is the heap ID for the
-                shared message in the shared message index's fractal heap.
+            <p>This is an 8-byte sequence of bytes and is the heap ID for the
+                shared message in the shared message index’s fractal heap.</p>
           </td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 7 Record Layout - Shared Object Header Messages (Sub-Type 1 - Message in Object Header)
         </caption>
@@ -2604,94 +2908,105 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
-	</tr>
+        </tr>
 
         <tr>
           <td colspan>Message Location</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
+        </tr>
+        <tr>
+          <td colspan="4">Hash</td>
         </tr>
         <tr>
-          <td colspan=4>Hash</td>
-	</tr>
-	<tr>
           <td>Reserved (zero)</td>
           <td>Message Type</td>
-          <td colspan=2>Object Header Index</td>
-	</tr>
-	<tr>
-          <td colspan=4><br>Object Header Address<sup>O</sup><br><br></td>
-	</tr>
+          <td colspan="2">Object Header Index</td>
+        </tr>
+        <tr>
+          <td colspan="4"><br />Object Header Address<sup>O</sup><br /><br /></td>
+        </tr>
+      </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
       </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Message Location</td>
+          <td><p>Message Location</p></td>
           <td>
             <p>This field Indicates the location where the message is stored:
-            <table class=list>
+            <table class="list">
                 <tr>
-                <th width="30%">Value</th>
-                <th align=left>Description</th>
+                <th width="20%" align="center">Value</th>
+                <th width="80%" align="left">Description</th>
                 </tr>
                 <tr>
-                    <td align=center>0</td>
+                    <td align="center">0</td>
                     <td>Shared message is stored in shared message index heap.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>1</td>
+                    <td align="center">1</td>
                     <td>Shared message is stored in object header.
                     </td>
                 </tr>
-            </table>
+            </table></p>
           </td>
         </tr>
 
         <tr>
-          <td>Hash</td>
+          <td><p>Hash</p></td>
           <td>
             <p>This field is hash value of the shared message.  The hash 
-                value is the Jenkins' lookup3 checksum algorithm applied to
-                the shared message.
+                value is the Jenkins’ lookup3 checksum algorithm applied to
+                the shared message.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Message Type</td>
+          <td><p>Message Type</p></td>
           <td>
-            <p>The object header message type of the shared message.
+            <p>The object header message type of the shared message.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Object Header Index</td>
+          <td><p>Object Header Index</p></td>
           <td>
-            <p>This field indicates that the shared message is the n'th message
-                of its type in the specified object header.
+            <p>This field indicates that the shared message is the n<sup>th</sup> message
+                of its type in the specified object header.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Object Header Address</td>
+          <td><p>Object Header Address</p></td>
           <td>
-            <p>The address of the object header containing the shared message.
+            <p>The address of the object header containing the shared message.</p>
           </td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 8 Record Layout - Attribute Name for Indexed Attributes
         </caption>
@@ -2701,49 +3016,48 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
-	</tr>
+        </tr>
 
-	<tr>
-          <td colspan=4><br>Heap ID <em>(8 bytes)</em><br><br></td>
-	</tr>
+        <tr>
+          <td colspan="4"><br />Heap ID <em>(8 bytes)</em><br /><br /></td>
+        </tr>
         <tr>
           <td colspan>Message Flags</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
         <tr>
-          <td colspan=4>Creation Order</td>
+          <td colspan="4">Creation Order</td>
         </tr>
         <tr>
-          <td colspan=4>Hash of Name</td>
+          <td colspan="4">Hash of Name</td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Heap ID</td>
+          <td><p>Heap ID</p></td>
           <td>
-            <p>This is a 8-byte sequence of bytes and is the heap ID for the
-                attribute in the object's attribute fractal heap.
+            <p>This is an 8-byte sequence of bytes and is the heap ID for the
+                attribute in the object’s attribute fractal heap.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Message Flags</td>
-          <td>
-            <p>The object header message flags for the attribute message.
+          <td><p>Message Flags</p></td>
+          <td><p>The object header message flags for the attribute message.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Creation Order</td>
+          <td><p>Creation Order</p></td>
           <td>
             <p>This field is the creation order value for the attribute.
             </p>
@@ -2751,11 +3065,11 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Hash</td>
+          <td><p>Hash</p></td>
           <td>
             <p>This field is hash value of the name for the attribute.  The hash 
-                value is the Jenkins' lookup3 checksum algorithm applied to
-                the attribute's name.
+                value is the Jenkins’ lookup3 checksum algorithm applied to
+                the attribute’s name.
             </p>
           </td>
         </tr>
@@ -2763,9 +3077,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Version 2 B-tree, Type 9 Record Layout- Creation Order for Indexed Attributes
         </caption>
@@ -2775,46 +3090,46 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
-	</tr>
+        </tr>
 
-	<tr>
-          <td colspan=4><br>Heap ID <em>(8 bytes)</em><br><br></td>
-	</tr>
+        <tr>
+          <td colspan="4"><br />Heap ID <em>(8 bytes)</em><br /><br /></td>
+        </tr>
         <tr>
           <td colspan>Message Flags</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
         <tr>
-          <td colspan=4>Creation Order</td>
+          <td colspan="4">Creation Order</td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Heap ID</td>
+          <td><p>Heap ID</p></td>
           <td>
-            <p>This is a 8-byte sequence of bytes and is the heap ID for the
-                attribute in the object's attribute fractal heap.
+            <p>This is an 8-byte sequence of bytes and is the heap ID for the
+                attribute in the object’s attribute fractal heap.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Message Flags</td>
+          <td><p>Message Flags</p></td>
           <td>
-            <p>The object header message flags for the attribute message.
+            <p>The object header message flags for the attribute message.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Creation Order</td>
+          <td><p>Creation Order</p></td>
           <td>
             <p>This field is the creation order value for the attribute.
             </p>
@@ -2825,32 +3140,33 @@ TABLE.list TD { border:none; }
     </div>
 
 
-    <h3><a name="SymbolTable">Disk Format: Level 1B - Group Symbol Table Nodes</a></h3>
+<br />
+<h3><a name="SymbolTable">
+III.B. Disk Format: Level 1B - Group Symbol Table Nodes</a></h3>
 
     <p>A group is an object internal to the file that allows
       arbitrary nesting of objects within the file (including other groups).
       A group maps a set of link names in the group to a set of relative
       file addresses of objects in the file.  Certain metadata for an object to
-      which the group points can be cached in the group's symbol table entry in
-      addition to being in the object's header.
+      which the group points can be cached in the group’s symbol table entry in
+      addition to being in the object’s header.</p>
 
     <p>An HDF5 object name space can be stored hierarchically by
       partitioning the name into components and storing each
       component as a link in a group.  The link for a
       non-ultimate component points to the group containing
       the next component.  The link for the last
-      component points to the object being named.
+      component points to the object being named.</p>
 
     <p>One implementation of a  group is a collection of symbol table nodes
       indexed by a B-link tree.  Each symbol table node contains entries
       for one or more links.  If an attempt is made to add a link to an already
       full symbol table node containing 2<em>K</em> entries, then the node is
       split and one node contains <em>K</em> symbols and the other contains
-      <em>K</em>+1 symbols.
+      <em>K</em>+1 symbols.</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Symbol Table Node (A Leaf of a B-link tree)
         </caption>
@@ -2860,32 +3176,36 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
-
+        </tr>
+        
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
+        </tr>
 
         <tr>
           <td>Version Number</td>
           <td>Reserved (zero)</td>
-          <td colspan=2>Number of Symbols</td>
+          <td colspan="2">Number of Symbols</td>
+        </tr>
 
         <tr>
-          <td colspan=4><br><br>Group Entries<br><br><br></td>
+          <td colspan="4"><br /><br />Group Entries<br /><br /><br /></td>
+        </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>SNOD</code>" is 
+            <p>The ASCII character string “<code>SNOD</code>” is 
             used to indicate the
             beginning of a symbol table node.  This gives file
             consistency checking utilities a better chance of
@@ -2895,17 +3215,17 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Version Number</td>
+          <td><p>Version Number</p></td>
           <td>
             <p>The version number for the symbol table node.  This
-            document describes version 1. (There is no version '0'
+            document describes version 1. (There is no version ‘0’
             of the symbol table node)
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Number of Entries</td>
+          <td><p>Number of Entries</p></td>
           <td>
             <p>Although all symbol table nodes have the same length,
             most contain fewer than the maximum possible number of
@@ -2918,12 +3238,12 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Symbol Table Entries</td>
+          <td><p>Symbol Table Entries</p></td>
           <td>
             <p>Each link has an entry in the symbol table node.
             The format of the entry is described below.
-            There are 2<EM>K</EM> entries in each group node, where
-            <EM>K</EM> is the "Group Leaf Node K" value from the
+            There are 2<em>K</em> entries in each group node, where
+            <em>K</em> is the “Group Leaf Node K” value from the
             <a href="#Superblock">superblock</a>.
             </p>
           </td>
@@ -2931,18 +3251,18 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <h3><a name="SymbolTableEntry">
-        Disk Format: Level 1C - Symbol Table Entry </a></h3>
+<br />
+<h3><a name="SymbolTableEntry">
+III.C. Disk Format: Level 1C - Symbol Table Entry </a></h3>
 
     <p>Each symbol table entry in a symbol table node is designed 
       to allow for very fast browsing of stored objects.
       Toward that design goal, the symbol table entries
       include space for caching certain constant metadata from the
-      object header.
+      object header.</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Symbol Table Entry
         </caption>
@@ -2955,47 +3275,49 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4><br>Link Name Offset<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Link Name Offset<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Object Header Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Object Header Address<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4>Cache Type</td>
+          <td colspan="4">Cache Type</td>
         </tr>
 
         <tr>
-          <td colspan=4>Reserved (zero)</td>
+          <td colspan="4">Reserved (zero)</td>
         </tr>
 
         <tr>
-          <td colspan=4><br><br>Scratch-pad Space (16 bytes)<br><br><br></td>
+          <td colspan="4"><br /><br />Scratch-pad Space (16 bytes)<br /><br /><br /></td>
         </tr>
       </table>
 
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘O’ the above table are
-            <br>
-            of the size specified in “Size of Offsets.”)
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
         </td></tr>
       </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Link Name Offset</td>
+          <td><p>Link Name Offset</p></td>
           <td>
-            <p>This is the byte offset into the group's local
+            <p>This is the byte offset into the group’s local
             heap for the name of the link. The name is null
             terminated.
             </p>
@@ -3003,56 +3325,56 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Object Header Address</td>
+          <td><p>Object Header Address</p></td>
           <td>
             <p>Every object has an object header which serves as a
-            permanent location for the object's metadata.  In addition
-            to appearing in the object header, some of the object's metadata
+            permanent location for the object’s metadata.  In addition
+            to appearing in the object header, some of the object’s metadata
             can be cached in the scratch-pad space.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Cache Type</td>
+          <td><p>Cache Type</p></td>
           <td>
             <p>The cache type is determined from the object header.
             It also determines the format for the scratch-pad space:
-            <br>
-            <table class=list>
-                <tr align=left>
-                    <th>Type:</th>
-                    <th>Description:</th>
+            
+            <table class="list">
+                <tr>
+                    <th width="20%" align="center">Type</th>
+                    <th width="80%" align="left">Description</th>
                 </tr>
                 <tr>
-                    <td width="10%" align=center>0</td>
+                    <td align="center">0</td>
                     <td>No data is cached by the group entry.  This
                         is guaranteed to be the case when an object header
                         has a link count greater than one.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>1</td>
+                    <td align="center">1</td>
                     <td>Group object header metadata is cached in the
                         scratch-pad space.  This implies that the symbol table
                         entry refers to another group.
                     </td>
                 </tr>
                 <tr>
-                    <td align=center>2</td>
+                    <td align="center">2</td>
                     <td>The entry is a symbolic link.  The first four bytes
                         of the scratch-pad space are the offset into the local
                         heap for the link value.  The object header address
                         will be undefined.
                     </td>
                 </tr>
-            </table>
-            </p>
+            </table></p>
+            
           </td>
         </tr>
 
         <tr>
-          <td>Reserved</td>
+          <td><p>Reserved</p></td>
           <td>
             <p>These four bytes are present so that the scratch-pad
             space is aligned on an eight-byte boundary.  They are
@@ -3062,7 +3384,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Scratch-pad Space</td>
+          <td><p>Scratch-pad Space</p></td>
           <td>
             <p>This space is used for different purposes, depending
             on the value of the Cache Type field. Any metadata
@@ -3080,23 +3402,23 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <h4>Format of the Scratch-pad Space</h4>
+<br />
+<h4>Format of the Scratch-pad Space</h4>
 
     <p>The symbol table entry scratch-pad space is formatted
-      according to the value in the Cache Type field.  
+      according to the value in the Cache Type field.</p>  
 
     <p>If the Cache Type field contains the value zero 
       <code>(0)</code> then no information is
-      stored in the scratch-pad space.
+      stored in the scratch-pad space.</p>
 
     <p>If the Cache Type field contains the value one
       <code>(1)</code>, then the scratch-pad space
       contains cached metadata for another object header 
-      in the following format:
+      in the following format:</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Object Header Scratch-pad Format
         </caption>
@@ -3106,45 +3428,50 @@ TABLE.list TD { border:none; }
           <th>byte</th>
           <th>byte</th>
           <th>byte</th>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Address of B-tree<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of B-tree<sup>O</sup><br /><br /></td>
+        </tr>
 
         <tr>
-          <td colspan=4><br>Address of Name Heap<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Name Heap<sup>O</sup><br /><br /></td>
+        </tr>
       </table>
 
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘O’ the above table are
-            <br>
-            of the size specified in “Size of Offsets.”)
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
         </td></tr>
       </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Address of B-tree</td>
+          <td><p>Address of B-tree</p></td>
           <td>
             <p>This is the file address for the root of the 
-                group's B-tree.
+                group’s B-tree.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Address of Name Heap</td>
+          <td><p>Address of Name Heap</p></td>
           <td>
-            <p>This is the file address for the group's local
-                heap, in which are stored the group's symbol names.
+            <p>This is the file address for the group’s local
+                heap, in which are stored the group’s symbol names.
             </p>
           </td>
         </tr>
@@ -3152,14 +3479,14 @@ TABLE.list TD { border:none; }
     </div>
 
 
+    <br />
     <p>If the Cache Type field contains the value two
       <code>(2)</code>, then the scratch-pad space
       contains cached metadata for a symbolic link
-      in the following format:
+      in the following format:</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Symbolic Link Scratch-pad Format
         </caption>
@@ -3172,21 +3499,21 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Offset to Link Value</td>
+          <td colspan="4">Offset to Link Value</td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Offset to Link Value</td>
+          <td><p>Offset to Link Value</p></td>
           <td>
             <p>The value of a symbolic link (that is, the name of the
                 thing to which it points) is stored in the local heap.
@@ -3198,19 +3525,20 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <h3><a name="LocalHeap">Disk Format: Level 1D - Local Heaps</a></h3>
+<br />
+<h3><a name="LocalHeap">
+III.D. Disk Format: Level 1D - Local Heaps</a></h3>
 
     <p>A local heap is a collection of small pieces of data that are particular
       to a single object in the HDF5 file.  Objects can be
       inserted and removed from the heap at any time.  
       The address of a heap does not change once the heap is created. 
       For example, a group stores addresses of objects in symbol table nodes
-      with the names of links stored in the group's local heap.
+      with the names of links stored in the group’s local heap.
     </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Local Heap
         </caption>
@@ -3223,53 +3551,56 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
 
         <tr>
           <td>Version</td>
-          <td colspan=3>Reserved (zero)</td>
+          <td colspan="3">Reserved (zero)</td>
         </tr>
           
         <tr>
-          <td colspan=4><br>Data Segment Size<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Data Segment Size<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Offset to Head of Free-list<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Offset to Head of Free-list<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Address of Data Segment<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Data Segment<sup>O</sup><br /><br /></td>
         </tr>
       </table>
 
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘L’ the above table are
-            <br>
-            of the size specified in “Size of Lengths.”)
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
         </td></tr>
-        <tr><td>
-            (Items marked with an ‘O’ the above table are
-            <br>
-            of the size specified in “Size of Offsets.”)
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
         </td></tr>
       </table>
+
     </div>
 
-    <p>
-    <center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>HEAP</code>"
+            <p>The ASCII character string “<code>HEAP</code>”
             is used to indicate the
             beginning of a heap.  This gives file consistency
             checking utilities a better chance of reconstructing a
@@ -3279,7 +3610,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>Each local heap has its own version number so that new
             heaps can be added to old files.  This document
@@ -3289,7 +3620,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Data Segment Size</td>
+          <td><p>Data Segment Size</p></td>
           <td>
             <p>The total amount of disk memory allocated for the heap
             data.  This may be larger than the amount of space
@@ -3300,25 +3631,25 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Offset to Head of Free-list</td>
+          <td><p>Offset to Head of Free-list</p></td>
           <td>
             <p>This is the offset within the heap data segment of the
             first free block (or the
             <a href="#UndefinedAddress">undefined address</a> if there is no
-            free block).  The free block contains "Size of Lengths" bytes that
+            free block).  The free block contains “Size of Lengths” bytes that
             are the offset of the next free block (or the
-            value '1' if this is the
-            last free block) followed by "Size of Lengths" bytes that store
+            value ‘1’ if this is the
+            last free block) followed by “Size of Lengths” bytes that store
             the size of this free block.  The size of the free block includes
             the space used to store the offset of the next free block and
             the size of the current block, making the minimum size of a free 
-            block 2 * "Size of Lengths".
+            block 2 * “Size of Lengths”.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Address of Data Segment</td>
+          <td><p>Address of Data Segment</p></td>
           <td>
             <p>The data segment originally starts immediately after
             the heap header, but if the data segment must grow as a
@@ -3329,32 +3660,34 @@ TABLE.list TD { border:none; }
           </td>
         </tr>
       </table>
-    </center>
+    </div>
 
-    <p>Objects within a local heap should be aligned on an 8-byte boundary.
+    <p>Objects within a local heap should be aligned on an 8-byte boundary.</p>
 
-    <h3><a name="GlobalHeap">Disk Format: Level 1E - Global Heap</a></h3>
+<br />
+<h3><a name="GlobalHeap">
+III.E. Disk Format: Level 1E - Global Heap</a></h3>
 
     <p>Each HDF5 file has a global heap which stores various types of
       information which is typically shared between datasets.  The
-      global heap was designed to satisfy these goals:
+      global heap was designed to satisfy these goals:</p>
 
     <ol type="A">
       <li>Repeated access to a heap object must be efficient without
         resulting in repeated file I/O requests. Since global heap
         objects will typically be shared among several datasets, it is
-        probable that the object will be accessed repeatedly.
+        probable that the object will be accessed repeatedly.</li>
       <li>Collections of related global heap objects should result in
         fewer and larger I/O requests.  For instance, a dataset of
         object references will have a global heap object for each
         reference.  Reading the entire set of object references
         should result in a few large I/O requests instead of one small
-        I/O request for each reference.
+        I/O request for each reference.</li>
       <li>It should be possible to remove objects from the global heap
         and the resulting file hole should be eligible to be reclaimed
-        for other uses.
+        for other uses.</li>
     </ol>
-    </p>
+    
 
     <p>The implementation of the heap makes use of the memory management
         already available at the file level and combines that with a new
@@ -3368,17 +3701,17 @@ TABLE.list TD { border:none; }
     <p>When a global heap object is deleted from a collection (which occurs
         when its reference count falls to zero), objects located after the
         deleted object in the collection are packed down toward the beginning
-        of the collection and the collection's global heap object 0 is created
+        of the collection and the collection’s global heap object 0 is created
         (if possible) or its size is increased to account for the recently
         freed space.  There are no gaps between objects in each collection,
         with the possible exception of the final space in the collection, if
-        it is not large enough to hold the header for the collection's global
+        it is not large enough to hold the header for the collection’s global
         heap object 0.  These features address goal C.
     </p>
 
-    <p>The HDF5 library creates global heap collections as needed, so there may
+    <p>The HDF5 Library creates global heap collections as needed, so there may
         be multiple collections throughout the file. The set of all of them is
-        abstractly called the "global heap", although they don't actually link
+        abstractly called the “global heap”, although they do not actually link
         to each other, and there is no global place in the file where you can
         discover all of the collections.  The collections are found simply by
         finding a reference to one through another object in the file.  For
@@ -3387,9 +3720,8 @@ TABLE.list TD { border:none; }
         global heap IDs is described at the end of this section.
     </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           A Global Heap Collection
         </caption>
@@ -3402,52 +3734,62 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
           
         <tr>
           <td>Version</td>
-          <td colspan=3>Reserved (zero)</td>
+          <td colspan="3">Reserved (zero)</td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Collection Size<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Collection Size<sup>L</sup><br /><br /></td>
         </tr>
           
         <tr>
-          <td colspan=4><br>Global Heap Object 1<br><br></td>
+          <td colspan="4"><br />Global Heap Object 1<br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Global Heap Object 2<br><br></td>
+          <td colspan="4"><br />Global Heap Object 2<br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>...<br><br></td>
+          <td colspan="4"><br />...<br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Global Heap Object <em>N</em><br><br></td>
+          <td colspan="4"><br />Global Heap Object <em>N</em><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Global Heap Object 0 (free space)<br><br></td>
+          <td colspan="4"><br />Global Heap Object 0 (free space)<br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>GCOL</code>"
+            <p>The ASCII character string “<code>GCOL</code>”
             is used to indicate the
             beginning of a collection.  This gives file consistency
             checking utilities a better chance of reconstructing a
@@ -3457,7 +3799,7 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>Each collection has its own version number so that new
             collections can be added to old files.  This document
@@ -3468,7 +3810,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Collection Size</td>
+          <td><p>Collection Size</p></td>
           <td>
             <p>This is the size in bytes of the entire collection
             including this field.  The default (and minimum)
@@ -3481,7 +3823,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Global Heap Object 1 through <em>N</em></td> 
+          <td><p>Global Heap Object 1 through <em>N</em></p></td>
           <td>
             <p>The objects are stored in any order with no 
             intervening unused space.
@@ -3490,7 +3832,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Global Heap Object 0</td>
+          <td><p>Global Heap Object 0</p></td>
           <td>
             <p>Global Heap Object 0 (zero), when present, represents the free
             space in the collection.  Free space always appears at the end of
@@ -3499,12 +3841,14 @@ TABLE.list TD { border:none; }
             collection contains no free space.
             </p>
           </td>
+        </tr>
       </table>
     </div>
     
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Global Heap Object
         </caption>
@@ -3517,34 +3861,44 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td colspan=2>Heap Object Index</td>
-          <td colspan=2>Reference Count</td>
+          <td colspan="2">Heap Object Index</td>
+          <td colspan="2">Reference Count</td>
         </tr>
 
         <tr>
-          <td colspan=4>Reserved (zero)</td>
+          <td colspan="4">Reserved (zero)</td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Object Size<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Object Size<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Object Data<br><br></td>
+          <td colspan="4"><br />Object Data<br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Heap Object Index</td>
+          <td><p>Heap Object Index</p></td>
           <td>
             <p>Each object has a unique identification number within a
             collection.  The identification numbers are chosen so that
@@ -3557,7 +3911,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Reference Count</td>
+          <td><p>Reference Count</p></td>
           <td>
             <p>All heap objects have a reference count field.  An
             object which is referenced from some other part of the
@@ -3568,7 +3922,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Reserved</td>
+          <td><p>Reserved</p></td>
           <td>
             <p>Zero padding to align next field on an 8-byte boundary.
             </p>
@@ -3576,7 +3930,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Object Size</td>
+          <td><p>Object Size</p></td>
           <td>
             <p>This is the size of the object data stored for the object.
             The actual storage space allocated for the object data is rounded
@@ -3586,7 +3940,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Object Data</td>
+          <td><p>Object Data</p></td>
           <td>
             <p>The object data is treated as a one-dimensional array
             of bytes to be interpreted by the caller.
@@ -3594,27 +3948,16 @@ TABLE.list TD { border:none; }
           </td>
         </tr>
       </table>
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘O’ in the above tables are
-            <br>
-            of the size specified in “Size of Offsets.”)
-        </td></tr>
-        <tr><td>
-            (Items marked with an ‘L’ the above tables are
-            <br>
-            of the size specified in “Size of Lengths.”)
-        </td></tr>
-      </table>
+
     </div>
 
+    <br />
     <p>
     The format for the ID used to locate an object in the global heap is
-    described here:
+    described here:</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Global Heap ID
         </caption>
@@ -3627,25 +3970,35 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4><br>Collection Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Collection Address<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4>Object Index</td>
+          <td colspan="4">Object Index</td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Collection Address</td>
+          <td><p>Collection Address</p></td>
           <td>
             <p>This field is the address of the global heap collection
 		where the data object is stored.
@@ -3654,7 +4007,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>ID</td>
+          <td><p>ID</p></td>
           <td>
             <p>This field is the index of the data object within the
 		global heap collection.
@@ -3664,10 +4017,11 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
+    
 
-    <br>
-    <h3><a name="FractalHeap">Disk Format: Level 1F - Fractal Heap</a></h3>
+<br />
+<h3><a name="FractalHeap">
+III.F. Disk Format: Level 1F - Fractal Heap</a></h3>
 
         <p>
 	    Each fractal heap consists of a header and zero or more direct and
@@ -3693,7 +4047,7 @@ TABLE.list TD { border:none; }
             The fractal heap implements the doubling table structure with
             indirect and direct blocks.
             Indirect blocks in the heap do not actually contain data for
-            objects in the heap, their "size" is abstract - 
+            objects in the heap, their “size” is abstract - 
             they represent the indexing structure for locating the
             direct blocks in the doubling table.
             Direct blocks
@@ -3709,29 +4063,30 @@ TABLE.list TD { border:none; }
             of rows for each indirect block in the heap is determined by the
             size of the block that the indirect block represents in the
             doubling table (calculation of this is shown below) and is
-            constant, except for the "root"
+            constant, except for the “root”
             indirect block, which expands and shrinks its number of rows as
             needed. 
         </p>
 
         <p>
-            Blocks in the first <em>two</em> rows of an indirect block are
-            <em>Starting Block Size</em> number of bytes in size, and the blocks
-            in each subsequent row are twice the size of the blocks in the
-            previous row (i.e. blocks in the third row are twice the
-            <em>Starting Block Size</em>, blocks in the fourth row are
-            four times the <em>Starting Block Size</em>, etc.).  Entries for
-            blocks up to the <em>Maximum Direct Block Size</em> point to direct
-            blocks and entries for blocks greater than that size point to
-            further indirect blocks (which have their own entries for direct
-            and indirect blocks, etc).
+            Blocks in the first <em>two</em> rows of an indirect block 
+            are <em>Starting Block Size</em> number of bytes in size, 
+            and the blocks in each subsequent row are twice the size of 
+            the blocks in the previous row. In other words, blocks in 
+            the third row are twice the <em>Starting Block Size</em>, 
+            blocks in the fourth row are four times the 
+            <em>Starting Block Size</em>, and so on.  Entries for
+            blocks up to the <em>Maximum Direct Block Size</em> point to 
+            direct blocks, and entries for blocks greater than that size 
+            point to further indirect blocks (which have their own 
+            entries for direct and indirect blocks).
         </p>
 
         <p>
             The number of rows of blocks, <em>nrows</em>, in an
             indirect block of size <em>iblock_size</em> is given by the
             following expression:
-            <br> <br>
+            <br /> <br />
                 <em>nrows</em> = (log<sub>2</sub>(<em>iblock_size</em>) -
                     log<sub>2</sub>(<em><Starting Block Size></em> *
                         <em><Width></em>)) + 1
@@ -3741,7 +4096,7 @@ TABLE.list TD { border:none; }
             The maximum number of rows of direct blocks, <em>max_dblock_rows</em>,
             in any indirect block of a fractal heap is given by the
             following expression:
-            <br> <br>
+            <br /> <br />
                 <em>max_dblock_rows</em> =
                     (log<sub>2</sub>(<em><Max. Direct Block Size></em>) -
                     log<sub>2</sub>(<em><Starting Block Size></em>)) + 2
@@ -3753,14 +4108,14 @@ TABLE.list TD { border:none; }
             doubling table, the number of direct and indirect block entries
             (<em>K</em> and <em>N</em> in the indirect block description, below)
             in an indirect block can be computed:
-            <br> <br>
+            <br /> <br />
                 <em>K</em> = MIN(<em>nrows</em>, <em>max_dblock_rows</em>) *
                     <em>Width</em>
 
-            <br> <br>
+            <br /> <br />
             If <em>nrows</em> is less than or equal to <em>max_dblock_rows</em>,
             <em>N</em> is 0.  Otherwise, <em>N</em> is simply computed:
-            <br> <br>
+            <br /> <br />
                 <em>N</em> = <em>K</em> - (<em>max_dblock_rows</em> *
                     <em>Width</em>)
         </p>
@@ -3772,10 +4127,8 @@ TABLE.list TD { border:none; }
             table.
         </p>
 
-
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Fractal Heap Header
         </caption>
@@ -3788,134 +4141,150 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
           
         <tr>
           <td>Version</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=2>Heap ID Length</td>
-          <td colspan=2>I/O Filters' Encoded Length</td>
+          <td colspan="2">Heap ID Length</td>
+          <td colspan="2">I/O Filters’ Encoded Length</td>
         </tr>
           
         <tr>
           <td>Flags</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4>Maximum Size of Managed Objects</td>
+          <td colspan="4">Maximum Size of Managed Objects</td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Next Huge Object ID<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Next Huge Object ID<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>v2 B-tree Address of Huge Objects<sup>O</sup><br><br></td>
+          <td colspan="4"><br />v2 B-tree Address of Huge Objects<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Amount of Free Space in Managed Blocks<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Amount of Free Space in Managed Blocks<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Address of Managed Block Free Space Manager<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Managed Block Free Space Manager<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Amount of Managed Space in Heap<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Amount of Managed Space in Heap<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Amount of Allocated Managed Space in Heap<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Amount of Allocated Managed Space in Heap<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Offset of Direct Block Allocation Iterator in Managed Space<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Offset of Direct Block Allocation Iterator in Managed Space<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Number of Managed Objects in Heap<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Number of Managed Objects in Heap<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Size of Huge Objects in Heap<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Size of Huge Objects in Heap<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Number of Huge Objects in Heap<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Number of Huge Objects in Heap<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Size of Tiny Objects in Heap<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Size of Tiny Objects in Heap<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Number of Tiny Objects in Heap<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Number of Tiny Objects in Heap<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=2>Table Width</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2">Table Width</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Starting Block Size<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Starting Block Size<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Maximum Direct Block Size<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Maximum Direct Block Size<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=2>Maximum Heap Size</td>
-          <td colspan=2>Starting # of Rows in Root Indirect Block</td>
+          <td colspan="2">Maximum Heap Size</td>
+          <td colspan="2">Starting # of Rows in Root Indirect Block</td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Address of Root Block<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Root Block<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=2>Current # of Rows in Root Indirect Block</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2">Current # of Rows in Root Indirect Block</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Size of Filtered Root Direct Block <em>(optional)</em><sup>L</sup><br><br></td>
+          <td colspan="4"><br />Size of Filtered Root Direct Block <em>(optional)</em><sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4>I/O Filter Mask<em> (optional)</em></td>
+          <td colspan="4">I/O Filter Mask<em> (optional)</em></td>
         </tr>
 
         <tr>
-          <td colspan=4>I/O Filter Information<em> (optional, variable size)</em></td>
+          <td colspan="4">I/O Filter Information<em> (optional, variable size)</em></td>
         </tr>
 
         <tr>
-          <td colspan=4>Checksum</td>
+          <td colspan="4">Checksum</td>
         </tr>
 
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
+    <br />
+    <div align="center">
+      <table class="desc">
+        <tr>
           <th width="40%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>FRHP</code>"
+            <p>The ASCII character string “<code>FRHP</code>”
             is used to indicate the
             beginning of a fractal heap header.  This gives file consistency
             checking utilities a better chance of reconstructing a
@@ -3925,40 +4294,40 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>This document describes version 0.</p>
           </td>
         </tr>
 
-	<tr>
-          <td>Heap ID Length</td>
+        <tr>
+          <td><p>Heap ID Length</p></td>
           <td>
             <p>This is the length in bytes of heap object IDs for this heap.</p>
           </td>
         </tr>
 
         <tr>
-          <td>I/O Filters' Encoded Length</td>
-	  <td>
+          <td><p>I/O Filters’ Encoded Length</p></td>
+        <td>
 	    <p>This is the size in bytes of the encoded <em>I/O Filter Information</em>.
             </p>
-	  </td>
+        </td>
         </tr>
 
-	<tr>
-	  <td>Flags</td>
-	  <td>
-            <p>This field is the heap status flag and is a bit-field indicating additional 
-	    information about the fractal heap.
-            <table class=list>
+        <tr>
+        <td><p>Flags</p></td>
+        <td>
+            <p>This field is the heap status flag and is a bit field 
+            indicating additional information about the fractal heap.
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit(s)</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit(s)</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>If set, the ID value to use for huge object has wrapped
                     around.  If the value for the <em>Next Huge Object ID</em>
                     has wrapped around, each new huge object inserted into the
@@ -3966,105 +4335,106 @@ TABLE.list TD { border:none; }
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>If set, the direct blocks in the heap are checksummed.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>2-7</code></td>
+                  <td align="center"><code>2-7</code></td>
                   <td>Reserved</td>
                 </tr>
-	    </table>
-            </p>
+            </table></p>
+            
           </td>
-	</tr>
+        </tr>
 	
-	<tr>
-	  <td>Maximum Size of Managed Objects</td>
-	  <td>
+        <tr>
+        <td><p>Maximum Size of Managed Objects</p></td>
+        <td>
 	    <p>This is the maximum size of managed objects allowed in the heap.
-                Objects greater than this this are 'huge' objects and will be
-                stored in the file directly, rather than in a direct block for
-                the heap.
+        Objects greater than this this are ‘huge’ objects and will be
+        stored in the file directly, rather than in a direct block for
+        the heap.
 	    </p>
-	  </td>
-	</tr>
+        </td>
+        </tr>
 
-	<tr>
-	  <td>Next Huge Object ID</td>
-	  <td>
+        <tr>
+        <td><p>Next Huge Object ID</p></td>
+        <td>
 	    <p>This is the next ID value to use for a huge object in the heap.
 	    </p>
-	  </td>
+        </td>
+        </tr>
 
-	<tr>
-	  <td>v2 B-tree Address of Huge Objects</td>
-	  <td>
+        <tr>
+        <td><p>v2 B-tree Address of Huge Objects</p></td>
+        <td>
 	    <p>This is the address of the <a href="#V2Btrees">v2 B-tree</a>
-                used to track huge objects in the heap.  The type of records
-                stored in the <em>v2 B-tree</em> will
-                be determined by whether the address & length of a huge object
-                can fit into a heap ID (if yes, it's a "directly" accessed
-                huge object) and whether there is a filter used on objects
-                in the heap.
+        used to track huge objects in the heap.  The type of records
+        stored in the <em>v2 B-tree</em> will
+        be determined by whether the address & length of a huge object
+        can fit into a heap ID (if yes, it is a “directly” accessed
+        huge object) and whether there is a filter used on objects
+        in the heap.
 	    </p>
-	  </td>
-	</tr>
+        </td>
+        </tr>
 
-	<tr>
-	  <td>Amount of Free Space in Managed Blocks</td>
-	  <td>
+        <tr>
+        <td><p>Amount of Free Space in Managed Blocks</p></td>
+        <td>
 	    <p>This is the total amount of free space in managed direct blocks
                 (in bytes).
 	    </p>
-	  </td>
-	</tr>
+        </td>
+        </tr>
 
-	<tr>
-          <td>Address of Managed Block Free Space Manager</td>
-	  <td>
-	    <p>This is the address of the
-                <em><a href="#FreeSpaceManager">Free-Space Manager</a></em> for
-                managed blocks.
-	    </p>
-	  </td>
-	</tr>
+        <tr>
+          <td><p>Address of Managed Block Free Space Manager</p></td>
+          <td>
+	      <p>This is the address of the
+          <em><a href="#FreeSpaceManager">Free-space Manager</a></em> for
+          managed blocks.
+          </p>
+          </td>
+        </tr>
 
-	<tr>
-          <td>Amount of Managed Space in Heap</td>
-	  <td>
+        <tr>
+        <td><p>Amount of Managed Space in Heap</p></td>
+	    <td>
 	    <p>This is the total amount of managed space in the heap (in bytes),
-                essentially the upper bound of the heap's linear address space.
+        essentially the upper bound of the heap’s linear address space.
 	    </p>
-	  </td>
-	</tr>
+        </td>
+        </tr>
 
 	<tr>
-          <td>Amount of Allocated Managed Space in Heap</td>
+          <td><p>Amount of Allocated Managed Space in Heap</p></td>
 	  <td>
 	    <p>This is the total amount of managed space (in bytes) actually
                 allocated in
                 the heap.  This can be less than the <em>Amount of Managed Space
-                in Heap</em> field, if some direct blocks in the heap's linear
+                in Heap</em> field, if some direct blocks in the heap’s linear
                 address space are not allocated.
 	    </p>
 	  </td>
 	</tr>
 
 	<tr>
-          <td>Offset of Direct Block Allocation Iterator in Managed Space</td>
+          <td><p>Offset of Direct Block Allocation Iterator in Managed Space</p></td>
 	  <td>
 	    <p>This is the linear heap offset where the next direct
                 block should be allocated at (in bytes).  This may be less than
                 the <em>Amount of Managed Space in Heap</em> value because the
-                heap's address space is increased by a "row" of direct blocks
+                heap’s address space is increased by a “row” of direct blocks
                 at a time, rather than by single direct block increments.
 	    </p>
 	  </td>
 	</tr>
 
 	<tr>
-          <td>Number of Managed Objects in Heap</td>
+          <td><p>Number of Managed Objects in Heap</p></td>
 	  <td>
 	    <p>This is the number of managed objects in the heap.
 	    </p>
@@ -4072,7 +4442,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Size of Huge Objects in Heap</td>
+          <td><p>Size of Huge Objects in Heap</p></td>
 	  <td>
 	    <p>This is the total size of huge objects in the heap (in bytes).
 	    </p>
@@ -4080,7 +4450,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Number of Huge Objects in Heap</td>
+          <td><p>Number of Huge Objects in Heap</p></td>
 	  <td>
 	    <p>This is the number of huge objects in the heap.
 	    </p>
@@ -4088,7 +4458,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Size of Tiny Objects in Heap</td>
+          <td><p>Size of Tiny Objects in Heap</p></td>
 	  <td>
 	    <p>This is the total size of tiny objects that are packed in heap
                 IDs (in bytes).
@@ -4097,7 +4467,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Number of Tiny Objects in Heap</td>
+          <td><p>Number of Tiny Objects in Heap</p></td>
 	  <td>
 	    <p>This is the number of tiny objects that are packed in heap IDs.
 	    </p>
@@ -4105,7 +4475,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Table Width</td>
+          <td><p>Table Width</p></td>
 	  <td>
 	    <p>This is the number of columns in the doubling table for managed
                 blocks.  This value must be a power of two.
@@ -4114,7 +4484,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Starting Block Size</td>
+          <td><p>Starting Block Size</p></td>
 	  <td>
 	    <p>This is the starting block size to use in the doubling table for 
 	       managed blocks (in bytes).  This value must be a power of two.
@@ -4123,43 +4493,43 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Maximum Direct Block Size</td>
+          <td><p>Maximum Direct Block Size</p></td>
 	  <td>
 	    <p>This is the maximum size allowed for a managed direct block.
                 Objects inserted into the heap that are larger than this value
                 (less the # of bytes of direct block prefix/suffix)
-                are stored as 'huge' objects.  This value must be a power of
+                are stored as ‘huge’ objects.  This value must be a power of
                 two.
 	    </p>
 	  </td>
 	</tr>
 
 	<tr>
-          <td>Maximum Heap Size</td>
+          <td><p>Maximum Heap Size</p></td>
 	  <td>
-	    <p>This is the maximum size of the heap's linear address space for
+	    <p>This is the maximum size of the heap’s linear address space for
                 managed objects (in bytes).  The value stored is the log2 of
                 the actual value, that is: the # of bits of the address space.
-                'Huge' and 'tiny' objects aren't counted in this value, since
-                they don't store objects in the linear address space of the
+                ‘Huge’ and ‘tiny’ objects are not counted in this value, since
+                they do not store objects in the linear address space of the
                 heap.
 	    </p>
 	  </td>
 	</tr>
 
 	<tr>
-          <td>Starting # of Rows in Root Indirect Block</td>
+          <td><p>Starting # of Rows in Root Indirect Block</p></td>
 	  <td>
 	    <p>This is the starting number of rows for the root indirect block.
 	       A value of 0 indicates that the root indirect block will have
-               the maximum number of rows needed to address the heap's <em>Maximum
+               the maximum number of rows needed to address the heap’s <em>Maximum
                Heap Size</em>.
 	    </p>
 	  </td>
 	</tr>
 
 	<tr>
-          <td>Address of Root Block</td>
+          <td><p>Address of Root Block</p></td>
 	  <td>
 	    <p>This is the address of the root block for the heap.  It can
                 be the <a href="#UndefinedAddress">undefined address</a> if
@@ -4171,7 +4541,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Current # of Rows in Root Indirect Block</td>
+          <td><p>Current # of Rows in Root Indirect Block</p></td>
 	  <td>
 	    <p>This is the current number of rows in the root indirect block.
 		A value of 0 indicates that <em>Address of Root Block</em>
@@ -4181,45 +4551,45 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-          <td>Size of Filtered Root Direct Block</td>
+          <td><p>Size of Filtered Root Direct Block</p></td>
 	  <td>
 	    <p>This is the size of the root direct block, if filters are
                 applied to heap objects (in bytes).  This field is only
-                stored in the header if the <em>I/O Filters' Encoded Length</em>
+                stored in the header if the <em>I/O Filters’ Encoded Length</em>
                 is greater than 0.
 	    </p>
 	  </td>
 	</tr>
 
 	<tr>
-          <td>I/O Filter Mask</td>
+          <td><p>I/O Filter Mask</p></td>
 	  <td>
 	    <p>This is the filter mask for the root direct block, if filters
                 are applied to heap objects.  This mask has the same format as
                 that used for the filter mask in chunked raw data records in a
                 <a href="#V1Btrees">v1 B-tree</a>.
                 This field is only
-                stored in the header if the <em>I/O Filters' Encoded Length</em>
+                stored in the header if the <em>I/O Filters’ Encoded Length</em>
                 is greater than 0.
 	    </p>
 	  </td>
 	</tr>
 
         <tr>
-          <td>I/O Filter Information</td>
+          <td><p>I/O Filter Information</p></td>
 	  <td>
 	    <p>This is the I/O filter information encoding direct blocks and
                 huge objects, if filters are applied to heap objects.  This
                 field is encoded as a <a href="#FilterMessage">Filter Pipeline</a>
                 message.
-                The size of this field is determined by <em>I/O Filters'
+                The size of this field is determined by <em>I/O Filters’
                 Encoded Length</em>.
 	    </p>
 	  </td>
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for the header.</p>
           </td>
@@ -4228,9 +4598,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Fractal Heap Direct Block
         </caption>
@@ -4243,44 +4614,55 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
           
         <tr>
           <td>Version</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Heap Header Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Heap Header Address<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4>Block Offset <em>(variable size)</em></td>
+          <td colspan="4">Block Offset <em>(variable size)</em></td>
         </tr>
           
         <tr>
-          <td colspan=4><br>Object Data <em>(variable size)</em><br><br></td>
+          <td colspan="4">Checksum <em>(optional)</em></td>
         </tr>
-          
+
         <tr>
-          <td colspan=4>Checksum <em>(optional)</em></td>
+          <td colspan="4"><br />Object Data <em>(variable size)</em><br /><br /></td>
         </tr>
+          
+      </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
       </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>FHDB</code>"
+            <p>The ASCII character string “<code>FHDB</code>”
             is used to indicate the
             beginning of a fractal heap direct block.  This gives file consistency
             checking utilities a better chance of reconstructing a
@@ -4290,14 +4672,14 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>This document describes version 0.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Heap Header Address</td>
+          <td><p>Heap Header Address</p></td>
           <td>
             <p>This is the address for the fractal heap header that this
                 block belongs to.  This field is principally used for file
@@ -4307,46 +4689,47 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Block Offset</td>
+          <td><p>Block Offset</p></td>
           <td>
-            <p>This is the offset of the block within the fractal heap's
+            <p>This is the offset of the block within the fractal heap’s
                 address space (in bytes).  The number of bytes used to encode
-                this field is the <em>Maximum Heap Size</em> (in the heap's
+                this field is the <em>Maximum Heap Size</em> (in the heap’s
                 header) divided by 8 and rounded up to the next highest integer,
-                for values that aren't a multiple of 8.  This value is
+                for values that are not a multiple of 8.  This value is
                 principally used for file integrity checking.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Object Data</td>
+          <td><p>Checksum</p></td>
           <td>
-            <p>This section of the direct block stores the actual data for
-                objects in the heap.  The size of this section is determined by
-                the direct block's size, minus the size of the other fields
-                stored in the direct block (the <em>Signature</em>,
-                <em>Version</em>, etc., including the <em>Checksum</em> if it's
-                present).
-            </p>
+            <p>This is the checksum for the direct block.</p>
+	    <p>This field is only present if bit 1 of <em>Flags</em> in the
+                heap’s header is set.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Object Data</p></td>
           <td>
-            <p>This is the checksum for the direct block.</p>
-	    <p>This field is only present if bit 1 of <em>Flags</em> in the
-                heap's header is set.</p>
+            <p>This section of the direct block stores the actual data for
+                objects in the heap.  The size of this section is determined by
+                the direct block’s size minus the size of the other fields
+                stored in the direct block (for example, the <em>Signature</em>,
+                <em>Version</em>, and others including the <em>Checksum</em> if it is
+                present).
+            </p>
           </td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Fractal Heap Indirect Block
         </caption>
@@ -4359,90 +4742,106 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
           
         <tr>
           <td>Version</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Heap Header Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Heap Header Address<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4>Block Offset <em>(variable size)</em></td>
+          <td colspan="4">Block Offset <em>(variable size)</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Child Direct Block #0 Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Child Direct Block #0 Address<sup>O</sup><br /><br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Size of Filtered Direct Block #0 <em>(optional)</em> <sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Size of Filtered Direct Block #0 <em>(optional)</em> <sup>L</sup><br /><br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Filter Mask for Direct Block #0 <em>(optional)</em></td>
+	  <td colspan="4">Filter Mask for Direct Block #0 <em>(optional)</em></td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Child Direct Block #1 Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Child Direct Block #1 Address<sup>O</sup><br /><br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Size of Filtered Direct Block #1 <em>(optional)</em><sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Size of Filtered Direct Block #1 <em>(optional)</em><sup>L</sup><br /><br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Filter Mask for Direct Block #1 <em>(optional)</em></td>
+	  <td colspan="4">Filter Mask for Direct Block #1 <em>(optional)</em></td>
 	</tr>
 
 	<tr>
-	    <td colspan=4>...</td>
+	    <td colspan="4">...</td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Child Direct Block #K-1 Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Child Direct Block #K-1 Address<sup>O</sup><br /><br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Size of Filtered Direct Block #K-1 <em>(optional)</em><sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Size of Filtered Direct Block #K-1 <em>(optional)</em><sup>L</sup><br /><br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Filter Mask for Direct Block #K-1 <em>(optional)</em></td>
+	  <td colspan="4">Filter Mask for Direct Block #K-1 <em>(optional)</em></td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Child Indirect Block #0 Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Child Indirect Block #0 Address<sup>O</sup><br /><br /></td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Child Indirect Block #1 Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Child Indirect Block #1 Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>...</td>
+	  <td colspan="4">...</td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Child Indirect Block #N-1 Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Child Indirect Block #N-1 Address<sup>O</sup><br /><br /></td>
 	</tr>
           
         <tr>
-	  <td colspan=4>Checksum</td>
+	  <td colspan="4">Checksum</td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>FHIB</code>" is used to
+            <p>The ASCII character string “<code>FHIB</code>” is used to
                 indicate the beginning of a fractal heap indirect block.  This
                 gives file consistency checking utilities a better chance of
                 reconstructing a damaged file.
@@ -4451,14 +4850,14 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
             <p>This document describes version 0.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Heap Header Address</td>
+          <td><p>Heap Header Address</p></td>
           <td>
             <p>This is the address for the fractal heap header that this
                 block belongs to.  This field is principally used for file
@@ -4468,30 +4867,30 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Block Offset</td>
+          <td><p>Block Offset</p></td>
           <td>
-            <p>This is the offset of the block within the fractal heap's
+            <p>This is the offset of the block within the fractal heap’s
                 address space (in bytes).  The number of bytes used to encode
-                this field is the <em>Maximum Heap Size</em> (in the heap's
+                this field is the <em>Maximum Heap Size</em> (in the heap’s
                 header) divided by 8 and rounded up to the next highest integer,
-                for values that aren't a multiple of 8.  This value is
+                for values that are not a multiple of 8.  This value is
                 principally used for file integrity checking.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Child Direct Block #K Address</td>
+          <td><p>Child Direct Block #K Address</p></td>
           <td>
 	    <p>This field is the address of the child direct block.
                 The size of the [uncompressed] direct block can be computed by
-                its offset in the heap's linear address space.  
+                its offset in the heap’s linear address space.  
             </p>
           </td>
         </tr>
 
 	<tr>
-	  <td>Size of Filtered Direct Block #K</td>
+	  <td><p>Size of Filtered Direct Block #K</p></td>
 	  <td>
 	    <p>This is the size of the child direct block after passing through
                 the I/O filters defined for this heap (in bytes).  If no I/O
@@ -4500,7 +4899,7 @@ TABLE.list TD { border:none; }
 	  </td>
 	</tr>
 	<tr>
-	  <td>Filter Mask for Direct Block #K</td>
+	  <td><p>Filter Mask for Direct Block #K</p></td>
 	  <td>
             <p>This is the I/O filter mask for the filtered direct block.
                 This mask has the same format as that used for the filter mask
@@ -4512,17 +4911,17 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Child Indirect Block #N Address</td>
+          <td><p>Child Indirect Block #N Address</p></td>
           <td>
 	    <p>This field is the address of the child indirect block.
                 The size of the indirect block can be computed by
-                its offset in the heap's linear address space.  
+                its offset in the heap’s linear address space.  
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for the indirect block.</p>
           </td>
@@ -4530,56 +4929,43 @@ TABLE.list TD { border:none; }
 
       </table>
 
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘O’ in the above tables are
-            <br>
-            of the size specified in “Size of Offsets.”)
-        </td></tr>
-        <tr><td>
-            (Items marked with an ‘L’ the above table are
-            <br>
-            of the size specified in “Size of Lengths.”)
-        </td></tr>
-      </table>
     </div>
 
-    <br>
+    <br />
     <p>An object in the fractal heap is identified by means of a fractal heap ID, 
 	which encodes information to locate the object in the heap.
 	Currently, the fractal heap stores an object in one of three ways,
-        depending on the object's size:
+        depending on the object’s size:</p>
 
-    <br>
-    <div align=center>
-      <table class=list>
+    <div align="center">
+      <table class="list80">
         <tr>
-          <th width="15%">Type</th>
-          <th align=left>Description</th>
+          <th width="20%">Type</th>
+          <th width="80%" align="left">Description</th>
         </tr>
 
         <tr>
-          <td align=center>Tiny</td>
+          <td align="center">Tiny</td>
           <td>
             <p>When an object is small enough to be encoded in the heap ID, the
-            object's data is embedded in the fractal heap ID itself.  There are
+            object’s data is embedded in the fractal heap ID itself.  There are
             2 sub-types for this type of object: normal and extended.  The
             sub-type for tiny heap IDs depends on whether the heap ID is large
             enough to store objects greater than 16 bytes or not.  If the
-            heap ID length is 18 bytes or smaller, the "normal" tiny heap ID
+            heap ID length is 18 bytes or smaller, the ‘normal’ tiny heap ID
             form is used.  If the heap ID length is greater than 18 bytes in
-            length, the "extented" form is used.  See format description below
+            length, the “extented” form is used.  See format description below
             for both sub-types.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td align=center>Huge</td>
+          <td align="center">Huge</td>
           <td>
             <p>When the size of an object is larger than <em>Maximum Size of
             Managed Objects</em> in the <em>Fractal Heap Header</em>, the
-            object's data is stored on its own in the file and the object
+            object’s data is stored on its own in the file and the object
             is tracked/indexed via a version 2 B-tree.  All huge objects
             for a particular fractal heap use the same v2 B-tree.  All huge
             objects for a particular fractal heap use the same format for
@@ -4587,21 +4973,21 @@ TABLE.list TD { border:none; }
             </p>
 
             <p>Depending on whether the IDs for a heap are large enough to hold
-            the object's retrieval information and whether I/O pipeline filters
-            are applied to the heap's objects, 4 sub-types are derived for
-            for huge object IDs for this heap:
+            the object’s retrieval information and whether I/O pipeline filters
+            are applied to the heap’s objects, 4 sub-types are derived for
+            huge object IDs for this heap:</p>
 
-            <div align=center>
-              <table class=list>
+            <div align="center">
+              <table class="list">
                 <tr>
                   <th align="left" width="35%">Sub-type</th>
-                  <th align=left>Description</th>
+                  <th align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=left>Directly accessed, non-filtered</td>
+                  <td align="left">Directly accessed, non-filtered</td>
                   <td>
-                    <p>The object's address and length are embedded in the
+                    <p>The object’s address and length are embedded in the
                     fractal heap ID itself and the object is directly accessed
                     from them.  This allows the object to be accessed without
                     resorting to the B-tree.
@@ -4610,9 +4996,9 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=left>Directly accessed, filtered</td>
+                  <td align="left">Directly accessed, filtered</td>
                   <td>
-                    <p>The filtered object's address, length, filter mask and
+                    <p>The filtered object’s address, length, filter mask and
                     de-filtered size are embedded in the fractal heap ID itself
                     and the object is accessed directly with them.  This allows
                     the object to be accessed without resorting to the B-tree.
@@ -4621,7 +5007,7 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=left>Indirectly accessed, non-filtered</td>
+                  <td align="left">Indirectly accessed, non-filtered</td>
                   <td>
                     <p>The object is located by using a B-tree key embedded in
                     the fractal heap ID to retrieve the address and length from
@@ -4632,12 +5018,12 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=left>Indirectly accessed, filtered</td>
+                  <td align="left">Indirectly accessed, filtered</td>
                   <td>
                     <p>The object is located by using a B-tree key embedded in
-                    the fractal heap ID to retrieve the filtered object's
+                    the fractal heap ID to retrieve the filtered object’s
                     address, length, filter mask and de-filtered size from the
-                    version 2 B-ree for huge objects.  Then, this information
+                    version 2 B-tree for huge objects.  Then, this information
                     is used to access the object.
                     </p>
                   </td>
@@ -4649,7 +5035,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td align=center>Managed</td>
+          <td align="center">Managed</td>
           <td>
             <p>When the size of an object does not meet the above two
             conditions, the object is stored and managed via the direct and
@@ -4659,15 +5045,14 @@ TABLE.list TD { border:none; }
         </tr>
       </table>
     </div>
-    </p>
+    
 
     <p>The specific format for each type of heap ID is described below:
     </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
-        <caption>Fractal Heap ID for Tiny Objects (sub-type 1 - "Normal")
+    <div align="center">
+      <table class="format">
+        <caption>Fractal Heap ID for Tiny Objects (sub-type 1 - ‘Normal’)
         </caption>
 
         <tr>
@@ -4679,62 +5064,62 @@ TABLE.list TD { border:none; }
 
         <tr>
           <td>Version, Type & Length</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Data <em>(variable size)</em></td>
+          <td colspan="4"><br />Data <em>(variable size)</em></td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Version, Type & Length</td>
+          <td><p>Version, Type & Length</p></td>
           <td>
             <p>This is a bit field with the following definition:
-            <table class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>6-7</code></td>
+                  <td align="center"><code>6-7</code></td>
                   <td>The current version of ID format.  This document
                     describes version 0.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>4-5</code></td>
+                  <td align="center"><code>4-5</code></td>
                   <td>The ID type.  Tiny objects have a value of <code>2</code>.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>0-3</code></td>
-                  <td>The length of the tiny object.  The value stored is one
-                    less than the actual length (since zero-length objects are
-                    not allowed to be stored in the heap).
-		    For example, an object of actual length 1 has an encoded
-		    length of 0, an object of actual length 2 has an encoded
-		    length of 1, etc.
+                  <td align="center"><code>0-3</code></td>
+                  <td>The length of the tiny object. The value stored 
+                  is one less than the actual length (since zero-length 
+                  objects are not allowed to be stored in the heap). 
+                  For example, an object of actual length 1 has an 
+                  encoded length of 0, an object of actual length 2 
+                  has an encoded length of 1, and so on.
                   </td>
                 </tr>
-	    </table>
-            </p>
+	    </table></p>
+            
           </td>
         </tr>
 
         <tr>
-          <td>Data</td>
+          <td><p>Data</p></td>
           <td>
             <p>This is the data for the object.
             </p>
@@ -4744,10 +5129,11 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
-        <caption>Fractal Heap ID for Tiny Objects (sub-type 2 - "Extended")
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
+        <caption>Fractal Heap ID for Tiny Objects (sub-type 2 - ‘Extended’)
         </caption>
 
         <tr>
@@ -4760,75 +5146,75 @@ TABLE.list TD { border:none; }
         <tr>
           <td>Version, Type & Length</td>
           <td>Extended Length</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4>Data <em>(variable size)</em></td>
+          <td colspan="4">Data <em>(variable size)</em></td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Version, Type & Length</td>
+          <td><p>Version, Type & Length</p></td>
           <td>
             <p>This is a bit field with the following definition:
-            <table class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>6-7</code></td>
+                  <td align="center"><code>6-7</code></td>
                   <td>The current version of ID format.  This document
                     describes version 0.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>4-5</code></td>
+                  <td align="center"><code>4-5</code></td>
                   <td>The ID type.  Tiny objects have a value of <code>2</code>.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>0-3</code></td>
+                  <td align="center"><code>0-3</code></td>
                   <td>These 4 bits, together with the next byte, form an
                     unsigned 12-bit integer for holding the length of the
                     object.  These 4-bits are bits 8-11 of the 12-bit integer.
                     See description for the <em>Extended Length</em> field below.
                   </td>
                 </tr>
-	    </table>
-            </p>
+	    </table></p>
+            
           </td>
         </tr>
 
         <tr>
-          <td>Extended Length</td>
+          <td><p>Extended Length</p></td>
           <td>
             <p>This byte, together with the 4 bits in the previous byte, 
-		forms an unsigned 12-bit integer for holding the length of the
-                tiny object.  These 8 bits are bits 0-7 of the 12-bit integer
-                formed.  The value stored is one less than the actual length
-                (since zero-length objects are not allowed to be stored in the
-                heap).  For example, an object of actual length 1 has an encoded
-		length of 0, an object of actual length 2 has an encoded
-		length of 1, etc.
+            forms an unsigned 12-bit integer for holding the length of 
+            the tiny object.  These 8 bits are bits 0-7 of the 12-bit 
+            integer formed. The value stored is one less than the actual 
+            length (since zero-length objects are not allowed to be 
+            stored in the heap). For example, an object of actual length 
+            1 has an encoded length of 0, an object of actual length 
+            2 has an encoded length of 1, and so on.
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Data</td>
+          <td><p>Data</p></td>
           <td>
             <p>This is the data for the object.
             </p>
@@ -4839,9 +5225,10 @@ TABLE.list TD { border:none; }
     </div>
 
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>Fractal Heap ID for Huge Objects (sub-type 1 & 2): indirectly accessed, non-filtered/filtered
         </caption>
 
@@ -4854,57 +5241,66 @@ TABLE.list TD { border:none; }
 
         <tr>
           <td>Version & Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>v2 B-tree Key<sup>L</sup><em> (variable size)</em><br><br></td>
+          <td colspan="4"><br />v2 B-tree Key<sup>L</sup><em> (variable size)</em><br /><br /></td>
         </tr>
 
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
         <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Version & Type</td>
+          <td><p>Version & Type</p></td>
           <td>
             <p>This is a bit field with the following definition:
-            <table class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>6-7</code></td>
+                  <td align="center"><code>6-7</code></td>
                   <td>The current version of ID format.  This document
                     describes version 0.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>4-5</code></td>
+                  <td align="center"><code>4-5</code></td>
                   <td>The ID type.  Huge objects have a value of <code>1</code>.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>0-3</code></td>
+                  <td align="center"><code>0-3</code></td>
                   <td>Reserved.
                   </td>
                 </tr>
-            </table>
-            </p>
+            </table></p>
+            
           </td>
         </tr>
 
         <tr>
-            <td>v2 B-tree Key</td>
+            <td><p>v2 B-tree Key</p></td>
             <td><p>This field is the B-tree key for retrieving the information
             from the version 2 B-tree for huge objects needed to access the
             object.  See the description of <a href="#V2Btrees">v2 B-tree</a>
@@ -4917,9 +5313,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>Fractal Heap ID for Huge Objects (sub-type 3): directly accessed, non-filtered
         </caption>
 
@@ -4932,76 +5329,93 @@ TABLE.list TD { border:none; }
 
         <tr>
           <td>Version & Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Address <sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address <sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Length <sup>L</sup><br><br></td>
+          <td colspan="4"><br />Length <sup>L</sup><br /><br /></td>
         </tr>
 
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
         <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Version & Type</td>
+          <td><p>Version & Type</p></td>
           <td>
             <p>This is a bit field with the following definition:
-            <table class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>6-7</code></td>
+                  <td align="center"><code>6-7</code></td>
                   <td>The current version of ID format.  This document
                     describes version 0.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>4-5</code></td>
+                  <td align="center"><code>4-5</code></td>
                   <td>The ID type.  Huge objects have a value of <code>1</code>.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>0-3</code></td>
+                  <td align="center"><code>0-3</code></td>
                   <td>Reserved.
                   </td>
                 </tr>
-            </table>
-            </p>
+            </table></p>
+            
           </td>
         </tr>
 
         <tr>
-            <td>Address</td>
+            <td><p>Address</p></td>
             <td><p>This field is the address of the object in the file.</p>
             </td>
         </tr>
 
         <tr>
-            <td>Length</td>
+            <td><p>Length</p></td>
             <td><p>This field is the length of the object in the file.</p>
             </td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>Fractal Heap ID for Huge Objects (sub-type 4): directly accessed, filtered
         </caption>
 
@@ -5014,98 +5428,115 @@ TABLE.list TD { border:none; }
 
         <tr>
           <td>Version & Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Address <sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address <sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Length <sup>L</sup><br><br></td>
+          <td colspan="4"><br />Length <sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4>Filter Mask</td>
+          <td colspan="4">Filter Mask</td>
         </tr>
 
         <tr>
-          <td colspan=4><br>De-filtered Size <sup>L</sup><br><br></td>
+          <td colspan="4"><br />De-filtered Size <sup>L</sup><br /><br /></td>
         </tr>
 
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td>
+        </tr>
+        <tr>
+        <td> </td>
+        <td>(Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
         <tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Version & Type</td>
+          <td><p>Version & Type</p></td>
           <td>
             <p>This is a bit field with the following definition:
-            <table class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>6-7</code></td>
+                  <td align="center"><code>6-7</code></td>
                   <td>The current version of ID format.  This document
                     describes version 0.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>4-5</code></td>
+                  <td align="center"><code>4-5</code></td>
                   <td>The ID type.  Huge objects have a value of <code>1</code>.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>0-3</code></td>
+                  <td align="center"><code>0-3</code></td>
                   <td>Reserved.
                   </td>
                 </tr>
-            </table>
-            </p>
+            </table></p>
+            
           </td>
         </tr>
 
         <tr>
-            <td>Address</td>
+            <td><p>Address</p></td>
             <td><p>This field is the address of the filtered object in the file.</p>
         </td>
 	</tr>
 
 	<tr>
-	    <td>Length</td>
+	    <td><p>Length</p></td>
 	    <td><p>This field is the length of the filtered object in the file.</p>
 	    </td>
 	</tr>
 
 	<tr>
-	    <td>Filter Mask</td>
+	    <td><p>Filter Mask</p></td>
 	    <td><p>This field is the I/O pipeline filter mask for the 
 		filtered object in the file.</p>
 	    </td>
 	</tr>
 
 	<tr>
-	    <td>Filtered Size</td>
-	    <td><p>This field is the size of the de-flitered object in the file.</p>
+	    <td><p>Filtered Size</p></td>
+	    <td><p>This field is the size of the de-filtered object in the file.</p>
 	    </td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>Fractal Heap ID for Managed Objects
         </caption>
 
@@ -5118,90 +5549,81 @@ TABLE.list TD { border:none; }
 
         <tr>
           <td>Version & Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
         <tr>
-          <td colspan=4>Offset <em>(variable size)</em></td>
+          <td colspan="4">Offset <em>(variable size)</em></td>
         </tr>
 
         <tr>
-          <td colspan=4>Length <em>(variable size)</em></td>
+          <td colspan="4">Length <em>(variable size)</em></td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Version & Type</td>
-          <td>
-            <p>This is a bit field with the following definition:
-            <table class=list>
+          <td><p>Version & Type</p></td>
+          <td><p>This is a bit field with the following definition:
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>6-7</code></td>
+                  <td align="center"><code>6-7</code></td>
                   <td>The current version of ID format.  This document
                     describes version 0.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>4-5</code></td>
+                  <td align="center"><code>4-5</code></td>
                   <td>The ID type.  Managed objects have a value of <code>0</code>.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>0-3</code></td>
+                  <td align="center"><code>0-3</code></td>
                   <td>Reserved.
                   </td>
                 </tr>
-	    </table>
-            </p>
+            </table></p>
           </td>
         </tr>
 
         <tr>
-          <td>Offset</td>
-          <td>
-            <p>This field is the offset of the object in the heap.  This field's
-                size is the minimum number of bytes necessary to encode the
-                <em>Maximum Heap Size</em> value (from the <em>Fractal Heap
-                Header</em>).  For example, if the value of the <em>Maximum
-                Heap Size</em> is less than 256 bytes, this field is 1 byte
-                in length, a <em>Maximum Heap Size</em> of of 256-65535 bytes
-                uses a 2 byte length, etc.
-            </p>
-          </td>
+          <td><p>Offset</p></td>
+          <td><p>This field is the offset of the object in the heap. 
+          This field’s size is the minimum number of bytes 
+          necessary to encode the <em>Maximum Heap Size</em> value 
+          (from the <em>Fractal Heap Header</em>). For example, if the 
+          value of the <em>Maximum Heap Size</em> is less than 256 bytes, 
+          this field is 1 byte in length, a <em>Maximum Heap Size</em> 
+          of 256-65535 bytes uses a 2 byte length, and so on.</p></td>
         </tr>
 
         <tr>
-          <td>Length</td>
-          <td>
-            <p>This field is the length of the object in the heap.
-		It is determined by taking the minimum value of 
-		<em>Maximum Direct Block Size</em>
-		and <em>Maximum Size of Managed Objects</em> in the
-		<em>Fractal Heap Header</em>.  Again, the minimum number of
-                bytes needed to encode that value is used for the size of
-                this field.
-            </p>
-          </td>
+          <td><p>Length</p></td>
+          <td><p>This field is the length of the object in the heap. It 
+          is determined by taking the minimum value of <em>Maximum 
+          Direct Block Size</em> and <em>Maximum Size of Managed 
+          Objects</em> in the <em>Fractal Heap Header</em>. Again, 
+          the minimum number of bytes needed to encode that value is 
+          used for the size of this field.</p></td>
         </tr>
-
       </table>
     </div>
 
-    <br>
-    <h3><a name="FreeSpaceManager">Disk Format: Level 1G - Free-Space Manager</a></h3>
+<br />
+<h3><a name="FreeSpaceManager">
+III.G. Disk Format: Level 1G - Free-space Manager</a></h3>
 
         <p>
             Free-space managers are used to describe space within a heap or
@@ -5210,19 +5632,10 @@ TABLE.list TD { border:none; }
         </p>
 
         <p>
-            The superblock contains a pointer to a free-space managers for the
-            whole file, but that pointer is currently required to be the
-            <a href="#UndefinedAddress">undefined address</a>.
-        </p>
-
-
-        <p>
             The <em>free-space manager header</em> contains metadata information
             about the space being tracked, along with the address of the list
             of <em>free space sections</em> which actually describes the free
-            space.
-
-	    The header records information about free-space sections being
+            space. The header records information about free-space sections being
             tracked, creation parameters for handling free-space sections of a
             client, and section information used to locate the collection of
             free-space sections.
@@ -5239,11 +5652,10 @@ TABLE.list TD { border:none; }
             its own format, listed below.
         </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
-          Free-Space Manager Header
+          Free-space Manager Header
         </caption>
 
         <tr>
@@ -5254,81 +5666,97 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
           
         <tr>
           <td>Version</td>
           <td>Client ID</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Total Space Tracked<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Total Space Tracked<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Total Number of Sections<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Total Number of Sections<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Number of Serialized Sections<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Number of Serialized Sections<sup>L</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Number of Un-Serialized Sections<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Number of Un-Serialized Sections<sup>L</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Number of Section Classes</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Number of Section Classes</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
         <tr>
-          <td colspan=2>Shrink Percent</td>
-          <td colspan=2>Expand Percent</td>
+          <td colspan="2">Shrink Percent</td>
+          <td colspan="2">Expand Percent</td>
         </tr>
 
         <tr>
-          <td colspan=2>Size of Address Space</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2">Size of Address Space</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Maximum Section Size <sup>L</sup><br><br></td>
+          <td colspan="4"><br />Maximum Section Size <sup>L</sup><br /><br /></td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Address of Serialized Section List<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Address of Serialized Section List<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Size of Serialized Section List Used<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Size of Serialized Section List Used<sup>L</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Allocated Size of Serialized Section List<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Allocated Size of Serialized Section List<sup>L</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Checksum</td>
+	  <td colspan="4">Checksum</td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="35%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>FSHD</code>" is used to
-                indicate the beginning of the Free-Space Manager Header.
+            <p>The ASCII character string “<code>FSHD</code>” is used to
+                indicate the beginning of the Free-space Manager Header.
                 This gives file consistency checking utilities a better chance of
                 reconstructing a damaged file.
             </p>
@@ -5336,42 +5764,47 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
-            <p>This is the version number for the Free-Space Manager Header
+            <p>This is the version number for the Free-space Manager Header
 		and this document describes version 0.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Client ID</td>
+          <td><p>Client ID</p></td>
           <td>
             <p>This is the client ID for identifying the user of this
                 free-space manager:
-
-                <table class=list>
+                
+                <table class="list">
                     <tr>
-                      <th width="30%">ID</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">ID</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
-
+                    
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>Fractal heap
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1+</code></td>
+                      <td align="center"><code>1</code></td>
+                      <td>File
+                      </td>
+                    </tr>
+                    <tr>
+                      <td align="center"><code>2+</code></td>
                       <td>Reserved.
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
           </td>
         </tr>
 
 	<tr>
-          <td>Total Space Tracked</td>
+          <td><p>Total Space Tracked</p></td>
 	  <td>
             <p>This is the total amount of free space being tracked, in bytes.
             </p>
@@ -5379,7 +5812,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
         <tr>
-          <td>Total Number of Sections</td>
+          <td><p>Total Number of Sections</p></td>
           <td>
 	    <p>This is the total number of free-space sections being tracked.
             </p>
@@ -5387,7 +5820,7 @@ TABLE.list TD { border:none; }
         </tr>
 
 	<tr>
-	  <td>Number of Serialized Sections</td>
+	  <td><p>Number of Serialized Sections</p></td>
 	  <td>
 	    <p>This is the number of serialized free-space sections being
                 tracked.
@@ -5395,7 +5828,7 @@ TABLE.list TD { border:none; }
 	  </td>
 	</tr>
 	<tr>
-	  <td>Number of Un-Serialized Sections</td>
+	  <td><p>Number of Un-Serialized Sections</p></td>
 	  <td>
             <p>This is the number of un-serialized free-space sections being
                 managed.  Un-serialized sections are created by the free-space
@@ -5405,7 +5838,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Number of Section Classes</td>
+          <td><p>Number of Section Classes</p></td>
           <td>
 	    <p>This is the number of section classes handled by this free space
                 manager for the free-space client.
@@ -5414,7 +5847,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Shrink Percent</td>
+          <td><p>Shrink Percent</p></td>
           <td>
 	    <p>This is the percent of current size to shrink the allocated
                 serialized free-space section list.
@@ -5423,7 +5856,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Expand Percent</td>
+          <td><p>Expand Percent</p></td>
           <td>
 	    <p>This is the percent of current size to expand the allocated
                 serialized free-space section list.
@@ -5432,18 +5865,18 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Size of Address Space</td>
+          <td><p>Size of Address Space</p></td>
           <td>
             <p>This is the size of the address space that free-space sections
                 are within.  This is stored as the log<sub>2</sub> of the
-                actual value (i.e. the number of bits required to store values
-                within that address space).
+                actual value (in other words, the number of bits required 
+                to store values within that address space).
             </p>
           </td>
         </tr>
 
         <tr>
-          <td>Maximum Section Size</td>
+          <td><p>Maximum Section Size</p></td>
           <td>
             <p>This is the maximum size of a section to be tracked.
             </p>
@@ -5451,7 +5884,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Address of Serialized Section List</td>
+          <td><p>Address of Serialized Section List</p></td>
           <td>
             <p>This is the address where the serialized free-space section
                 list is stored.
@@ -5460,7 +5893,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Size of Serialized Section List Used</td>
+          <td><p>Size of Serialized Section List Used</p></td>
           <td>
             <p>This is the size of the serialized free-space section
                 list used (in bytes).  This value must be less than
@@ -5471,7 +5904,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Allocated Size of Serialized Section List</td>
+          <td><p>Allocated Size of Serialized Section List</p></td>
           <td>
             <p>This is the size of serialized free-space section list
                 actually allocated (in bytes).
@@ -5480,7 +5913,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for the free-space manager header.</p>
           </td>
@@ -5489,23 +5922,21 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <p>
-        The free-space sections being managed are stored in a <em>free-space
-        section list</em>, described below.  The sections in the <em>free-space
-        section list</em> are stored in the following way: a count of the
-        number of
-        sections describing a particular size of free space and the size of the
-        free-space desribed (in bytes), followed by a list of section
-        description records; then another section count & size, followed by
-        the list of section descriptions for that size; etc.
-    </p>
-
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <p>The free-space sections being managed are stored in a 
+    <em>free-space section list</em>, described below. The sections 
+    in the free-space section list are stored in the following way: 
+    a count of the number of sections describing a particular size of 
+    free space and the size of the free-space described (in bytes), 
+    followed by a list of section description records; then another 
+    section count and size, followed by the list of section 
+    descriptions for that size; and so on.</p>
+    
+    
+    <div align="center">
+      <table class="format">
         <caption>
-          Free-Space Section List
+          Free-space Section List
         </caption>
 
         <tr>
@@ -5516,159 +5947,168 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
         
         <tr>
           <td>Version</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Free-Space Manager Header Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Free-space Manager Header Address<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4>Number of Section Records in Set #0 <em>(variable size)</em></td>
+          <td colspan="4">Number of Section Records in Set #0 <em>(variable size)</em></td>
         </tr>
 
         <tr>
-          <td colspan=4>Size of Free-Space Section Described in Record Set #0 <em>(variable size)</em></td>
+          <td colspan="4">Size of Free-space Section Described in Record Set #0 <em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #0 Section Record #0 Offset<em>(variable size)</em></td>
+	  <td colspan="4">Record Set #0 Section Record #0 Offset<em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=1>Record Set #0 Section Record #0 Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="1">Record Set #0 Section Record #0 Type</td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #0 Section Record #0 Data <em>(variable size)</td>
+	  <td colspan="4">Record Set #0 Section Record #0 Data <em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>...</td>
+	  <td colspan="4">...</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #0 Section Record #K-1 Offset<em>(variable size)</em></td>
+	  <td colspan="4">Record Set #0 Section Record #K-1 Offset<em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=1>Record Set #0 Section Record #K-1 Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="1">Record Set #0 Section Record #K-1 Type</td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #0 Section Record #K-1 Data <em>(variable size)</td>
+	  <td colspan="4">Record Set #0 Section Record #K-1 Data <em>(variable size)</em></td>
 	</tr>
 
         <tr>
-          <td colspan=4>Number of Section Records in Set #1 <em>(variable size)</em></td>
+          <td colspan="4">Number of Section Records in Set #1 <em>(variable size)</em></td>
         </tr>
 
         <tr>
-          <td colspan=4>Size of Free-Space Section Described in Record Set #1 <em>(variable size)</em></td>
+          <td colspan="4">Size of Free-space Section Described in Record Set #1 <em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #1 Section Record #0 Offset<em>(variable size)</em></td>
+	  <td colspan="4">Record Set #1 Section Record #0 Offset<em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=1>Record Set #1 Section Record #0 Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="1">Record Set #1 Section Record #0 Type</td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #1 Section Record #0 Data <em>(variable size)</td>
+	  <td colspan="4">Record Set #1 Section Record #0 Data <em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>...</td>
+	  <td colspan="4">...</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #1 Section Record #K-1 Offset<em>(variable size)</em></td>
+	  <td colspan="4">Record Set #1 Section Record #K-1 Offset<em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=1>Record Set #1 Section Record #K-1 Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="1">Record Set #1 Section Record #K-1 Type</td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #1 Section Record #K-1 Data <em>(variable size)</td>
+	  <td colspan="4">Record Set #1 Section Record #K-1 Data <em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><strong>...</strong></td>
+	  <td colspan="4"><strong>...</strong></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><strong>...</strong></td>
+	  <td colspan="4"><strong>...</strong></td>
 	</tr>
 
         <tr>
-          <td colspan=4>Number of Section Records in Set #N-1 <em>(variable size)</em></td>
+          <td colspan="4">Number of Section Records in Set #N-1 <em>(variable size)</em></td>
         </tr>
 
         <tr>
-          <td colspan=4>Size of Free-Space Section Described in Record Set #N-1 <em>(variable size)</em></td>
+          <td colspan="4">Size of Free-space Section Described in Record Set #N-1 <em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #N-1 Section Record #0 Offset<em>(variable size)</em></td>
+	  <td colspan="4">Record Set #N-1 Section Record #0 Offset<em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=1>Record Set #N-1 Section Record #0 Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="1">Record Set #N-1 Section Record #0 Type</td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #N-1 Section Record #0 Data <em>(variable size)</td>
+	  <td colspan="4">Record Set #N-1 Section Record #0 Data <em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>...</td>
+	  <td colspan="4">...</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #N-1 Section Record #K-1 Offset<em>(variable size)</em></td>
+	  <td colspan="4">Record Set #N-1 Section Record #K-1 Offset<em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=1>Record Set #N-1 Section Record #K-1 Type</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="1">Record Set #N-1 Section Record #K-1 Type</td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Record Set #N-1 Section Record #K-1 Data <em>(variable size)</td>
+	  <td colspan="4">Record Set #N-1 Section Record #K-1 Data <em>(variable size)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Checksum</td>
+	  <td colspan="4">Checksum</td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="35%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>FSSE</code>" is used to
-                indicate the beginning of the Free-Space Section Information.
+            <p>The ASCII character string “<code>FSSE</code>” is used to
+                indicate the beginning of the Free-space Section Information.
                 This gives file consistency checking utilities a better chance of
                 reconstructing a damaged file.
             </p>
@@ -5676,17 +6116,17 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Version</td>
+          <td><p>Version</p></td>
           <td>
-            <p>This is the version number for the Free-Space Section List
+            <p>This is the version number for the Free-space Section List
 		and this document describes version 0.</p>
           </td>
         </tr>
 
         <tr>
-          <td>Free-Space Manager Header Address</td>
+          <td><p>Free-space Manager Header Address</p></td>
           <td>
-            <p>This is the address of the <em>Free-Space Manager Header</em>.
+            <p>This is the address of the <em>Free-space Manager Header</em>.
                 This field is principally used for file
                 integrity checking.
             </p>
@@ -5694,7 +6134,7 @@ TABLE.list TD { border:none; }
         </tr>
 
 	<tr>
-          <td>Number of Section Records for Set #N</td>
+          <td><p>Number of Section Records for Set #N</p></td>
 	  <td>
             <p>This is the number of free-space section records for set #N.
 		The length of this field is the minimum number of bytes needed
@@ -5711,7 +6151,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
         <tr>
-          <td>Section Size for Record Set #N</td>
+          <td><p>Section Size for Record Set #N</p></td>
           <td>
 	    <p>This is the size (in bytes) of the free-space section described
                 for <em>all</em> the section records in set #N.
@@ -5726,7 +6166,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Record Set #N Section #K Offset</td>
+          <td><p>Record Set #N Section #K Offset</p></td>
           <td>
 	    <p>This is the offset (in bytes) of the free-space section within
                 the client for the free-space manager.
@@ -5741,54 +6181,74 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Record Set #N Section #K Type</td>
+          <td><p>Record Set #N Section #K Type</p></td>
           <td>
 	    <p>This is the type of the section record, used to decode the
-                <em>record set #N section #K data</em> information.
-                Currently defined record types are:
+        <em>record set #N section #K data</em> information. The defined 
+        record type for <em>file</em> client is:
+        
+                <table class="list">
+                    <tr>
+                      <th width="20%" align="center">Type</th>
+                      <th width="80%" align="left">Description</th>
+                    </tr>
 
-                <table class=list>
                     <tr>
-                      <th width="30%">Type</th>
-                      <th align=left>Description</th>
+                      <td align="center"><code>0</code></td>
+                      <td>File’s section (a range of actual bytes in file)
+                      </td>
+                    </tr>
+                    <tr>
+                      <td align="center"><code>1+</code></td>
+                      <td>Reserved.
+                      </td>
+                    </tr>
+                </table></p>
+	    
+	    <p>The defined record types for a <em>fractal heap</em> client are:
+        
+                <table class="list">
+                    <tr>
+                      <th width="20%" align="center">Type</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
-                      <td>Fractal heap "single" section
+                      <td align="center"><code>0</code></td>
+                      <td>Fractal heap “single” section
                       </td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>1</code></td>
-                      <td>Fractal heap "first row" section
+                      <td align="center"><code>1</code></td>
+                      <td>Fractal heap “first row” section
                       </td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>2</code></td>
-                      <td>Fractal heap "normal row" section
+                      <td align="center"><code>2</code></td>
+                      <td>Fractal heap “normal row” section
                       </td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>3</code></td>
-                      <td>Fractal heap "indirect" section
+                      <td align="center"><code>3</code></td>
+                      <td>Fractal heap “indirect” section
                       </td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>4+</code></td>
+                      <td align="center"><code>4+</code></td>
                       <td>Reserved.
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
           </td>
         </tr>
 
         <tr>
-          <td>Record Set #N Section #K Data</td>
+          <td><p>Record Set #N Section #K Data</p></td>
           <td>
 	    <p>This is the section-type specific information for each record
                 in the record set, described below.
@@ -5797,81 +6257,82 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
-	    <p>This is the checksum for the <em>Free-Space Section List</em>.
+	    <p>This is the checksum for the <em>Free-space Section List</em>.
             </p>
           </td>
         </tr>
 
       </table>
-
-      
-
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘O’ in the above tables are
-            <br>
-            of the size specified in “Size of Offsets.”)
-        </td></tr>
-        <tr><td>
-            (Items marked with an ‘L’ the above tables are
-            <br>
-            of the size specified in “Size of Lengths.”)
-        </td></tr>
-      </table>
     </div>
 
-    <br>
+    <br />
     <p>
         The section-type specific data for each free-space section record is
         described below:
     </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
+        <caption>
+          File’s Section Data Record
+        </caption>
+
+        <tr>
+          <td colspan="4"><em>No additional record data stored</em></td>
+        </tr>
+      </table>
+    </div>
+
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
-          Fractal Heap "Single" Section Data Record
+          Fractal Heap “Single” Section Data Record
         </caption>
 
         <tr>
-          <td colspan=4><em>No additional record data stored</em></td>
+          <td colspan="4"><em>No additional record data stored</em></td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
-          Fractal Heap "First Row" Section Data Record
+          Fractal Heap “First Row” Section Data Record
         </caption>
 
         <tr>
-          <td colspan=4><em>Same format as "indirect" section data</em></td>
+          <td colspan="4"><em>Same format as “indirect” section data</em></td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
-          Fractal Heap "Normal Row" Section Data Record
+          Fractal Heap “Normal Row” Section Data Record
         </caption>
 
         <tr>
-          <td colspan=4><em>No additional record data stored</em></td>
+          <td colspan="4"><em>No additional record data stored</em></td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
-          Fractal Heap "Indirect" Section Data Record
+          Fractal Heap “Indirect” Section Data Record
         </caption>
 
         <tr>
@@ -5882,45 +6343,45 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Fractal Heap Indirect Block Offset <em>(variable size)</em></td>
+          <td colspan="4">Fractal Heap Indirect Block Offset <em>(variable size)</em></td>
         </tr>
 
         <tr>
-          <td colspan=2>Block Start Row</td>
-          <td colspan=2>Block Start Column</td>
+          <td colspan="2">Block Start Row</td>
+          <td colspan="2">Block Start Column</td>
         </tr>
 
         <tr>
-          <td colspan=2>Number of Blocks</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2">Number of Blocks</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Fractal Heap Block Offset</td>
+          <td><p>Fractal Heap Block Offset</p></td>
           <td>
-            <p>The offset of the indirect block in the fractal heap's address
+            <p>The offset of the indirect block in the fractal heap’s address
                 space containing the empty blocks.
             </p>
             <p>
                 The number of bytes used to encode this field is the minimum
                 number of bytes needed to encode values for the <em>Maximum
-                Heap Size</em> (in the fractal heap's header).
+                Heap Size</em> (in the fractal heap’s header).
             </p>
           </td>
         </tr>
           
         <tr>
-          <td>Block Start Row</td>
+          <td><p>Block Start Row</p></td>
           <td>
             <p>This is the row that the empty blocks start in.
 	    </p>
@@ -5928,7 +6389,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Block Start Column</td>
+          <td><p>Block Start Column</p></td>
           <td>
             <p>This is the column that the empty blocks start in.
 	    </p>
@@ -5936,7 +6397,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Number of Blocks</td>
+          <td><p>Number of Blocks</p></td>
           <td>
             <p>This is the number of empty blocks covered by the section.
 	    </p>
@@ -5945,8 +6406,9 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <h3><a name="SOHMTable">Disk Format: Level 1H - Shared Object Header Message Table</a></h3>
+<br />
+<h3><a name="SOHMTable">
+III.H. Disk Format: Level 1H - Shared Object Header Message Table</a></h3>
 
         <p>
             The <em>shared object header message table</em> is used to locate
@@ -5957,7 +6419,7 @@ TABLE.list TD { border:none; }
             <em>shared header message list</em> or indexed with a v2 B-tree.
             The shared messages themselves are either stored in a fractal
             heap (when two or more objects share the message), or remain in an
-            object's header (when only one object uses the message currently,
+            object’s header (when only one object uses the message currently,
             but the message can be shared in the future).
         </p>
 
@@ -5987,9 +6449,8 @@ TABLE.list TD { border:none; }
             in the table.
         </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Shared Object Header Message Table
         </caption>
@@ -6002,91 +6463,101 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
           
         <tr>
           <td>Version for index #0</td>
           <td>Index Type for index #0</td>
-          <td colspan=2>Message Type Flags for index #0</td>
+          <td colspan="2">Message Type Flags for index #0</td>
         </tr>
 
         <tr>
-          <td colspan=4>Minimum Message Size for index #0</td>
+          <td colspan="4">Minimum Message Size for index #0</td>
         </tr>
 
         <tr>
-          <td colspan=2>List Cutoff for index #0</td>
-          <td colspan=2>v2 B-tree Cutoff for index #0</td>
+          <td colspan="2">List Cutoff for index #0</td>
+          <td colspan="2">v2 B-tree Cutoff for index #0</td>
         </tr>
 
         <tr>
-          <td colspan=2>Number of Messages for index #0</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2">Number of Messages for index #0</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Index Address<sup>O</sup> for index #0<br><br></td>
+	  <td colspan="4"><br />Index Address<sup>O</sup> for index #0<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Fractal Heap Address<sup>O</sup> for index #0<br><br></td>
+	  <td colspan="4"><br />Fractal Heap Address<sup>O</sup> for index #0<br /><br /></td>
 	</tr>
 
         <tr>
-          <td colspan=4>...</td>
+          <td colspan="4">...</td>
 	</tr>
 
         <tr>
-          <td colspan=4>...</td>
+          <td colspan="4">...</td>
 	</tr>
 
         <tr>
           <td>Version for index #N-1</td>
           <td>Index Type for index #N-1</td>
-          <td colspan=2>Message Type Flags for index #N-1</td>
+          <td colspan="2">Message Type Flags for index #N-1</td>
         </tr>
 
         <tr>
-          <td colspan=4>Minimum Message Size for index #N-1</td>
+          <td colspan="4">Minimum Message Size for index #N-1</td>
         </tr>
 
         <tr>
-          <td colspan=2>List Cutoff for index #N-1</td>
-          <td colspan=2>v2 B-tree Cutoff for index #N-1</td>
+          <td colspan="2">List Cutoff for index #N-1</td>
+          <td colspan="2">v2 B-tree Cutoff for index #N-1</td>
         </tr>
 
         <tr>
-          <td colspan=2>Number of Messages for index #N-1</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2">Number of Messages for index #N-1</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Index Address<sup>O</sup> for index #N-1<br><br></td>
+	  <td colspan="4"><br />Index Address<sup>O</sup> for index #N-1<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Fractal Heap Address<sup>O</sup> for index #N-1<br><br></td>
+	  <td colspan="4"><br />Fractal Heap Address<sup>O</sup> for index #N-1<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Checksum</td>
+	  <td colspan="4">Checksum</td>
 	</tr>
       </table>
-    </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
-	<tr>
-          <th width="35%">Field Name</th>
-          <th>Description</th>
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
+    </div>
+
+    <br />
+    <div align="center">
+      <table class="desc">
+	<tr>
+          <th width="35%">Field Name</th>
+          <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>SMTB</code>" is used to
+            <p>The ASCII character string “<code>SMTB</code>” is used to
                 indicate the beginning of the Shared Object Header Message table.
                 This gives file consistency checking utilities a better chance of
                 reconstructing a damaged file.
@@ -6095,7 +6566,7 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Version for index #N</td>
+          <td><p>Version for index #N</p></td>
           <td>
             <p>This is the version number for the list of shared object header message
 		indexes and this document describes version 0.</p>
@@ -6103,7 +6574,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Index Type for index #N</td>
+          <td><p>Index Type for index #N</p></td>
           <td>
             <p>The type of index can be an unsorted list or a v2 B-tree.
             </p>
@@ -6111,48 +6582,48 @@ TABLE.list TD { border:none; }
         </tr>
 
 	<tr>
-          <td>Message Type Flags for index #N</td>
+          <td><p>Message Type Flags for index #N</p></td>
 	  <td>
             <p>This field indicates the type of messages tracked in the index,
                 as follows:
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Bits</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Bits</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>If set, the index tracks <em>Dataspace Messages</em>.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>If set, the message tracks <em>Datatype Messages</em>.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>If set, the message tracks <em>Fill Value Messages</em>.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>3</code></td>
+                      <td align="center"><code>3</code></td>
                       <td>If set, the message tracks <em>Filter Pipeline Messages</em>.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>4</code></td>
-                      <td>If set, the message tracksn <em>Attribute Messages</em>.
+                      <td align="center"><code>4</code></td>
+                      <td>If set, the message tracks <em>Attribute Messages</em>.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>5-15</code></td>
+                      <td align="center"><code>5-15</code></td>
                       <td>Reserved (zero).
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
 
             <p>
                 An index can track more than one type of message, but each type
@@ -6162,7 +6633,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
         <tr>
-          <td>Minimum Message Size for index #N</td>
+          <td><p>Minimum Message Size for index #N</p></td>
           <td>
 	    <p>This is the message size sharing threshold for the index.
 		If the encoded size of the message is less than this value, the
@@ -6172,16 +6643,16 @@ TABLE.list TD { border:none; }
         </tr>
 
 	<tr>
-	  <td>List Cutoff for index #N</td>
+	  <td><p>List Cutoff for index #N</p></td>
 	  <td>
-	    <p>This is is the cutoff value for the indexing of messages to
+	    <p>This is the cutoff value for the indexing of messages to
                 switch from a list to a v2 B-tree.  If the number of messages
                 is greater than this value, the index should be a v2 B-tree.
             </p>
 	  </td>
 	</tr>
 	<tr>
-	  <td>v2 B-tree Cutoff for index #N</td>
+	  <td><p>v2 B-tree Cutoff for index #N</p></td>
 	  <td>
             <p>This is is the cutoff value for the indexing of messages to 
 		switch from a v2 B-tree back to a list.  If the number of
@@ -6191,7 +6662,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Number of Messages for index #N</td>
+          <td><p>Number of Messages for index #N</p></td>
           <td>
 	    <p>The number of shared messages being tracked for the index.
             </p>
@@ -6199,7 +6670,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Index Address for index #N</td>
+          <td><p>Index Address for index #N</p></td>
           <td>
 	    <p>This field is the address of the list or v2 B-tree where the
                 index nodes reside.
@@ -6208,7 +6679,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Fractal Heap Address for index #N</td>
+          <td><p>Fractal Heap Address for index #N</p></td>
           <td>
 	    <p>This field is the address of the fractal heap if shared messages
                 are stored there.
@@ -6217,38 +6688,26 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for the table.</p>
           </td>
         </tr>
 
       </table>
-
-      
-
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘O’ in the above tables are
-            <br>
-            of the size specified in “Size of Offsets.”)
-        </td></tr>
-      </table>
     </div>
 
-
-    <br>
+    <br />
     <p>
         Shared messages are indexed either with a <em>shared message record
         list</em>, described below, or using a v2 B-tree (using record type 7).
         The number of records in the <em>shared message record list</em> is
-        determined in the index's entry in the <em>shared object header message
+        determined in the index’s entry in the <em>shared object header message
         table</em>.
     </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Shared Message Record List
         </caption>
@@ -6261,43 +6720,43 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4>Signature</td>
+          <td colspan="4">Signature</td>
         </tr>
           
         <tr>
-          <td colspan=4>Shared Message Record #0</td>
+          <td colspan="4">Shared Message Record #0</td>
         </tr>
 
         <tr>
-          <td colspan=4>Shared Message Record #1</td>
+          <td colspan="4">Shared Message Record #1</td>
         </tr>
 
         <tr>
-          <td colspan=4>...</td>
+          <td colspan="4">...</td>
         </tr>
 
         <tr>
-          <td colspan=4>Shared Message Record #N-1</td>
+          <td colspan="4">Shared Message Record #N-1</td>
         </tr>
 
         <tr>
-          <td colspan=4>Checksum</td>
+          <td colspan="4">Checksum</td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Signature</td>
+          <td><p>Signature</p></td>
           <td>
-            <p>The ASCII character string "<code>SMLI</code>" is used to
+            <p>The ASCII character string “<code>SMLI</code>” is used to
                 indicate the beginning of a list of index nodes.
                 This gives file consistency checking utilities a better chance of
                 reconstructing a damaged file.
@@ -6306,7 +6765,7 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Shared Message Record #N</td>
+          <td><p>Shared Message Record #N</p></td>
           <td>
             <p>The record for locating the shared message, either in the
                 fractal heap for the index, or an object header (see format for
@@ -6316,7 +6775,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for the list.
             </p>
@@ -6326,15 +6785,14 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
+    <br />
     <p>
         The record for each shared message in an index is stored in one of the
         following forms:
     </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
         <caption>
           Shared Message Record, for messages stored in a fractal heap
         </caption>
@@ -6348,33 +6806,33 @@ TABLE.list TD { border:none; }
 
         <tr>
           <td>Message Location</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
           
         <tr>
-          <td colspan=4>Hash Value</td>
+          <td colspan="4">Hash Value</td>
         </tr>
 
         <tr>
-          <td colspan=4>Reference Count</td>
+          <td colspan="4">Reference Count</td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Fractal Heap ID<br><br></td>
+          <td colspan="4"><br />Fractal Heap ID<br /><br /></td>
         </tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Message Location</td>
+          <td><p>Message Location</p></td>
           <td>
             <p>This has a value of 0 indicating that the message is stored in
                 the heap.
@@ -6383,7 +6841,7 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Hash Value</td>
+          <td><p>Hash Value</p></td>
           <td>
             <p>This is the hash value for the message.
 	    </p>
@@ -6391,7 +6849,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Reference Count</td>
+          <td><p>Reference Count</p></td>
           <td>
             <p>This is the number of times the message is used in the file.
             </p>
@@ -6399,7 +6857,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Fractal Heap ID</td>
+          <td><p>Fractal Heap ID</p></td>
           <td>
 	    <p>This is an 8-byte fractal heap ID for the message as stored in
                 the fractal heap for the index.
@@ -6409,9 +6867,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Shared Message Record, for messages stored in an object header
         </caption>
@@ -6425,35 +6884,45 @@ TABLE.list TD { border:none; }
 
         <tr>
           <td>Message Location</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
         </tr>
           
         <tr>
-          <td colspan=4>Hash Value</td>
+          <td colspan="4">Hash Value</td>
         </tr>
 
         <tr>
           <td>Reserved</td>
           <td>Message Type</td>
-          <td colspan=2>Creation Index</td>
+          <td colspan="2">Creation Index</td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Object Header Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Object Header Address<sup>O</sup><br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Message Location</td>
+          <td><p>Message Location</p></td>
           <td>
             <p>This has a value of 1 indicating that the message is stored in
                 an object header.
@@ -6462,7 +6931,7 @@ TABLE.list TD { border:none; }
         </tr>
           
         <tr>
-          <td>Hash Value</td>
+          <td><p>Hash Value</p></td>
           <td>
             <p>This is the hash value for the message.
 	    </p>
@@ -6470,7 +6939,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Message Type</td>
+          <td><p>Message Type</p></td>
           <td>
             <p>This is the message type in the object header.
             </p>
@@ -6478,7 +6947,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Creation Index</td>
+          <td><p>Creation Index</p></td>
           <td>
 	    <p>This is the creation index of the message within the object
                 header.
@@ -6487,7 +6956,7 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td>Object Header Address</td>
+          <td><p>Object Header Address</p></td>
           <td>
 	    <p>This is the address of the object header where the message is
                 located.
@@ -6497,14 +6966,17 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <BR>
-    <HR>
 
-    <h2><a name="DataObject">Disk Format: Level 2 - Data Objects </a></h2>
 
-    <p>Data objects contain the "real" user-visible information in the file.
+<br />
+<br />
+<hr />
+<h2><a name="DataObject">
+IV. Disk Format: Level 2 - Data Objects </a></h2>
+
+    <p>Data objects contain the “real” user-visible information in the file.
       These objects compose the scientific data and other information which
-      are generally thought of as "data" by the end-user.  All the
+      are generally thought of as “data” by the end-user.  All the
       other information in the file is provided as a framework for
       storing and accessing these data objects.
     </p>
@@ -6512,26 +6984,26 @@ TABLE.list TD { border:none; }
     <p>A data object is composed of header and data
       information.  The header information contains the information
       needed to interpret the data information for the object as
-      well as additional "metadata" or pointers to additional
-      "metadata" used to describe or annotate each object.
+      well as additional “metadata” or pointers to additional
+      “metadata” used to describe or annotate each object.
     </p>
 
-    <h3><a name="ObjectHeader">
-	Disk Format: Level 2A - Data Object Headers</a></h3>
+<br />
+<h3><a name="ObjectHeader">
+IV.A. Disk Format: Level 2A - Data Object Headers</a></h3>
 
     <p>The header information of an object is designed to encompass
-      all the information about an object, except for the data itself.
-      This information includes
-      the dataspace, datatype, information about how the data
-      is stored on disk (in external files, compressed, broken up in
-      blocks, etc.), as well as other information used by the library
-      to speed up access to the data objects or maintain a file's
-      integrity.  Information stored by user applications as attributes
-      is also stored in the object's header.  The header of each object is
-      not necessarily located immediately prior to the object's data in the
-      file and in fact may be located in any position in the file.  The order
-      of the messages in an object header is not significant.
-    </p>
+    all of the information about an object, except for the data itself. 
+    This information includes the dataspace, the datatype, information 
+    about how the data is stored on disk (in external files, compressed, 
+    broken up in blocks, and so on), as well as other information used 
+    by the library to speed up access to the data objects or maintain 
+    a file’s integrity. Information stored by user applications 
+    as attributes is also stored in the object’s header. The header 
+    of each object is not necessarily located immediately prior to the 
+    object’s data in the file and in fact may be located in any 
+    position in the file. The order of the messages in an object header 
+    is not significant.</p>
 
     <p>Object headers are composed of a prefix and a set of messages.  The
       prefix contains the information needed to interpret the messages and
@@ -6539,19 +7011,20 @@ TABLE.list TD { border:none; }
       the majority of the metadata about the object.
     </p>
 
-    <h3><a name="ObjectHeaderPrefix">
-	Disk Format: Level 2A1 - Data Object Header Prefix</a></h3>
+<br />
+<h3><a name="ObjectHeaderPrefix">
+IV.A.1. Disk Format: Level 2A1 - Data Object Header Prefix</a></h3>
 
-    <h4><a name="V1ObjectHeaderPrefix">
-	Version 1 Data Object Header Prefix</a></h4>
+<br />
+<h4><a name="V1ObjectHeaderPrefix">
+IV.A.1.a. Version 1 Data Object Header Prefix</a></h4>
 
     <p>Header messages are aligned on 8-byte boundaries for version 1 
         object headers.
     </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Version 1 Object Header
 	</caption>
@@ -6566,61 +7039,61 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Reserved (zero)</td>
-	  <td colspan=2>Total Number of Header Messages</td>
+	  <td colspan="2">Total Number of Header Messages</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Object Reference Count</td>
+	  <td colspan="4">Object Reference Count</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Object Header Size</td>
+	  <td colspan="4">Object Header Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Header Message Type #1</td>
-	  <td colspan=2>Size of Header Message Data #1</td>
+	  <td colspan="2">Header Message Type #1</td>
+	  <td colspan="2">Size of Header Message Data #1</td>
 	</tr>
 
 	<tr>
 	  <td>Header Message #1 Flags</td>
-	  <td colspan=3>Reserved (zero)</td>
+	  <td colspan="3">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Header Message Data #1<br><br></td>
+	  <td colspan="4"><br />Header Message Data #1<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Header Message Type #n</td>
-	  <td colspan=2>Size of Header Message Data #n</td>
+	  <td colspan="2">Header Message Type #n</td>
+	  <td colspan="2">Size of Header Message Data #n</td>
 	</tr>
 
 	<tr>
 	  <td>Header Message #n Flags</td>
-	  <td colspan=3>Reserved (zero)</td>
+	  <td colspan="3">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Header Message Data #n<br><br></td>
+	  <td colspan="4"><br />Header Message Data #n<br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
             <p>This value is used to determine the format of the
                 information in the object header.  When the format of the
@@ -6634,7 +7107,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Total Number of Header Messages</td>
+	  <td><p>Total Number of Header Messages</p></td>
 	  <td>
             <p>This value determines the total number of messages listed in
                 object headers for this object.  This value includes the messages
@@ -6644,18 +7117,18 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Object Reference Count</td>
+	  <td><p>Object Reference Count</p></td>
 	  <td>
-            <p>This value specifies the number of "hard links" to this object
+            <p>This value specifies the number of “hard links” to this object
                 within the current file.  References to the object from external
-                files, "soft links" in this file and object references in this
+                files, “soft links” in this file and object references in this
                 file are not tracked.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Object Header Size</td>
+	  <td><p>Object Header Size</p></td>
 	  <td>
             <p>This value specifies the number of bytes of header message data
                 following this length field that contain object header messages
@@ -6667,7 +7140,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Header Message #n Type</td>
+	  <td><p>Header Message #n Type</p></td>
 	  <td>
             <p>This value specifies the type of information included in the
                 following header message data.  The message types for 
@@ -6677,7 +7150,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Size of Header Message #n Data</td>
+	  <td><p>Size of Header Message #n Data</p></td>
 	  <td>
             <p>This value specifies the number of bytes of header
                 message data following the header message type and length
@@ -6689,23 +7162,23 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Header Message #n Flags</td>
+	  <td><p>Header Message #n Flags</p></td>
 	  <td>
             <p>This is a bit field with the following definition:
-            <table class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>If set, the message data is constant.  This is used
                     for messages like the datatype message of a dataset.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>If set, the message is <em>shared</em> and stored 
                     in another location than the object header.  The Header
                     Message Data field contains a Shared Message
@@ -6716,29 +7189,32 @@ TABLE.list TD { border:none; }
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>2</code></td>
+                  <td align="center"><code>2</code></td>
                   <td>If set, the message should not be shared.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>3</code></td>
+                  <td align="center"><code>3</code></td>
                   <td>If set, the HDF5 decoder should fail to open this object
-                    if it doesn't understand the message's type.  (Normally,
-                    unknown messages should can be ignored by HDF5 decoders)
+                    if it does not understand the message’s type and the file
+                    is open with permissions allowing write access to the file.
+                    (Normally, unknown messages can just be ignored by HDF5
+                    decoders)
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>4</code></td>
+                  <td align="center"><code>4</code></td>
                   <td>If set, the HDF5 decoder should set bit 5 of this
-                    message's flags (this bit-field) if it doesn't understand
-                    the message's type and the object is modified in any way.
-                    (Normally, unknown messages can just be ignored by HDF5
+                    message’s flags (in other words, this bit field) 
+                    if it does not understand the message’s type 
+                    and the object is modified in any way. (Normally, 
+                    unknown messages can just be ignored by HDF5
                     decoders)
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>5</code></td>
-                  <td>If set, this object was modified by software that didn't
+                  <td align="center"><code>5</code></td>
+                  <td>If set, this object was modified by software that did not
                     understand this message.
                     (Normally, unknown messages should just be ignored by HDF5
                     decoders)  (Can be used to invalidate an index or a similar
@@ -6746,27 +7222,31 @@ TABLE.list TD { border:none; }
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>6</code></td>
+                  <td align="center"><code>6</code></td>
                   <td>If set, this message is shareable.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>7</code></td>
-                  <td><em>Reserved</em></td>
+                  <td align="center"><code>7</code></td>
+                  <td>If set, the HDF5 decoder should always fail to open this
+                    object if it does not understand the message’s type (whether
+                    it is open for read-only or read-write access).  (Normally,
+                    unknown messages can just be ignored by HDF5 decoders)
+                  </td>
                 </tr>
-	    </table>
-            </p>
+	    </table></p>
+            
           </td>
         </tr>
 
 	<tr>
-	  <td>Header Message #n Data</td>
+	  <td><p>Header Message #n Data</p></td>
 	  <td>
             <p>The format and length of this field is determined by the
                 header message type and size respectively.  Some header
                 message types do not require any data and this information
                 can be eliminated by setting the length of the message to
-                zero. The data is padded with enough zeros to make the
+                zero. The data is padded with enough zeroes to make the
                 size a multiple of eight.
             </p>
           </td>
@@ -6774,21 +7254,21 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <h4><a name="V2ObjectHeaderPrefix">
-	Version 2 Data Object Headers</a></h4>
+<br />
+<h4><a name="V2ObjectHeaderPrefix">
+IV.A.1.b. Version 2 Data Object Header Prefix</a></h4>
 
-    <p>Note that the "total number of messages" field has been dropped from
-        the data object header prefix in this version.  The number is messages
+    <p>Note that the “total number of messages” field has been dropped from
+        the data object header prefix in this version.  The number of messages
         in the data object header is just determined by the messages encountered
-        in all the object header blocks.
+        in all the object header blocks.</p>
 
     <p>Note also that the fields and messages in this version of data object
         headers have <em>no</em> alignment or padding bytes inserted - they are 
-        stored packed together.
+        stored packed together.</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Version 2 Object Header
 	</caption>
@@ -6801,96 +7281,96 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Signature</td>
+	  <td colspan="4">Signature</td>
 	</tr>
 	<tr>
 	  <td>Version</td>
 	  <td>Flags</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Access time <em>(optional)</em></td>
+	  <td colspan="4">Access time <em>(optional)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Modification Time <em>(optional)</em></td>
+	  <td colspan="4">Modification Time <em>(optional)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Change Time <em>(optional)</em></td>
+	  <td colspan="4">Change Time <em>(optional)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Birth Time <em>(optional)</em></td>
+	  <td colspan="4">Birth Time <em>(optional)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Maximum # of compact attributes <em>(optional)</em></td>
-	  <td colspan=2>Minimum # of dense attributes <em>(optional)</em></td>
+	  <td colspan="2">Maximum # of compact attributes <em>(optional)</em></td>
+	  <td colspan="2">Minimum # of dense attributes <em>(optional)</em></td>
 	</tr>
 
 	<tr>
 	  <td>Size of Chunk #0 <em>(variable size)</em></td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
 	  <td>Header Message Type #1</td>
-	  <td colspan=2>Size of Header Message Data #1</td>
+	  <td colspan="2">Size of Header Message Data #1</td>
 	  <td>Header Message #1 Flags</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Header Message #1 Creation Order <em>(optional)</em></td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Header Message #1 Creation Order <em>(optional)</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Header Message Data #1<br><br></td>
+	  <td colspan="4"><br />Header Message Data #1<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
 	</tr>
 
 	<tr>
 	  <td>Header Message Type #n</td>
-	  <td colspan=2>Size of Header Message Data #n</td>
+	  <td colspan="2">Size of Header Message Data #n</td>
 	  <td>Header Message #n Flags</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Header Message #n Creation Order <em>(optional)</em></td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Header Message #n Creation Order <em>(optional)</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Header Message Data #n<br><br></td>
+	  <td colspan="4"><br />Header Message Data #n<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Gap <em>(optional, variable size)</em></td>
+	  <td colspan="4">Gap <em>(optional, variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Checksum</td>
+	  <td colspan="4">Checksum</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Signature</td>
+	  <td><p>Signature</p></td>
 	  <td>
-            <p>The ASCII character string "<code>OHDR</code>"
+            <p>The ASCII character string “<code>OHDR</code>”
                 is used to indicate the
                 beginning of an object header.  This gives file consistency
                 checking utilities a better chance of reconstructing a
@@ -6900,7 +7380,7 @@ TABLE.list TD { border:none; }
 	</tr>
 	
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
             <p>This field has a value of 2 indicating version 2 of the object header.
             </p>
@@ -6908,82 +7388,82 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Flags</td>
+	  <td><p>Flags</p></td>
 	  <td>
-            <p>This field is a bit-field indicating additional information
+            <p>This field is a bit field indicating additional information
                 about the object header.
-            <table class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit(s)</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit(s)</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0-1</code></td>
+                  <td align="center"><code>0-1</code></td>
                   <td>This two bit field determines the size of the
                     <em>Size of Chunk #0</em> field.  The values are:
-                    <table class=list>
+                    <table class="list">
                         <tr>
-                          <th width="30%">Value</th>
-                          <th align=left>Description</th>
+                          <th width="20%" align="center">Value</th>
+                          <th width="80%" align="left">Description</th>
                         </tr>
 
                         <tr>
-                          <td align=center><code>0</code></td>
+                          <td align="center"><code>0</code></td>
                           <td>The <em>Size of Chunk #0</em> field is 1 byte.
                           </td>
                         </tr>
                         <tr>
-                          <td align=center><code>1</code></td>
+                          <td align="center"><code>1</code></td>
                           <td>The <em>Size of Chunk #0</em> field is 2 bytes.
                           </td>
                         </tr>
                         <tr>
-                          <td align=center><code>2</code></td>
+                          <td align="center"><code>2</code></td>
                           <td>The <em>Size of Chunk #0</em> field is 4 bytes.
                           </td>
                         </tr>
                         <tr>
-                          <td align=center><code>3</code></td>
+                          <td align="center"><code>3</code></td>
                           <td>The <em>Size of Chunk #0</em> field is 8 bytes.
                           </td>
                         </tr>
-                    </table>
+                    </table></p>
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>2</code></td>
+                  <td align="center"><code>2</code></td>
                   <td>If set, attribute creation order is tracked.</td>
                 </tr>
                 <tr>
-                  <td align=center><code>3</code></td>
+                  <td align="center"><code>3</code></td>
                   <td>If set, attribute creation order is indexed.</td>
                 </tr>
                 <tr>
-                  <td align=center><code>4</code></td>
+                  <td align="center"><code>4</code></td>
                   <td>If set, non-default attribute storage phase change
                       values are stored.</td>
                 </tr>
                 <tr>
-                  <td align=center><code>5</code></td>
+                  <td align="center"><code>5</code></td>
                   <td>If set, access, modification, change and birth times
                       are stored.</td>
                 </tr>
                 <tr>
-                  <td align=center><code>6-7</code></td>
+                  <td align="center"><code>6-7</code></td>
                   <td>Reserved</td>
                 </tr>
-	    </table>
-            </p>
+	    </table></p>
+            
           </td>
 	</tr>
 
 	<tr>
-	  <td>Access Time</td>
+	  <td><p>Access Time</p></td>
 	  <td>
             <p>This 32-bit value represents the number of seconds after the
-                UNIX epoch when the object's raw data was last accessed (i.e.
-                read or written).
+                UNIX epoch when the object’s raw data was last accessed 
+                (in other  words, read or written).
             </p>
 	    <p>This field is present if bit 5 of <em>flags</em> is set.
             </p>
@@ -6991,11 +7471,11 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Modification Time</td>
+	  <td><p>Modification Time</p></td>
 	  <td>
-            <p>This 32-bit value represents the number of seconds after the
-                UNIX epoch when the object's raw data was last modified (i.e.
-                written).
+            <p>This 32-bit value represents the number of seconds after 
+            the UNIX epoch when the object’s raw data was last 
+            modified (in other words, written).
             </p>
 	    <p>This field is present if bit 5 of <em>flags</em> is set.
             </p>
@@ -7003,10 +7483,10 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Change Time</td>
+	  <td><p>Change Time</p></td>
 	  <td>
             <p>This 32-bit value represents the number of seconds after the
-                UNIX epoch when the object's metadata was last changed.
+                UNIX epoch when the object’s metadata was last changed.
             </p>
 	    <p>This field is present if bit 5 of <em>flags</em> is set.
             </p>
@@ -7014,7 +7494,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Birth Time</td>
+	  <td><p>Birth Time</p></td>
 	  <td>
             <p>This 32-bit value represents the number of seconds after the
                 UNIX epoch when the object was created.
@@ -7025,7 +7505,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Maximum # of compact attributes</td>
+	  <td><p>Maximum # of compact attributes</p></td>
 	  <td>
             <p>This is the maximum number of attributes to store in the compact
                 format before switching to the indexed format.
@@ -7036,7 +7516,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Minimum # of dense attributes</td>
+	  <td><p>Minimum # of dense attributes</p></td>
 	  <td>
             <p>This is the minimum number of attributes to store in the indexed
                 format before switching to the compact format.
@@ -7047,7 +7527,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Size of Chunk #0</td>
+	  <td><p>Size of Chunk #0</p></td>
 	  <td>
             <p>
                This unsigned value specifies the number of bytes of header
@@ -7066,7 +7546,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Header Message #n Type</td>
+	  <td><p>Header Message #n Type</p></td>
 	  <td>
             <p>Same format as version 1 of the object header, described above.
             </p>
@@ -7074,7 +7554,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Size of Header Message #n Data</td>
+	  <td><p>Size of Header Message #n Data</p></td>
 	  <td>
             <p>This value specifies the number of bytes of header
                 message data following the header message type and length
@@ -7085,7 +7565,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Header Message #n Flags</td>
+	  <td><p>Header Message #n Flags</p></td>
 	  <td>
             <p>Same format as version 1 of the object header, described above.
             </p>
@@ -7093,7 +7573,7 @@ TABLE.list TD { border:none; }
         </tr>
 
 	<tr>
-	  <td>Header Message #n Creation Order</td>
+	  <td><p>Header Message #n Creation Order</p></td>
 	  <td>
             <p>This field stores the order that a message of a given type
                 was created in.
@@ -7104,7 +7584,7 @@ TABLE.list TD { border:none; }
         </tr>
 
 	<tr>
-	  <td>Header Message #n Data</td>
+	  <td><p>Header Message #n Data</p></td>
 	  <td>
             <p>Same format as version 1 of the object header, described above.
             </p>
@@ -7112,24 +7592,24 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Gap</td>
+	  <td><p>Gap</p></td>
 	  <td>
             <p>A gap in an object header chunk is inferred by the end of the
-                messages for the chunk before the beginning of the chunk's
+                messages for the chunk before the beginning of the chunk’s
                 checksum.  Gaps are always smaller than the size of an
                 object header message prefix (message type + message size +
                 message flags).
             </p>
             <p>Gaps are formed when a message (typically an attribute message)
                 in an earlier chunk is deleted and a message from a later
-                chunk that doesn't quite fit into the free space is moved
+                chunk that does not quite fit into the free space is moved
                 into the earlier chunk.
             </p>
           </td>
 	</tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for the object header chunk.
             </p>
@@ -7139,7 +7619,7 @@ TABLE.list TD { border:none; }
     </div>
 
     <p>The header message types and the message data associated with
-      them compose the critical "metadata" about each object.  Some
+      them compose the critical “metadata” about each object.  Some
       header messages are required for each object while others are
       optional.  Some optional header messages may also be repeated
       several times in the header itself, the requirements and number
@@ -7147,10 +7627,10 @@ TABLE.list TD { border:none; }
       message description below.
     </p>
 
-    <hr>
 
-    <h3><a name="ObjectHeaderMessages">
-	Disk Format: Level 2A2 - Data Object Header Messages</a></h3>
+<br />
+<h3><a name="ObjectHeaderMessages">
+IV.A.2. Disk Format: Level 2A2 - Data Object Header Messages</a></h3>
 
     <p>Data object header messages are small pieces of metadata that are
       stored in the data object header for each object in an HDF5 file.
@@ -7169,90 +7649,101 @@ TABLE.list TD { border:none; }
       for the message.
     </p>
 
-    <p class="item">
-    The format of shared message data is described here:
-    <br>
-    <div align=center>
-      <table class=format>
+    <p>
+    The format of shared message data is described here:</p>
+
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Shared Message (Version 1)
 	</caption>
 
 	<tr>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
 	</tr>
 
 	<tr>
 	  <td>Version</td>
 	  <td>Type</td>
-	  <td colspan=2>Reserved (zero)</td>
+	  <td colspan="2">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Reserved (zero)</td>
+	  <td colspan="4">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Address<sup>O</sup><br /><br /></td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number is used when there are changes in the format
-            of a shared object message and is described here:</p>
-	    <table class=list>
+            of a shared object message and is described here:
+	    <table class="list">
 	      <tr>
-		<th width="30%">Version</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Version</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
+		<td align="center"><code>0</code></td>
 		<td>Never used.</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1</code></td>
+		<td align="center"><code>1</code></td>
 		<td>Used by the library before version 1.6.1.
                 </td>
 	      </tr>
-	    </table>
+	    </table></p>
+        </td>
 	</tr>
 
 	<tr>
-	  <td>Type</td>
+	  <td><p>Type</p></td>
 	  <td><p>The type of shared message location:
-	    <table class=list>
+	    <table class="list">
 	      <tr>
-		<th width="30%">Value</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Value</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
-		<td>Message stored in another object's header (a <em>committed</em>
+		<td align="center"><code>0</code></td>
+		<td>Message stored in another object’s header (a <em>committed</em>
                     message).
                 </td>
 	      </tr>
-	    </table>
+	    </table></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Address</td>
+	  <td><p>Address</p></td>
 	  <td><p>The address of the object header
             containing the message to be shared.</p>
           </td>
@@ -7260,234 +7751,256 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Shared Message (Version 2)
 	</caption>
 
 	<tr>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
 	</tr>
 
 	<tr>
 	  <td>Version</td>
 	  <td>Type</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Address<sup>O</sup><br /><br /></td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number is used when there are changes in the format
-            of a shared object message and is described here:</p>
-	    <table class=list>
+            of a shared object message and is described here:
+	    <table class="list">
 	      <tr>
-		<th width="30%">Version</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Version</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>2</code></td>
+		<td align="center"><code>2</code></td>
 		<td>Used by the library of version 1.6.1 and after.
                 </td>
 	      </tr>
-	    </table>
+	    </table></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Type</td>
+	  <td><p>Type</p></td>
 	  <td><p>The type of shared message location:
-	    <table class=list>
+	    <table class="list">
 	      <tr>
-		<th width="30%">Value</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Value</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
-		<td>Message stored in another object's header (a <em>committed</em>
+		<td align="center"><code>0</code></td>
+		<td>Message stored in another object’s header (a <em>committed</em>
                     message).
                 </td>
 	      </tr>
-	    </table>
+	    </table></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Address</td>
+	  <td><p>Address</p></td>
 	  <td><p>The address of the object header
             containing the message to be shared.</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Shared Message (Version 3)
 	</caption>
 
 	<tr>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
 	</tr>
 
 	<tr>
 	  <td>Version</td>
 	  <td>Type</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Location <em>(variable size)</em></td>
+	  <td colspan="4">Location <em>(variable size)</em></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number indicates changes in the format of shared 
-	    object message and is described here:</p>
-	    <table class=list>
+	    object message and is described here:
+	    <table class="list">
 	      <tr>
-		<th width="30%">Version</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Version</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>3</code></td>
+		<td align="center"><code>3</code></td>
 		<td>Used by the library of version 1.8 and after.  In this
                     version, the <em>Type</em> field can indicate that
                     the message is stored in the fractal heap.
                 </td>
 	      </tr>
-	    </table>
+	    </table></p>
+        </td>
 	</tr>
 
 	<tr>
-	  <td>Type</td>
+	  <td><p>Type</p></td>
 	  <td><p>The type of shared message location:
-	    <table class=list>
+	    <table class="list">
 	      <tr>
-		<th width="30%">Value</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Value</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
-		<td>Message is not shared and is not sharable..
+		<td align="center"><code>0</code></td>
+		<td>Message is not shared and is not shareable.
                 </td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1</code></td>
-		<td>Message stored in file's <em>shared object header message</em>
+		<td align="center"><code>1</code></td>
+		<td>Message stored in file’s <em>shared object header message</em>
                     heap (a <em>shared</em> message).
                 </td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>2</code></td>
-		<td>Message stored in another object's header (a <em>committed</em>
+		<td align="center"><code>2</code></td>
+		<td>Message stored in another object’s header (a <em>committed</em>
                     message).
                 </td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>3</code></td>
+		<td align="center"><code>3</code></td>
 		<td>Message stored is not shared, but is sharable.
                 </td>
 	      </tr>
 
-	    </table>
+	    </table></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Location</td>
+	  <td><p>Location</p></td>
 	  <td><p>This field contains either a <em>Size of Offsets</em>-bytes
             address of the object header
             containing the message to be shared, or an 8-byte fractal heap ID
-            for the message in the file's <em>shared object header message</em>
+            for the message in the file’s <em>shared object header message</em>
             heap.
 	    </p>
           </td>
 	</tr>
       </table>
     </div>
-    </p>
+    
 
     <p>The following is a list of currently defined header messages:
     </p>
 
-    <hr>
-    <h4><a name="NILMessage">Name: NIL</a></h4>
-
-    <p class="item"><b>Header Message Type: </b>0x0000
-    </p>
-    <p class="item"><b>Length:</b> varies
-    </p>
-    <p class="item"><b>Status:</b> Optional, may be repeated.
-    </p>
-    <p class="item"><b>Purpose and Description:</b> The NIL message is used to indicate a
-        message which is to be ignored when reading the header messages for a
-        data object.  [Possibly one which has been deleted for some reason.]
-    </p>
-    <p class="item"><b>Format of Data:</b> Unspecified.
-    </p>
+<br />
+<h4><a name="NILMessage">IV.A.2.a. The NIL Message</a></h4>
 
-    <hr>
-    <h4><a name="DataspaceMessage">Name: Dataspace</a></h4>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> NIL</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0000</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may be repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>The NIL message is used to indicate a message which is to be 
+      ignored when reading the header messages for a data object. 
+      [Possibly one which has been deleted for some reason.]
+    </td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> Unspecified</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
 
-    <p class="item"><b>Header Message Type: </b>0x0001
-    </p>
-    <p class="item"><b>Length:</b> Varies according to the number of dimensions, 
-      as described in the following table.
-    </p>
-    <p class="item"><b>Status:</b> Required for dataset objects, may not be
-        repeated.
-    </p>
-    <p class="item"><b>Description:</b> The dataspace message describes the
-        number of dimensions (i.e. "rank") and size of each dimension that the
-        data object has.  This message is only used for datasets which have a
-        simple, rectilinear, array-like layout; datasets requiring a more
-        complex layout are not yet supported.
-    </p>
+<br />
+<h4><a name="DataspaceMessage">IV.A.2.b. The Dataspace Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Dataspace</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0001</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies according to the number of 
+      dimensions, as described in the following table.</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Required for dataset objects; 
+      may not be repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>The dataspace message describes the number of dimensions (in 
+      other words, “rank”) and size of each dimension that 
+      the data object has. This message is only used for datasets which 
+      have a simple, rectilinear, array-like layout; datasets requiring 
+      a more complex layout are not yet supported.
+    </td>
+    </tr>
+    
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Dataspace Message - Version 1
 	</caption>
@@ -7507,48 +8020,58 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Reserved</td>
+	  <td colspan="4">Reserved</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Dimension #1 Size<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Dimension #1 Size<sup>L</sup><br /><br /></td>
+    </tr>
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
+	</tr>
 	<tr>
-	  <td colspan=4><br>Dimension #n Size<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Dimension #n Size<sup>L</sup><br /><br /></td>
+	</tr>
 	<tr>
-	  <td colspan=4><br>Dimension #1 Maximum Size<sup>L</sup> <em>(optional)</em><br><br></td>
+	  <td colspan="4"><br />Dimension #1 Maximum Size<sup>L</sup> <em>(optional)</em><br /><br /></td>
+	</tr>
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
+	</tr>
 	<tr>
-	  <td colspan=4><br>Dimension #n Maximum Size<sup>L</sup> <em>(optional)</em><br><br></td>
+	  <td colspan="4"><br />Dimension #n Maximum Size<sup>L</sup> <em>(optional)</em><br /><br /></td>
+	</tr>
 	<tr>
-	  <td colspan=4><br>Permutation Index #1<sup>L</sup> <em>(optional)</em><br><br></td>
+	  <td colspan="4"><br />Permutation Index #1<sup>L</sup> <em>(optional)</em><br /><br /></td>
+	</tr>
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
+	</tr>
 	<tr>
-	  <td colspan=4><br>Permutation Index #n<sup>L</sup> <em>(optional)</em><br><br></td>
-      </table>
+	  <td colspan="4"><br />Permutation Index #n<sup>L</sup> <em>(optional)</em><br /><br /></td>
+    </tr>
+	  </table>
 
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘L’ the above table are
-            <br>
-            of the size specified in “Size of Lengths.”)
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
         </td></tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
             <p>This value is used to determine the format of the
 	    Dataspace Message.  When the format of the
@@ -7562,7 +8085,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dimensionality</td>
+	  <td><p>Dimensionality</p></td>
 	  <td>
             <p>This value is the number of dimensions that the data
 	    object has.
@@ -7571,7 +8094,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Flags</td>
+	  <td><p>Flags</p></td>
 	  <td>
             <p>This field is used to store flags to indicate the
 	    presence of parts of this message.  Bit 0 (the least
@@ -7583,7 +8106,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Size</td>
+	  <td><p>Dimension #n Size</p></td>
 	  <td>
             <p>This value is the current size of the dimension of the
 	    data as stored in the file.  The first dimension stored in
@@ -7595,20 +8118,20 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Maximum Size</td>
+	  <td><p>Dimension #n Maximum Size</p></td>
 	  <td>
             <p>This value is the maximum size of the dimension of the
 	    data as stored in the file.  This value may be the special
-            "<a href="#UnlimitedDim">unlimited</a>" size which indicates
+            “<a href="#UnlimitedDim">unlimited</a>” size which indicates
 	    that the data may expand along this dimension indefinitely.
             If these values are not stored, the maximum size of each
-            dimension is assumed to be the dimension's current size.
+            dimension is assumed to be the dimension’s current size.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Permutation Index #n</td>
+	  <td><p>Permutation Index #n</p></td>
 	  <td>
             <p>This value is the index permutation used to map
 	    each dimension from the canonical representation to an
@@ -7622,13 +8145,15 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    </p>
+    
 
-    <p>Version 2 of the dataspace message dropped the optional permutation
-        index value support, as it was never implemented in the HDF5 library:
+    <br />
+    <p>Version 2 of the dataspace message dropped the optional 
+    permutation index value support, as it was never implemented in the 
+    HDF5 Library:</p>
 
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Dataspace Message - Version 2
 	</caption>
@@ -7648,48 +8173,55 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Dimension #1 Size<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Dimension #1 Size<sup>L</sup><br /><br /></td>
+      </tr>
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
+      </tr>
 	<tr>
-	  <td colspan=4><br>Dimension #n Size<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Dimension #n Size<sup>L</sup><br /><br /></td>
+      </tr>
 	<tr>
-	  <td colspan=4><br>Dimension #1 Maximum Size<sup>L</sup> <em>(optional)</em><br><br></td>
+	  <td colspan="4"><br />Dimension #1 Maximum Size<sup>L</sup> <em>(optional)</em><br /><br /></td>
+      </tr>
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
+      </tr>
 	<tr>
-	  <td colspan=4><br>Dimension #n Maximum Size<sup>L</sup> <em>(optional)</em><br><br></td>
+	  <td colspan="4"><br />Dimension #n Maximum Size<sup>L</sup> <em>(optional)</em><br /><br /></td>
+      </tr>
       </table>
 
-      <table class=note>
-        <tr><td>
-            (Items marked with an ‘L’ the above table are
-            <br>
-            of the size specified in “Size of Lengths.”)
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
         </td></tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
             <p>This value is used to determine the format of the
-                Dataspace Message.  This field should be '2' for version 2
+                Dataspace Message.  This field should be ‘2’ for version 2
                 format messages.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Dimensionality</td>
+	  <td><p>Dimensionality</p></td>
 	  <td>
             <p>This value is the number of dimensions that the data object has.
             </p>
@@ -7697,7 +8229,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Flags</td>
+	  <td><p>Flags</p></td>
 	  <td>
             <p>This field is used to store flags to indicate the
                 presence of parts of this message.  Bit 0 (the least
@@ -7708,39 +8240,40 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Type</td>
+	  <td><p>Type</p></td>
 	  <td>
             <p>This field indicates the type of the dataspace:
-            <table class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
-                  <td>A <em>scalar</em> dataspace, i.e. a dataspace with a
-                    single, dimensionless element.
+                  <td align="center"><code>0</code></td>
+                  <td>A <em>scalar</em> dataspace; in other words, 
+                  a dataspace with a single, dimensionless element.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>1</code></td>
-                  <td>A <em>simple</em> dataspace, i.e. a dataspace with a
-                    a rank > 0 and an appropriate # of dimensions.
+                  <td align="center"><code>1</code></td>
+                  <td>A <em>simple</em> dataspace; in other words, 
+                  a dataspace with a rank > 0 and an appropriate # of 
+                  dimensions.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>2</code></td>
-                  <td>A <em>null</em> dataspace, i.e. a dataspace with no
-                    elements.
+                  <td align="center"><code>2</code></td>
+                  <td>A <em>null</em> dataspace; in other words, 
+                  a dataspace with no elements.
                   </td>
                 </tr>
-            </table>
+            </table></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Size</td>
+	  <td><p>Dimension #n Size</p></td>
 	  <td>
             <p>This value is the current size of the dimension of the
                 data as stored in the file.  The first dimension stored in
@@ -7752,14 +8285,14 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Maximum Size</td>
+	  <td><p>Dimension #n Maximum Size</p></td>
 	  <td>
             <p>This value is the maximum size of the dimension of the
                 data as stored in the file.  This value may be the special
-                "<a href="#UnlimitedDim">unlimited</a>" size which indicates
+                “<a href="#UnlimitedDim">unlimited</a>” size which indicates
                 that the data may expand along this dimension indefinitely.
                 If these values are not stored, the maximum size of each
-                dimension is assumed to be the dimension's current size.
+                dimension is assumed to be the dimension’s current size.
             </p>
           </td>
 	</tr>
@@ -7767,50 +8300,58 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    </p>
+    
 
 <!--
-    <hr>
-    <h4><a name="DataSpaceMessage">Name: Complex Dataspace (Fiber Bundle?)</a></h4>
-    <b>Header Message Type: </b>0x0002<br>
-    <b>Length:</b> varies<br>
+<br />
+<h4><a name="DataSpaceMessage">Header Message Name: Complex Dataspace (Fiber Bundle?)</a></h4>
+
+    <!-- start msgdesc table --
+    <center>
+    <table class="msgdesc">
+    <p><b>Header Message Name: ???????</b></td></tr>
+    <b>Header Message Type: </b>0x0002<br />
+    <b>Length:</b> Varies</td></tr>
 
     <b>Status:</b> One of the <em>Simple Dataspace</em> or
     <em>Complex Dataspace</em> messages is required (but not both) and may
-    not be repeated.<br> <b>Purpose and Description:</b> The
+    not be repeated.<br /> <b>Description:</b> The
     <em>Dataspace</em> message describes space that the dataset is
     mapped onto in a more comprehensive way than the <em>Simple
     Dimensionality</em> message is capable of handling.  The
     dataspace of a dataset encompasses the type of coordinate system
-    used to locate the dataset's elements as well as the structure and
+    used to locate the dataset’s elements as well as the structure and
     regularity of the coordinate system.  The dataspace also
     describes the number of dimensions which the dataset inhabits as
     well as a possible higher dimensional space in which the dataset
     is located within.
 
-    <br>
-    <b>Format of Data:</b>
+    <br />
+    <p><b>Format of Data:</b></p>
 
     <center>
-      <table border cellpadding=4 width="80%">
-	<caption align=bottom>
+      <table border cellpadding="4" width="80%">
+	<caption align="bottom">
 	  <b>HDF5 Dataspace Message Layout</b>
 	</caption>
 
-	<tr align=center>
+	<tr align="center">
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
+      </tr>
 
-	<tr align=center>
-	  <td colspan=4>Mesh Type</td>
-	<tr align=center>
-	  <td colspan=4>Logical Dimensionality</td>
+	<tr align="center">
+	  <td colspan="4">Mesh Type</td>
+      </tr>
+	<tr align="center">
+	  <td colspan="4">Logical Dimensionality</td>
+      </tr>
       </table>
     </center>
 
-    <p>
+    <br />
     <dl>
       <dt>The elements of the dimensionality message are described below: 
       <dd>
@@ -7818,27 +8359,29 @@ TABLE.list TD { border:none; }
 	  <dt>Mesh Type: (unsigned 32-bit integer)
 	  <dd>This value indicates whether the grid is
 	    polar/spherical/cartesion, 
-	    structured/unstructured and regular/irregular. <br>
-	    The mesh type value is broken up as follows: <br>
+	    structured/unstructured and regular/irregular. <br />
+	    The mesh type value is broken up as follows: <br />
 
-	    <p>
+	    <br />
 	    <center>
-	      <table border cellpadding=4 width="80%">
-		<caption align=bottom>
+	      <table border cellpadding="4" width="80%">
+		<caption align="bottom">
 		  <b>HDF5 Mesh-type Layout</b>
 		</caption>
 
-		<tr align=center>
+		<tr align="center">
 		  <th width="25%">byte</th>
 		  <th width="25%">byte</th>
 		  <th width="25%">byte</th>
 		  <th width="25%">byte</th>
+        </tr>
 
-		<tr align=center>
-		  <td colspan=1>Mesh Embedding</td>
-		  <td colspan=1>Coordinate System</td>
-		  <td colspan=1>Structure</td>
-		  <td colspan=1>Regularity</td>
+		<tr align="center">
+		  <td colspan="1">Mesh Embedding</td>
+		  <td colspan="1">Coordinate System</td>
+		  <td colspan="1">Structure</td>
+		  <td colspan="1">Regularity</td>
+        </tr>
 	      </table>
 	    </center>
 	    The following are the definitions of mesh-type bytes:
@@ -7852,7 +8395,7 @@ TABLE.list TD { border:none; }
 		    <dd>The dataset mesh is self-contained and is not
 		      embedded in another mesh. 
 		    <dt><EMBEDDED>
-		    <dd>The dataset's dataspace is located within
+		    <dd>The dataset’s dataspace is located within
 		      another dataspace, as 
 		      described in information below.
 		  </dl> </dl>
@@ -7895,7 +8438,7 @@ TABLE.list TD { border:none; }
 		      grid-location defined. 
 		  </dl> </dl>
 	    </dl>
-	    <p>The following grid combinations are currently allowed:
+	    <p>The following grid combinations are currently allowed:</p>
 	    <dl> <dl>
 		<dt><POLAR-STRUCTURED-REGULAR>
 		<dt><SPHERICAL-STRUCTURED-REGULAR>
@@ -7907,86 +8450,99 @@ TABLE.list TD { border:none; }
 	      </dl> </dl>
 	    All of the above grid types can be embedded within another
 	    dataspace.
-	    <br> <br>
+	    <br /> <br />
 	  <dt>Logical Dimensionality: (unsigned 32-bit integer)
 	  <dd>This value is the number of dimensions that the dataset occupies.
 
-	    <p>
+	    <br />
 	    <center>
-	      <table border cellpadding=4 width="80%">
-		<caption align=bottom>
+	      <table border cellpadding="4" width="80%">
+		<caption align="bottom">
 		  <b>HDF5 Dataspace Embedded Dimensionality Information</b>
 		</caption>
 
-		<tr align=center>
+		<tr align="center">
 		  <th width="25%">byte</th>
 		  <th width="25%">byte</th>
 		  <th width="25%">byte</th>
 		  <th width="25%">byte</th>
+        </tr>
 
-		<tr align=center>
-		  <td colspan=4>Embedded Dimensionality</td>
-		<tr align=center>
-		  <td colspan=4>Embedded Dimension Size #1</td>
-		<tr align=center>
-		  <td colspan=4>.<br>.<br>.<br></td>
-		<tr align=center>
-		  <td colspan=4>Embedded Dimension Size #n</td>
-		<tr align=center>
-		  <td colspan=4>Embedded Origin Location #1</td>
-		<tr align=center>
-		  <td colspan=4>.<br>.<br>.<br></td>
-		<tr align=center>
-		  <td colspan=4>Embedded Origin Location #n</td>
+		<tr align="center">
+		  <td colspan="4">Embedded Dimensionality</td>
+        </tr>
+		<tr align="center">
+		  <td colspan="4">Embedded Dimension Size #1</td>
+        </tr>
+		<tr align="center">
+		  <td colspan="4">.<br />.<br />.<br /></td>
+        </tr>
+		<tr align="center">
+		  <td colspan="4">Embedded Dimension Size #n</td>
+        </tr>
+		<tr align="center">
+		  <td colspan="4">Embedded Origin Location #1</td>
+        </tr>
+		<tr align="center">
+		  <td colspan="4">.<br />.<br />.<br /></td>
+        </tr>
+		<tr align="center">
+		  <td colspan="4">Embedded Origin Location #n</td>
+        </tr>
 	      </table>
 	    </center>
 
 	  <dt>Embedded Dimensionality: (unsigned 32-bit integer)
 	  <dd>This value is the number of dimensions of the space the
-	    dataset is located 
-	    within.  i.e. a planar dataset located within a 3-D space,
-	    or a 3-D dataset 
-	    which is a subset of another 3-D space, etc.
+	    dataset is located within: in other words, a planar dataset 
+        located within a 3-D space, a 3-D dataset 
+	    which is a subset of another 3-D space, and so on.
 	  <dt>Embedded Dimension Size: (unsigned 32-bit integer)
 	  <dd>These values are the sizes of the dimensions of the
 	    embedded dataspace 
 	    that the dataset is located within.
 	  <dt>Embedded Origin Location: (unsigned 32-bit integer)
-	  <dd>These values comprise the location of the dataset's
+	  <dd>These values comprise the location of the dataset’s
 	    origin within the embedded dataspace. 
 	</dl>
     </dl>
     [Comment: need some way to handle different orientations of the
     dataset dataspace 
-    within the embedded dataspace]<br>
+    within the embedded dataspace]<br />
 
-    <p>
+    <br />
     <center>
-      <table border cellpadding=4 width="80%">
-	<caption align=bottom>
+      <table border cellpadding="4" width="80%">
+	<caption align="bottom">
 	  <b>HDF5 Dataspace Structured/Regular Grid Information</b>
 	</caption>
 
-	<tr align=center>
+	<tr align="center">
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
+    </tr>
 
-	<tr align=center>
-	  <td colspan=4>Logical Dimension Size #1</td>
-	<tr align=center>
-	  <td colspan=4>Logical Dimension Maximum #1</td>
-	<tr align=center>
-	  <td colspan=4>.<br>.<br>.<br></td>
-	<tr align=center>
-	  <td colspan=4>Logical Dimension Size #n</td>
-	<tr align=center>
-	  <td colspan=4>Logical Dimension Maximum #n</td>
+	<tr align="center">
+	  <td colspan="4">Logical Dimension Size #1</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">Logical Dimension Maximum #1</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">.<br />.<br />.<br /></td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">Logical Dimension Size #n</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">Logical Dimension Maximum #n</td>
+    </tr>
       </table>
     </center>
 
-    <p>
+    <br />
     <dl>
       <dt>The elements of the dimensionality message are described below: 
       <dd>
@@ -8008,76 +8564,96 @@ TABLE.list TD { border:none; }
 	    indefinitely. 
 	</dl>
     </dl>
-    <p>
+    <br />
     <center>
-      <table border cellpadding=4 width="80%">
-	<caption align=bottom>
+      <table border cellpadding="4" width="80%">
+	<caption align="bottom">
 	  <b>HDF5 Dataspace Structured/Irregular Grid Information</b>
 	</caption>
 
-	<tr align=center>
+	<tr align="center">
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
+    </tr>
 
-	<tr align=center>
-	  <td colspan=4># of Grid Points in Dimension #1</td>
-	<tr align=center>
-	  <td colspan=4>.<br>.<br>.<br></td>
-	<tr align=center>
-	  <td colspan=4># of Grid Points in Dimension #n</td>
-	<tr align=center>
-	  <td colspan=4>Datatype of Grid Point Locations</td>
-	<tr align=center>
-	  <td colspan=4>Location of Grid Points in Dimension #1</td>
-	<tr align=center>
-	  <td colspan=4>.<br>.<br>.<br></td>
-	<tr align=center>
-	  <td colspan=4>Location of Grid Points in Dimension #n</td>
+	<tr align="center">
+	  <td colspan="4"># of Grid Points in Dimension #1</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">.<br />.<br />.<br /></td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4"># of Grid Points in Dimension #n</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">Datatype of Grid Point Locations</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">Location of Grid Points in Dimension #1</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">.<br />.<br />.<br /></td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">Location of Grid Points in Dimension #n</td>
+    </tr>
       </table>
     </center>
 
-    <p>
+    <br />
     <center>
-      <table border cellpadding=4 width="80%">
-	<caption align=bottom>
+      <table border cellpadding="4" width="80%">
+	<caption align="bottom">
 	  <b>HDF5 Dataspace Unstructured Grid Information</b>
 	</caption>
 
-	<tr align=center>
+	<tr align="center">
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
+    </tr>
 
-	<tr align=center>
-	  <td colspan=4># of Grid Points</td>
-	<tr align=center>
-	  <td colspan=4>Datatype of Grid Point Locations</td>
-	<tr align=center>
-	  <td colspan=4>Grid Point Locations<br>.<br>.<br></td>
+	<tr align="center">
+	  <td colspan="4"># of Grid Points</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">Datatype of Grid Point Locations</td>
+    </tr>
+	<tr align="center">
+	  <td colspan="4">Grid Point Locations<br />.<br />.<br /></td>
+    </tr>
       </table>
     </center>
 -->
 
-    <hr>
-    <h4><a name="LinkInfoMessage">Name: Link Info</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x002 </p>
-    <p class="item"><b>Length:</b> varies </p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated. </p>
-
-    <p class="item"><b>Description:</b>This message tracks variable information
-        about the current state of the links for a "new style" group's behavior.
-        Variable information
-        will be stored in this message and constant information will be stored
-        in the <a href="#GroupInfoMessage">Group Info</a> message.</p>
-    </p>
+<br />
+<h4><a name="LinkInfoMessage">IV.A.2.c. The Link Info Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Link Info</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x002 </td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies </td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated. </td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>The link info message tracks variable information about the 
+      current state of the links for a “new style” 
+      group’s behavior. Variable information will be stored in 
+      this message and constant information will be stored in the 
+      <a href="#GroupInfoMessage">Group Info</a> message.
+      </td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Link Info
 	</caption>
@@ -8092,76 +8668,85 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Flags</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Maximum Creation Index <em>(8 bytes, optional)</em><br><br></td>
+	  <td colspan="4"><br />Maximum Creation Index <em>(8 bytes, optional)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Fractal Heap Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Fractal Heap Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address of v2 B-tree for Name Index<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Address of v2 B-tree for Name Index<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address of v2 B-tree for Creation Order Index<sup>O</sup> <em>(optional)</em><br><br></td>
+	  <td colspan="4"><br />Address of v2 B-tree for Creation Order Index<sup>O</sup> <em>(optional)</em><br /><br /></td>
 	</tr>
 	
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
             <p>The version number for this message. This document describes
-                version 0.
+                version 0.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	<td>Flags</td>
+	<td><p>Flags</p></td>
 	  <td><p>This field determines various optional aspects of the link
                 info message:
-	      </p>
-            <table class=list>
+	      
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>If set, creation order for the links is tracked.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>If set, creation order for the links is indexed.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>2-7</code></td>
+                  <td align="center"><code>2-7</code></td>
                   <td>Reserved</td>
                 </tr>
-	    </table>
-            </p>
+	    </table></p>
+           
           </td>
 	</tr>
 
 	<tr>
-	  <td>Maximum Creation Index</td>
+	  <td><p>Maximum Creation Index</p></td>
 	  <td><p>This 64-bit value is the maximum creation order index value
                 stored for a link in this group.</p>
 	    <p>This field is present if bit 0 of <em>flags</em> is set.</p>
@@ -8169,7 +8754,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Fractal Heap Address</td>
+	  <td><p>Fractal Heap Address</p></td>
 	  <td>
             <p>
                 This is the address of the fractal heap to store dense links.
@@ -8177,8 +8762,8 @@ TABLE.list TD { border:none; }
                 <a href="#LinkMessage">Link Message</a>.
             </p>
             <p>
-                If there are no links in the group, or the group's links
-                are stored "compactly" (as object header messages), this
+                If there are no links in the group, or the group’s links
+                are stored “compactly” (as object header messages), this
                 value will be the <a href="#UndefinedAddress">undefined
                 address</a>. 
             </p>
@@ -8186,10 +8771,10 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Address of v2 B-tree for Name Index</td>
+	  <td><p>Address of v2 B-tree for Name Index</p></td>
 	  <td><p>This is the address of the version 2 B-tree to index names of links.</p>
-                <p>If there are no links in the group, or the group's links
-                    are stored "compactly" (as object header messages), this
+                <p>If there are no links in the group, or the group’s links
+                    are stored “compactly” (as object header messages), this
                     value will be the <a href="#UndefinedAddress">undefined
                     address</a>. 
                 </p>
@@ -8197,14 +8782,14 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Address of v2 B-tree for Creation Order Index</td>
+	  <td><p>Address of v2 B-tree for Creation Order Index</p></td>
 	  <td><p>This is the address of the version 2 B-tree to index creation order of links.</p>
-                <p>If there are no links in the group, or the group's links
-                    are stored "compactly" (as object header messages), this
+                <p>If there are no links in the group, or the group’s links
+                    are stored “compactly” (as object header messages), this
                     value will be the <a href="#UndefinedAddress">undefined
                     address</a>. 
                 </p>
-	    <p>This field exists if bit 1 of <em>flags</em> is set.
+	    <p>This field exists if bit 1 of <em>flags</em> is set.</p>
 	  </td>
 	</tr>
 
@@ -8212,36 +8797,40 @@ TABLE.list TD { border:none; }
     </div>
 
 
-    <hr>
-    <h4><a name="DatatypeMessage">Name: Datatype</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x0003
-    </p>
-    <p class="item"><b>Length:</b> variable
-    </p>
-    <p class="item"><b>Status:</b> Required for dataset or named datatype objects,
-        may not be repeated.
-    </p>
-
-    <p class="item"><b>Description:</b> The datatype message defines the datatype
-        for each element of a dataset or a common datatype for sharing between
-        multiple datasets.  A datatype can describe an atomic type
-        like a fixed- or floating-point type or more complex types like a C
-        struct (compound datatype), array (array datatype) or C++ vector
-        (variable-length datatype).
-    </p>
-
-    <P class=item2>Datatype messages that are part of a dataset object, 
-        do not describe how elements are related to one another, the dataspace
-        message is used for that purpose.  Datatype messages that are part of
-        a named datatype message describe a common datatype that can be
-        shared by multiple datasets in the file.
-    </p>
+<br />
+<h4><a name="DatatypeMessage">IV.A.2.d. The Datatype Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Datatype</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0003
+    </td></tr>
+    <tr><td colspan="2"><b>Length:</b> Variable</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Required for dataset or committed 
+      datatype (formerly named datatype) objects; may not be repeated.
+      </td></tr>
+    <tr><td><b>Description:</b></td> 
+      <td><p>The datatype message defines the datatype for each element 
+      of a dataset or a common datatype for sharing between multiple 
+      datasets.  A datatype can describe an atomic type like a fixed- 
+      or floating-point type or more complex types like a C struct 
+      (compound datatype), array (array datatype) or C++ vector 
+      (variable-length datatype).</p>
+      <p>Datatype messages that are part of a dataset object do not 
+      describe how elements are related to one another; the dataspace 
+      message is used for that purpose. Datatype messages that are part of 
+      a committed datatype (formerly named datatype) message describe 
+      a common datatype that can be shared by multiple datasets in the 
+      file.</p>
+      </td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Datatype Message
 	</caption>
@@ -8261,46 +8850,46 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Size</td>
+	  <td colspan="4">Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br><br>Properties<br><br><br></td>
+	  <td colspan="4"><br /><br />Properties<br /><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Class and Version</td>
+	  <td><p>Class and Version</p></td>
 	  <td>
-            <p>The version of the datatype message and the datatype's class
+            <p>The version of the datatype message and the datatype’s class
                 information are packed together in this field.  The version
                 number is packed in the top 4 bits of the field and the class
                 is contained in the bottom 4 bits.
             </p>
             <p>The version number information is used for changes in the
                 format of the datatype message and is described here:
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Version</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Version</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>Never used
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>Used by early versions of the library to encode
                             compound datatypes with explicit array fields.
                             See the compound datatype description below for
@@ -8308,90 +8897,91 @@ TABLE.list TD { border:none; }
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>Used when an array datatype needs to be encoded.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>3</code></td>
+                      <td align="center"><code>3</code></td>
                       <td>Used when a VAX byte-ordered type needs to be
                         encoded.  Packs various other datatype classes more
                         efficiently also.
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
             <p>The class of the datatype determines the format for the class
                 bit field and properties portion of the datatype message, which
                 are described below.  The
                 following classes are currently defined:
-                <table width=100% class=list>
+                
+                <table class="list">
                     <tr>
-                      <th width="30%">Value</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Value</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>Fixed-Point</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>Floating-Point</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>Time</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>3</code></td>
+                      <td align="center"><code>3</code></td>
                       <td>String</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>4</code></td>
-                      <td>Bitfield</td>
+                      <td align="center"><code>4</code></td>
+                      <td>Bit field</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>5</code></td>
+                      <td align="center"><code>5</code></td>
                       <td>Opaque</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>6</code></td>
+                      <td align="center"><code>6</code></td>
                       <td>Compound</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>7</code></td>
+                      <td align="center"><code>7</code></td>
                       <td>Reference</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>8</code></td>
+                      <td align="center"><code>8</code></td>
                       <td>Enumerated</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>9</code></td>
+                      <td align="center"><code>9</code></td>
                       <td>Variable-Length</td>
                     </tr>
 
                     <tr>
-                      <td align=center><code>10</code></td>
+                      <td align="center"><code>10</code></td>
                       <td>Array</td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
           </td>
 	</tr>
 
 	<tr>
-	  <td>Class Bit Fields</td>
+	  <td><p>Class Bit Fields</p></td>
 	  <td>
             <p>The information in these bit fields is specific to each datatype
                 class and is described below.  All bits not defined for a
@@ -8401,7 +8991,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Size</td>
+	  <td><p>Size</p></td>
 	  <td>
             <p>The size of a datatype element in bytes.
             </p>
@@ -8409,7 +8999,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Properties</td>
+	  <td><p>Properties</p></td>
 	  <td>
             <p>This variable-sized sequence of bytes encodes information
                 specific to each datatype class and is described for each class
@@ -8421,15 +9011,15 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
+    
 
-    <p>Class specific information for Fixed-Point Numbers (Class 0):
+    <br />
+    <p>Class specific information for Fixed-Point Numbers (Class 0):</p>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <div align="center">
+      <table class="desc">
 	<caption>
-	  Fixed-Point Bit Field Description
+	  Fixed-point Bit Field Description
 	</caption>
 
 	<tr>
@@ -8438,35 +9028,35 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0</td>
-	  <td><b>Byte Order.</b> If zero, byte order is little-endian;
-	    otherwise, byte order is big endian.</td>
+	  <td><p>0</p></td>
+	  <td><p><b>Byte Order.</b> If zero, byte order is little-endian;
+	    otherwise, byte order is big endian.</p></td>
 	</tr>
 
 	<tr>
-	  <td>1, 2</td>
-	  <td><b>Padding type.</b>  Bit 1 is the lo_pad bit and bit 2
+	  <td><p>1, 2</p></td>
+	  <td><p><b>Padding type.</b>  Bit 1 is the lo_pad bit and bit 2
 	    is the hi_pad bit.  If a datum has unused bits at either
 	    end, then the lo_pad or hi_pad bit is copied to those
-	    locations.</td>
+	    locations.</p></td>
 	</tr>
 
 	<tr>
-	  <td>3</td>
-	  <td><b>Signed.</b> If this bit is set then the fixed-point
-	    number is in 2's complement form.</td>
+	  <td><p>3</p></td>
+	  <td><p><b>Signed.</b> If this bit is set then the fixed-point
+	    number is in 2’s complement form.</p></td>
 	</tr>
 
 	<tr>
-	  <td>4-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>4-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Fixed-Point Property Description
 	</caption>
@@ -8479,38 +9069,38 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=2>Bit Offset</td>
-	  <td colspan=2>Bit Precision</td>
+	  <td colspan="2">Bit Offset</td>
+	  <td colspan="2">Bit Precision</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Bit Offset</td>
+	  <td><p>Bit Offset</p></td>
 	  <td>
             <p>The bit offset of the first significant bit of the fixed-point
                 value within the datatype.  The bit offset specifies the number
-                of bits "to the right of" the value (which are set to the
+                of bits “to the right of” the value (which are set to the
                 lo_pad bit value).
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Bit Precision</td>
+	  <td><p>Bit Precision</p></td>
 	  <td>
             <p>The number of bits of precision of the fixed-point value
                 within the datatype.  This value, combined with the datatype
-                element's size and the Bit Offset field specifies the number
-                of bits "to the left of" the value (which are set to the
+                element’s size and the Bit Offset field specifies the number
+                of bits “to the left of” the value (which are set to the
                 hi_pad bit value).
             </p>
           </td>
@@ -8518,13 +9108,13 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
+    
 
-    <p>Class specific information for Floating-Point Numbers (Class 1):
+    <br />
+    <p>Class specific information for Floating-Point Numbers (Class 1):</p>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  Floating-Point Bit Field Description
 	</caption>
@@ -8535,111 +9125,112 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0, 6</td>
-	  <td><b>Byte Order.</b> These two non-contiguous bits specify the 
-            "endianess" of the bytes in the datatype element.
-            <table class=list>
+	  <td><p>0, 6</p></td>
+	  <td><p><b>Byte Order.</b> These two non-contiguous bits specify the 
+            “endianness” of the bytes in the datatype element.
+            <table class="list">
                 <tr>
-                  <th width="20%">Bit 6</th>
-                  <th width="20%">Bit 0</th>
-                  <th align=left>Description</th>
+                  <th width="10%" align="center">Bit 6</th>
+                  <th width="10%" align="center">Bit 0</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>Byte order is little-endian
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>0</code></td>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>0</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>Byte order is big-endian
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>1</code></td>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>1</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>Reserved
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>1</code></td>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>Byte order is VAX-endian
                   </td>
                 </tr>
-            </table>
+            </table></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>1, 2, 3</td>
-	  <td><b>Padding type.</b>  Bit 1 is the low bits pad type, bit 2
+	  <td><p>1, 2, 3</p></td>
+	  <td><p><b>Padding type.</b>  Bit 1 is the low bits pad type, bit 2
 	    is the high bits pad type, and bit 3 is the internal bits
 	    pad type.  If a datum has unused bits at either end or between
 	    the sign bit, exponent, or mantissa, then the value of bit
-	    1, 2, or 3 is copied to those locations.</td>
+	    1, 2, or 3 is copied to those locations.</p></td>
 	</tr>
 
 	<tr>
-	  <td>4-5</td>
-	  <td><b>Mantissa Normalization.</b> This 2-bit bit-field specifies
+	  <td><p>4-5</p></td>
+	  <td><p><b>Mantissa Normalization.</b> This 2-bit bit field specifies
             how the most significant bit of the mantissa is managed.
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Value</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Value</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>No normalization
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>The most significant bit of the mantissa is always set
                         (except for 0.0).
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>The most significant bit of the mantissa is not stored,
                         but is implied to be set.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>3</code></td>
+                      <td align="center"><code>3</code></td>
                       <td>Reserved.
                       </td>
                     </tr>
-                </table>
+                </table></p>
             </td>
 	</tr>
 
 	<tr>
-	  <td>7</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>7</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
 
 	<tr>
-	  <td>8-15</td>
-	  <td><b>Sign Location.</b> This is the bit position of the sign
-	    bit.  Bits are numbered with the least significant bit zero.</td>
+	  <td><p>8-15</p></td>
+	  <td><p><b>Sign Location.</b> This is the bit position of the sign
+	    bit.  Bits are numbered with the least significant bit zero.</p></td>
 	</tr>
 
 	<tr>
-	  <td>16-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>16-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Floating-Point Property Description
 	</caption>
@@ -8652,8 +9243,8 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=2>Bit Offset</td>
-	  <td colspan=2>Bit Precision</td>
+	  <td colspan="2">Bit Offset</td>
+	  <td colspan="2">Bit Precision</td>
 	</tr>
 
 	<tr>
@@ -8664,31 +9255,31 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Exponent Bias</td>
+	  <td colspan="4">Exponent Bias</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Bit Offset</td>
+	  <td><p>Bit Offset</p></td>
 	  <td>
             <p>The bit offset of the first significant bit of the floating-point
                 value within the datatype.  The bit offset specifies the number
-                of bits "to the right of" the value.
+                of bits “to the right of” the value.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Bit Precision</td>
+	  <td><p>Bit Precision</p></td>
 	  <td>
             <p>The number of bits of precision of the floating-point value
                 within the datatype.
@@ -8697,7 +9288,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Exponent Location</td>
+	  <td><p>Exponent Location</p></td>
 	  <td>
             <p>The bit position of the exponent field.  Bits are numbered with
                 the least significant bit number zero.
@@ -8706,7 +9297,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Exponent Size</td>
+	  <td><p>Exponent Size</p></td>
 	  <td>
             <p>The size of the exponent field in bits.
             </p>
@@ -8714,7 +9305,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Mantissa Location</td>
+	  <td><p>Mantissa Location</p></td>
 	  <td>
             <p>The bit position of the mantissa field.  Bits are numbered with
                 the least significant bit number zero.
@@ -8723,7 +9314,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Mantissa Size</td>
+	  <td><p>Mantissa Size</p></td>
 	  <td>
             <p>The size of the mantissa field in bits.
             </p>
@@ -8731,7 +9322,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Exponent Bias</td>
+	  <td><p>Exponent Bias</p></td>
 	  <td>
             <p>The bias of the exponent field.
             </p>
@@ -8740,13 +9331,14 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
+    
 
-    <p>Class specific information for Time (Class 2):
+    <br />
+    <p>Class specific information for Time (Class 2):</p>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  Time Bit Field Description
 	</caption>
@@ -8757,21 +9349,21 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0</td>
-	  <td><b>Byte Order.</b> If zero, byte order is little-endian;
-	    otherwise, byte order is big endian.</td>
+	  <td><p>0</p></td>
+	  <td><p><b>Byte Order.</b> If zero, byte order is little-endian;
+	    otherwise, byte order is big endian.</p></td>
 	</tr>
 
 	<tr>
-	  <td>1-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>1-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Time Property Description
 	</caption>
@@ -8782,21 +9374,21 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=2>Bit Precision</td>
+	  <td colspan="2">Bit Precision</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Bit Precision</td>
+	  <td><p>Bit Precision</p></td>
 	  <td>
             <p>The number of bits of precision of the time value.
             </p>
@@ -8805,13 +9397,14 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
+    
 
-    <p>Class specific information for Strings (Class 3):
+    <br />
+    <p>Class specific information for Strings (Class 3):</p>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  String Bit Field Description
 	</caption>
@@ -8822,18 +9415,18 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0-3</td>
-	  <td><b>Padding type.</b>  This four-bit value determines the
+	  <td><p>0-3</p></td>
+	  <td><p><b>Padding type.</b>  This four-bit value determines the
 	    type of padding to use for the string.  The values are:
 
-            <table width=100% class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>Null Terminate: A zero byte marks the end of the
                     string and is guaranteed to be present after
                     converting a long string to a short string.  When
@@ -8843,7 +9436,7 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>Null Pad: Null characters are added to the end of
                     the value during conversions from short values to long
                     values but conversion in the opposite direction simply
@@ -8852,7 +9445,7 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=center><code>2</code></td>
+                  <td align="center"><code>2</code></td>
                   <td>Space Pad: Space characters are added to the end of
                     the value during conversions from short values to long
                     values but conversion in the opposite direction simply
@@ -8862,60 +9455,60 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=center><code>3-15</code></td>
+                  <td align="center"><code>3-15</code></td>
                   <td>Reserved
                   </td>
                 </tr>
-            </table>
+            </table></p>
+            </td>
 	</tr>
 
 	<tr>
-	  <td>4-7</td>
-	  <td><b>Character Set.</b>  The character set used to
+	  <td><p>4-7</p></td>
+	  <td><p><b>Character Set.</b>  The character set used to
 	    encode the string.
-            <table width=100% class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>ASCII character set encoding
                   </td>
                 </tr>
 
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>UTF-8 character set encoding
                   </td>
                 </tr>
 
                 <tr>
-                  <td align=center><code>2-15</code></td>
+                  <td align="center"><code>2-15</code></td>
                   <td>Reserved
                   </td>
                 </tr>
-            </table>
+            </table></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>8-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>8-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
 
     <p>There are no properties defined for the string class.
     </p>
-    </p>
-
-    <p>Class specific information for Bitfields (Class 4):
+    
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <p>Class specific information for bit fields (Class 4):</p>
+    
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  Bitfield Bit Field Description
 	</caption>
@@ -8926,31 +9519,31 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0</td>
-	  <td><b>Byte Order.</b> If zero, byte order is little-endian;
-	    otherwise, byte order is big endian.</td>
+	  <td><p>0</p></td>
+	  <td><p><b>Byte Order.</b> If zero, byte order is little-endian;
+	    otherwise, byte order is big endian.</p></td>
 	</tr>
 
 	<tr>
-	  <td>1, 2</td>
-	  <td><b>Padding type.</b>  Bit 1 is the lo_pad type and bit 2
+	  <td><p>1, 2</p></td>
+	  <td><p><b>Padding type.</b>  Bit 1 is the lo_pad type and bit 2
 	    is the hi_pad type.  If a datum has unused bits at either
 	    end, then the lo_pad or hi_pad bit is copied to those
-	    locations.</td>
+	    locations.</p></td>
 	</tr>
 
 	<tr>
-	  <td>3-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>3-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
-	  Bitfield Property Description
+	  Bit Field Property Description
 	</caption>
 
 	<tr>
@@ -8961,47 +9554,47 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=2>Bit Offset</td>
-	  <td colspan=2>Bit Precision</td>
+	  <td colspan="2">Bit Offset</td>
+	  <td colspan="2">Bit Precision</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Bit Offset</td>
+	  <td><p>Bit Offset</p></td>
 	  <td>
-            <p>The bit offset of the first significant bit of the bitfield
+            <p>The bit offset of the first significant bit of the bit field
                 within the datatype.  The bit offset specifies the number
-                of bits "to the right of" the value.
+                of bits “to the right of” the value.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Bit Precision</td>
+	  <td><p>Bit Precision</p></td>
 	  <td>
-            <p>The number of bits of precision of the bitfield
+            <p>The number of bits of precision of the bit field
                 within the datatype.
             </p>
           </td>
 	</tr>
       </table>
     </div>
-    </p>
-
-    <p>Class specific information for Opaque (Class 5):
+    
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <p>Class specific information for Opaque (Class 5):</p>
+    
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  Opaque Bit Field Description
 	</caption>
@@ -9012,20 +9605,20 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0-7</td>
-	  <td>Length of ASCII tag in bytes.</td>
+	  <td><p>0-7</p></td>
+	  <td><p>Length of ASCII tag in bytes.</p></td>
 	</tr>
 
 	<tr>
-	  <td>8-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>8-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Opaque Property Description
 	</caption>
@@ -9038,22 +9631,22 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>ASCII Tag<br>
-	    <br></td>
+	  <td colspan="4"><br />ASCII Tag<br />
+	    <br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>ASCII Tag</td>
+	  <td><p>ASCII Tag</p></td>
 	  <td>
             <p>This NUL-terminated string provides a description for the
                 opaque type.  It is NUL-padded to a multiple of 8 bytes.
@@ -9062,13 +9655,13 @@ TABLE.list TD { border:none; }
 	</tr>
       </table>
     </div>
-    </p>
-
-    <p>Class specific information for Compound (Class 6):
+    
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <p>Class specific information for Compound (Class 6):</p>
+    
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  Compound Bit Field Description
 	</caption>
@@ -9079,35 +9672,36 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0-15</td>
-	  <td><b>Number of Members.</b> This field contains the number
+	  <td><p>0-15</p></td>
+	  <td><p><b>Number of Members.</b> This field contains the number
 	    of members defined for the compound datatype.  The member
 	    definitions are listed in the Properties field of the data
-	    type message.
+	    type message.</p></td>
 	</tr>
 
 	<tr>
-	  <td>16-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>16-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
-    </p>
+    
 
     <p>The Properties field of a compound datatype is a list of the
       member definitions of the compound datatype.  The member
       definitions appear one after another with no intervening bytes.
       The member types are described with a (recursively) encoded datatype
-      message.
+      message.</p>
 
     <p>Note that the property descriptions are different for different
       versions of the datatype version.  Additionally note that the version
       0 datatype encoding is deprecated and has been replaced with later
-      encodings in versions of the HDF5 library from the 1.4 release onward.
+      encodings in versions of the HDF5 Library from the 1.4 release 
+      onward.</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Compound Properties Description for Datatype Version 1
 	</caption>
@@ -9120,59 +9714,59 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name<br><br></td>
+	  <td colspan="4"><br />Name<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Byte Offset of Member</td>
+	  <td colspan="4">Byte Offset of Member</td>
 	</tr>
 
 	<tr>
 	  <td>Dimensionality</td>
-	  <td colspan=3>Reserved (zero)</td>
+	  <td colspan="3">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension Permutation</td>
+	  <td colspan="4">Dimension Permutation</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Reserved (zero)</td>
+	  <td colspan="4">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension #1 Size (required)</td>
+	  <td colspan="4">Dimension #1 Size (required)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension #2 Size (required)</td>
+	  <td colspan="4">Dimension #2 Size (required)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension #3 Size (required)</td>
+	  <td colspan="4">Dimension #3 Size (required)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension #4 Size (required)</td>
+	  <td colspan="4">Dimension #4 Size (required)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Member Type Message<br><br></td>
+	  <td colspan="4"><br />Member Type Message<br /><br /></td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Name</td>
+	  <td><p>Name</p></td>
 	  <td>
             <p>This NUL-terminated string provides a description for the
                 opaque type.  It is NUL-padded to a multiple of 8 bytes.
@@ -9181,7 +9775,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Byte Offset of Member</td>
+	  <td><p>Byte Offset of Member</p></td>
 	  <td>
             <p>This is the byte offset of the member within the datatype.
             </p>
@@ -9189,29 +9783,29 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dimensionality</td>
+	  <td><p>Dimensionality</p></td>
 	  <td>
             <p>If set to zero, this field indicates a scalar member.  If set
                 to a value greater than zero, this field indicates that the
                 member is an array of values.  For array members, the size of
-                the array is indicated by the 'Size of Dimension n' field in
+                the array is indicated by the ‘Size of Dimension n’ field in
                 this message.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Dimension Permutation</td>
+	  <td><p>Dimension Permutation</p></td>
 	  <td>
             <p>This field was intended to allow an array field to have 
-                it's dimensions permuted, but this was never implemented.
+                its dimensions permuted, but this was never implemented.
                 This field should always be set to zero.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Size</td>
+	  <td><p>Dimension #n Size</p></td>
 	  <td>
             <p>This field is the size of a dimension of the array field as
             stored in the file.  The first dimension stored in the list of
@@ -9222,7 +9816,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Member Type Message</td>
+	  <td><p>Member Type Message</p></td>
 	  <td>
             <p>This field is a datatype message describing the datatype of
             the member.
@@ -9233,9 +9827,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Compound Properties Description for Datatype Version 2
 	</caption>
@@ -9248,30 +9843,30 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name<br><br></td>
+	  <td colspan="4"><br />Name<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Byte Offset of Member</td>
+	  <td colspan="4">Byte Offset of Member</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Member Type Message<br><br></td>
+	  <td colspan="4"><br />Member Type Message<br /><br /></td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Name</td>
+	  <td><p>Name</p></td>
 	  <td>
             <p>This NUL-terminated string provides a description for the
                 opaque type.  It is NUL-padded to a multiple of 8 bytes.
@@ -9280,7 +9875,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Byte Offset of Member</td>
+	  <td><p>Byte Offset of Member</p></td>
 	  <td>
             <p>This is the byte offset of the member within the datatype.
             </p>
@@ -9288,7 +9883,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Member Type Message</td>
+	  <td><p>Member Type Message</p></td>
 	  <td>
             <p>This field is a datatype message describing the datatype of
             the member.
@@ -9298,11 +9893,12 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
+    
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Compound Properties Description for Datatype Version 3
 	</caption>
@@ -9315,68 +9911,60 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name<br><br></td>
+	  <td colspan="4"><br />Name<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Byte Offset of Member <em>(variable size)</em></td>
+	  <td colspan="4">Byte Offset of Member <em>(variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Member Type Message<br><br></td>
+	  <td colspan="4"><br />Member Type Message<br /><br /></td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Name</td>
-	  <td>
-            <p>This NUL-terminated string provides a description for the
-                opaque type.  It is <em>not</em> NUL-padded to a multiple of
-                8 bytes.
-            </p>
-          </td>
+	  <td><p>Name</p></td>
+	  <td><p>This NUL-terminated string provides a description for the 
+      opaque type. It is <em>not</em> NUL-padded to a multiple of 8 
+      bytes.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Byte Offset of Member</td>
-	  <td>
-            <p>This is the byte offset of the member within the datatype.  The
-                field size is the minimum # of bytes necessary, based on size
-                of the datatype element.  For example, a datatype element size
-                of less than 256 bytes uses a 1 byte length, a datatype element
-                size of 256-65535 bytes uses a 2 byte length, etc.
-            </p>
-          </td>
+        <td><p>Byte Offset of Member</p></td>
+        <td><p>This is the byte offset of the member within the datatype. 
+        The field size is the minimum number of bytes necessary, 
+        based on the size of the datatype element. For example, a 
+        datatype element size of less than 256 bytes uses a 1 byte 
+        length, a datatype element size of 256-65535 bytes uses a 
+        2 byte length, and so on.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Member Type Message</td>
-	  <td>
-            <p>This field is a datatype message describing the datatype of
-            the member.
-            </p>
-          </td>
+	  <td><p>Member Type Message</p></td>
+	  <td><p>This field is a datatype message describing the datatype of
+        the member.</p></td>
 	</tr>
 
       </table>
     </div>
-    </p>
-
-    <p>Class specific information for Reference (Class 7):
+    
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <p>Class specific information for Reference (Class 7):</p>
+    
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  Reference Bit Field Description
 	</caption>
@@ -9387,56 +9975,56 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0-3</td>
-	  <td><b>Type.</b> This four-bit value contains the type of reference
+	  <td><p>0-3</p></td>
+	  <td><p><b>Type.</b> This four-bit value contains the type of reference
             described.  The values defined are:
 
-            <table width=100% class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>Object Reference: A reference to another object in this
                     HDF5 file.
                   </td>
                 </tr>
 
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>Dataset Region Reference: A reference to a region within
                     a dataset in this HDF5 file.
                   </td>
                 </tr>
 
                 <tr>
-                  <td align=center><code>2-15</code></td>
+                  <td align="center"><code>2-15</code></td>
                   <td>Reserved
                   </td>
                 </tr>
-            </table>
+            </table></p>
 
             </td>
 	</tr>
 
 	<tr>
-	  <td>4-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>4-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
 
     <p>There are no properties defined for the reference class.
     </p>
-    </p>
-
-    <p>Class specific information for Enumeration (Class 8):
+    
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <p>Class specific information for Enumeration (Class 8):</p>
+    
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  Enumeration Bit Field Description
 	</caption>
@@ -9447,21 +10035,22 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0-15</td>
-	  <td><b>Number of Members.</b> The number of name/value
-	    pairs defined for the enumeration type.</td>
+	  <td><p>0-15</p></td>
+	  <td><p><b>Number of Members.</b> The number of name/value
+	    pairs defined for the enumeration type.</p></td>
 	</tr>
 
 	<tr>
-	  <td>16-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>16-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Enumeration Property Description for Datatype Versions 1 & 2
 	</caption>
@@ -9474,30 +10063,30 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Base Type<br><br></td>
+	  <td colspan="4"><br />Base Type<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Names<br><br></td>
+	  <td colspan="4"><br />Names<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Values<br><br></td>
+	  <td colspan="4"><br />Values<br /><br /></td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Base Type</td>
+	  <td><p>Base Type</p></td>
 	  <td>
             <p>Each enumeration type is based on some parent type, usually an
                 integer. The information for that parent type is described
@@ -9507,7 +10096,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Names</td>
+	  <td><p>Names</p></td>
 	  <td>
             <p>The name for each name/value pair. Each name is stored as a null
                 terminated ASCII string in a multiple of eight bytes. The names
@@ -9517,7 +10106,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Values</td>
+	  <td><p>Values</p></td>
 	  <td>
             <p>The list of values in the same order as the names.  The values
                 are packed (no inter-value padding) and the size of each value
@@ -9529,9 +10118,10 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Enumeration Property Description for Datatype Version 3
 	</caption>
@@ -9544,30 +10134,30 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Base Type<br><br></td>
+	  <td colspan="4"><br />Base Type<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Names<br><br></td>
+	  <td colspan="4"><br />Names<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Values<br><br></td>
+	  <td colspan="4"><br />Values<br /><br /></td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Base Type</td>
+	  <td><p>Base Type</p></td>
 	  <td>
             <p>Each enumeration type is based on some parent type, usually an
                 integer. The information for that parent type is described
@@ -9577,7 +10167,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Names</td>
+	  <td><p>Names</p></td>
 	  <td>
             <p>The name for each name/value pair. Each name is stored as a null
                 terminated ASCII string, <em>not</em> padded to a multiple of
@@ -9587,7 +10177,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Values</td>
+	  <td><p>Values</p></td>
 	  <td>
             <p>The list of values in the same order as the names.  The values
                 are packed (no inter-value padding) and the size of each value
@@ -9598,14 +10188,14 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
-
+    
 
-    <p>Class specific information for Variable-Length (Class 9):
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <p>Class specific information for Variable-Length (Class 9):</p>
+    
+    <div align="center">
+      <table class="desc">
 	<caption>
 	  Variable-Length Bit Field Description
 	</caption>
@@ -9616,18 +10206,18 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>0-3</td>
-	  <td><b>Type.</b> This four-bit value contains the type of
+	  <td><p>0-3</p></td>
+	  <td><p><b>Type.</b> This four-bit value contains the type of
             variable-length datatype described.  The values defined are:
 
-            <table width=100% class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>Sequence: A variable-length sequence of any datatype.
                     Variable-length sequences do not have padding or
                     character set information.
@@ -9635,7 +10225,7 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>String: A variable-length sequence of characters.
                     Variable-length strings have padding and character set
                     information.
@@ -9643,29 +10233,29 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=center><code>2-15</code></td>
+                  <td align="center"><code>2-15</code></td>
                   <td>Reserved
                   </td>
                 </tr>
-            </table>
+            </table></p>
 
             </td>
 	</tr>
 
 	<tr>
-	  <td>4-7</td>
-	  <td><b>Padding type.</b> (variable-length string only)
+	  <td><p>4-7</p></td>
+	  <td><p><b>Padding type.</b> (variable-length string only)
                   This four-bit value determines the type of padding 
                   used for variable-length strings.  The values are the same 
                   as for the string padding type, as follows:
-            <table width=100% class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>Null terminate: A zero byte marks the end of a string
                     and is guaranteed to be present after converting a long
                     string to a short string.  When converting a short string
@@ -9675,7 +10265,7 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>Null pad: Null characters are added to the end of the
                     value during conversion from a short string to a longer
                     string.  Conversion from a long string to a shorter string
@@ -9684,7 +10274,7 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=center><code>2</code></td>
+                  <td align="center"><code>2</code></td>
                   <td>Space pad: Space characters are added to the end of the
                     value during conversion from a short string to a longer
                     string.  Conversion from a long string to a shorter string
@@ -9694,62 +10284,63 @@ TABLE.list TD { border:none; }
                 </tr>
 
                 <tr>
-                  <td align=center><code>3-15</code></td>
+                  <td align="center"><code>3-15</code></td>
                   <td>Reserved
                   </td>
                 </tr>
-            </table>
+            </table></p>
 
-            This value is set to zero for variable-length sequences.
+            <p>This value is set to zero for variable-length sequences.</p>
 
           </td>
 	</tr>
 
 	<tr>
-	  <td>8-11</td>
-	  <td><b>Character Set.</b> (variable-length string only)
+	  <td><p>8-11</p></td>
+	  <td><p><b>Character Set.</b> (variable-length string only)
                   This four-bit value specifies the character set 
                   to be used for encoding the string:
-            <table width=100% class=list>
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>ASCII character set encoding
                   </td>
                 </tr>
 
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>UTF-8 character set encoding
                   </td>
                 </tr>
 
                 <tr>
-                  <td align=center><code>2-15</code></td>
+                  <td align="center"><code>2-15</code></td>
                   <td>Reserved
                   </td>
                 </tr>
-            </table>
+            </table></p>
 
-            This value is set to zero for variable-length sequences.
+            <p>This value is set to zero for variable-length sequences.</p>
 
           </td>
 	</tr>
 
 	<tr>
-	  <td>12-23</td>
-	  <td>Reserved (zero).</td>
+	  <td><p>12-23</p></td>
+	  <td><p>Reserved (zero).</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Variable-Length Property Description
         </caption>
@@ -9762,22 +10353,22 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4><br>Base Type<br><br></td>
+          <td colspan="4"><br />Base Type<br /><br /></td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
-          <th width="30%">Field Name</th>
+          <th width="10%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Base Type</td>
+	  <td><p>Base Type</p></td>
 	  <td>
             <p>Each variable-length type is based on some parent type.  The
                 information for that parent type is described recursively by
@@ -9788,9 +10379,10 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
+    
 
-    <p>Class specific information for Array (Class 10):
+    <br />
+    <p>Class specific information for Array (Class 10):</p>
 
     <p>There are no bit fields defined for the array class.
     </p>
@@ -9803,9 +10395,9 @@ TABLE.list TD { border:none; }
       dataset describes the size and locations of the elements in a dataset.
     </p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    
+    <div align="center">
+      <table class="format">
         <caption>
           Array Property Description for Datatype Version 2
         </caption>
@@ -9819,46 +10411,46 @@ TABLE.list TD { border:none; }
 
 	<tr>
 	  <td>Dimensionality</td>
-	  <td colspan=3>Reserved (zero)</td>
+	  <td colspan="3">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension #1 Size</td>
+	  <td colspan="4">Dimension #1 Size</td>
 	</tr>
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Dimension #n Size</td>
+	  <td colspan="4">Dimension #n Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Permutation Index #1</td>
+	  <td colspan="4">Permutation Index #1</td>
 	</tr>
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Permutation Index #n</td>
+	  <td colspan="4">Permutation Index #n</td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Base Type<br><br></td>
+          <td colspan="4"><br />Base Type<br /><br /></td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Dimensionality</td>
+	  <td><p>Dimensionality</p></td>
 	  <td>
             <p>This value is the number of dimensions that the array has.
             </p>
@@ -9866,7 +10458,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Size</td>
+	  <td><p>Dimension #n Size</p></td>
 	  <td>
             <p>This value is the size of the dimension of the array
 	    as stored in the file.  The first dimension stored in
@@ -9878,20 +10470,21 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Permutation Index #n</td>
+	  <td><p>Permutation Index #n</p></td>
 	  <td>
-            <p>This value is the index permutation used to map
-	    each dimension from the canonical representation to an
-	    alternate axis for each dimension.  Currently, dimension
-            permutations are not supported and these indices should be set
-            to the index position minus one (i.e. the first dimension should
-            be set to 0, the second dimension should be set to 1, etc.)
+            <p>This value is the index permutation used to map 
+            each dimension from the canonical representation to an 
+            alternate axis for each dimension. Currently, dimension 
+            permutations are not supported, and these indices should 
+            be set to the index position minus one. In other words, 
+            the first dimension should be set to 0, the second dimension 
+            should be set to 1, and so on.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Base Type</td>
+	  <td><p>Base Type</p></td>
 	  <td>
             <p>Each array type is based on some parent type.  The
                 information for that parent type is described recursively by
@@ -9903,9 +10496,9 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
         <caption>
           Array Property Description for Datatype Version 3
         </caption>
@@ -9919,36 +10512,36 @@ TABLE.list TD { border:none; }
 
 	<tr>
 	  <td>Dimensionality</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension #1 Size</td>
+	  <td colspan="4">Dimension #1 Size</td>
 	</tr>
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Dimension #n Size</td>
+	  <td colspan="4">Dimension #n Size</td>
 	</tr>
 
         <tr>
-          <td colspan=4><br>Base Type<br><br></td>
+          <td colspan="4"><br />Base Type<br /><br /></td>
         </tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Dimensionality</td>
+	  <td><p>Dimensionality</p></td>
 	  <td>
             <p>This value is the number of dimensions that the array has.
             </p>
@@ -9956,7 +10549,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Size</td>
+	  <td><p>Dimension #n Size</p></td>
 	  <td>
             <p>This value is the size of the dimension of the array
 	    as stored in the file.  The first dimension stored in
@@ -9968,7 +10561,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Base Type</td>
+	  <td><p>Base Type</p></td>
 	  <td>
             <p>Each array type is based on some parent type.  The
                 information for that parent type is described recursively by
@@ -9980,37 +10573,42 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    </p>
-
-    <hr>
-    <h4><a name="OldFillValueMessage">Name: Data Storage - Fill Value (Old)</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x0004
-    </p>
-    <p class="item"><b>Length:</b> varies
-    </p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated.
-    </p>
-
-    <p class="item"><b>Description:</b> The fill value message stores a single
-        data value which is returned to the application when an uninitialized
-        data element is read from a dataset.  The fill value is interpreted
-        with the same datatype as the dataset.  If no fill value message is
-        present then a fill value of all zero bytes is assumed.
-    </p>
+    
 
-    <P class=item2>This fill value message is deprecated in favor of the "new"
-        fill value message (Message Type 0x0005) and is only written to the
-        file for forward compatibility with versions of the HDF5 library before
-        the 1.6.0 version.  Additionally, it only appears for datasets with a
-        user defined fill value (as opposed to the library default fill value
-        or an explicitly set "undefined" fill value).
-    </p>
+<br />
+<h4><a name="OldFillValueMessage">IV.A.2.e. The Data Storage - 
+Fill Value (Old) Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Fill Value 
+      (old)</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0004</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td><p>The fill value message stores a single data value which 
+      is returned to the application when an uninitialized data element 
+      is read from a dataset. The fill value is interpreted with the 
+      same datatype as the dataset. If no fill value message is present 
+      then a fill value of all zero bytes is assumed.</p>
+      <p>This fill value message is deprecated in favor of the 
+      “new” fill value message (Message Type 0x0005) and 
+      is only written to the file for forward compatibility with 
+      versions of the HDF5 Library before the 1.6.0 version. 
+      Additionally, it only appears for datasets with a user-defined 
+      fill value (as opposed to the library default fill value or an 
+      explicitly set “undefined” fill value).</p>
+      </td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Fill Value Message (Old)
 	</caption>
@@ -10023,25 +10621,25 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Size</td>
+	  <td colspan="4">Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Fill Value <em>(optional, variable size)</em><br><br></td>
+	  <td colspan="4"><br />Fill Value <em>(optional, variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Size</td>
+	  <td><p>Size</p></td>
 	  <td>
             <p>This is the size of the Fill Value field in bytes.
             </p>
@@ -10049,7 +10647,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Fill Value</td>
+	  <td><p>Fill Value</p></td>
 	  <td>
             <p>The fill value.  The bytes of the fill value are interpreted
                 using the same datatype as for the dataset.
@@ -10058,28 +10656,33 @@ TABLE.list TD { border:none; }
 	</tr>
       </table>
     </div>
-    </p>
+    
 
-    <hr>
-    <h4><a name="FillValueMessage">Name: Data Storage - Fill Value </a></h4>
+<br />
+<h4><a name="FillValueMessage">IV.A.2.f. The Data Storage - 
+Fill Value Message</a></h4>
 
-    <p class="item"><b>Header Message Type:</b> 0x0005
-    </p>
-    <p class="item"><b>Length:</b> varies
-    </p>
-    <p class="item"><b>Status:</b> Required for dataset objects, may not be repeated.
-    </p>
-
-    <p class="item"><b>Description:</b> The fill value message stores a single
-        data value which is returned to the application when an uninitialized
-        data element is read from a dataset.  The fill value is interpreted
-        with the same datatype as the dataset.
-    </p>
-
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Fill 
+      Value</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0005</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Required for dataset objects; 
+      may not be repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>The fill value message stores a single data value which is 
+      returned to the application when an uninitialized data element 
+      is read from a dataset. The fill value is interpreted with the 
+      same datatype as the dataset.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Fill Value Message - Versions 1 & 2
 	</caption>
@@ -10099,94 +10702,94 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Size <em>(optional)</em></td>
+	  <td colspan="4">Size <em>(optional)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Fill Value <em>(optional, variable size)</em><br><br></td>
+	  <td colspan="4"><br />Fill Value <em>(optional, variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
             <p>The version number information is used for changes in the
                 format of the fill value message and is described here:
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Version</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Version</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>Never used
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>Initial version of this message.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>In this version, the Size and Fill Value fields are
                         only present if the Fill Value Defined field is set
                         to 1.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>3</code></td>
+                      <td align="center"><code>3</code></td>
                       <td>This version packs the other fields in the message
                         more efficiently than version 2.
                       </td>
                     </tr>
-                </table>
+                </table></p>
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Space Allocation Time</td>
+	  <td><p>Space Allocation Time</p></td>
 	  <td>
-            <p>When the storage space for the dataset's raw data will be
+            <p>When the storage space for the dataset’s raw data will be
                 allocated.  The allowed values are:
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Value</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Value</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>Not used.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>Early allocation.  Storage space for the entire dataset
                         should be allocated in the file when the dataset is
                         created.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>Late allocation.  Storage space for the entire dataset
                         should not be allocated until the dataset is written
                         to.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>3</code></td>
+                      <td align="center"><code>3</code></td>
                       <td>Incremental allocation.  Storage space for the
                         dataset should not be allocated until the portion
                         of the dataset is written to.  This is currently
@@ -10194,38 +10797,38 @@ TABLE.list TD { border:none; }
                         datasets.
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
           </td>
 	</tr>
 
 	<tr>
-	  <td>Fill Value Write Time</td>
+	  <td><p>Fill Value Write Time</p></td>
 	  <td>
-            <p>At the time that storage space for the dataset's raw data is
+            <p>At the time that storage space for the dataset’s raw data is
                 allocated, this value indicates whether the fill value should
                 be written to the raw data storage elements.  The allowed values
                 are:
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Value</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Value</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>On allocation.  The fill value is always written to
                         the raw data storage when the storage space is allocated.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>Never.  The fill value should never be written to
                         the raw data storage.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>Fill value written if set by user.  The fill value
                         will be written to the raw data storage when the storage
                         space is allocated only if the user explicitly set
@@ -10234,13 +10837,13 @@ TABLE.list TD { border:none; }
                         the raw data storage.
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
           </td>
 	</tr>
 
 	<tr>
-	  <td>Fill Value Defined</td>
+	  <td><p>Fill Value Defined</p></td>
 	  <td>
             <p>This value indicates if a fill value is defined for this
                 dataset.  If this value is 0, the fill value is undefined.
@@ -10252,31 +10855,31 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Size</td>
+	  <td><p>Size</p></td>
 	  <td>
             <p>This is the size of the Fill Value field in bytes.  This field
-                is not present if the Version field is >1 and the Fill Value
-                Defined field is set to 0.
+                is not present if the Version field is greater than 1, 
+                and the Fill Value Defined field is set to 0.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Fill Value</td>
+	  <td><p>Fill Value</p></td>
 	  <td>
             <p>The fill value.  The bytes of the fill value are interpreted
                 using the same datatype as for the dataset.  This field is
-                not present if the Version field is >1 and the Fill Value
-                Defined field is set to 0.
+                not present if the Version field is greater than 1, 
+                and the Fill Value Defined field is set to 0.
             </p>
           </td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Fill Value Message - Version 3
 	</caption>
@@ -10291,157 +10894,164 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Flags</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Size <em>(optional)</em></td>
+	  <td colspan="4">Size <em>(optional)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Fill Value <em>(optional, variable size)</em><br><br></td>
+	  <td colspan="4"><br />Fill Value <em>(optional, variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
             <p>The version number information is used for changes in the
                 format of the fill value message and is described here:
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Version</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Version</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>Never used
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>Initial version of this message.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>In this version, the Size and Fill Value fields are
                         only present if the Fill Value Defined field is set
                         to 1.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>3</code></td>
+                      <td align="center"><code>3</code></td>
                       <td>This version packs the other fields in the message
                         more efficiently than version 2.
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
           </td>
 	</tr>
 
 	<tr>
-	  <td>Flags</td>
+	  <td><p>Flags</p></td>
 	  <td>
-            <p>When the storage space for the dataset's raw data will be
+            <p>When the storage space for the dataset’s raw data will be
                 allocated.  The allowed values are:
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Bits</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Bits</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0-1</code></td>
+                      <td align="center"><code>0-1</code></td>
                       <td>Space Allocation Time, with the same
                         values as versions 1 and 2 of the message.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2-3</code></td>
+                      <td align="center"><code>2-3</code></td>
                       <td>Fill Value Write Time, with the same
                         values as versions 1 and 2 of the message.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>4</code></td>
+                      <td align="center"><code>4</code></td>
                       <td>Fill Value Undefined, indicating that the fill
-                        value has been marked as "undefined" for this dataset.
-                        Bits 4 and 5 can not both be set.
+                        value has been marked as “undefined” for this dataset.
+                        Bits 4 and 5 cannot both be set.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>5</code></td>
+                      <td align="center"><code>5</code></td>
                       <td>Fill Value Defined, with the same values as
                         versions 1 and 2 of the message.
-                        Bits 4 and 5 can not both be set.
+                        Bits 4 and 5 cannot both be set.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>6-7</code></td>
+                      <td align="center"><code>6-7</code></td>
                       <td>Reserved (zero).
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
           </td>
 	</tr>
 
 	<tr>
-	  <td>Size</td>
+	  <td><p>Size</p></td>
 	  <td>
             <p>This is the size of the Fill Value field in bytes.  This field
-                is not present if the Version field is >1 and the Fill Value
-                Defined flag is set to 0.
+                is not present if the Version field is greater than 1, 
+                and the Fill Value Defined flag is set to 0.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Fill Value</td>
+	  <td><p>Fill Value</p></td>
 	  <td>
             <p>The fill value.  The bytes of the fill value are interpreted
                 using the same datatype as for the dataset.  This field is
-                not present if the Version field is >1 and the Fill Value
-                Defined flag is set to 0.
+                not present if the Version field is greater than 1, 
+                and the Fill Value Defined flag is set to 0.
             </p>
           </td>
 	</tr>
       </table>
     </div>
-    </p>
-
-    <hr>
-    <h4><a name="LinkMessage">Name: Link Message</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x0006</p>
-    <p class="item"><b>Length:</b> varies </p>
-    <p class="item"><b>Status:</b> Optional, may be repeated. </p>
+    
 
-    <p class="item"><b>Description:</b>This message encodes the information
-        for a link in a group's object header, when the group is storing its
-        links "compactly", or in the group's fractal heap, when the group is
-        storing its links "densely".
-    </p>
-    <p>
-        A group is storing its links compactly when the fractal heap address in
-        the <em><a href="#LinkInfoMessage">Link Info Message</a></em>
-        is set to the "undefined address" value.
-    </p>
+<br />
+<h4><a name="LinkMessage">IV.A.2.g. The Link Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Link</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0006</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies </td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may be 
+      repeated. </td></tr>
+    <tr><td><b>Description:</b></td>
+    <td><p>This message encodes the information for a link in a 
+      group’s object header, when the group is storing its links 
+      “compactly”, or in the group’s fractal heap, 
+      when the group is storing its links “densely”.</p>
+      <p>A group is storing its links compactly when the fractal heap 
+      address in the <em><a href="#LinkInfoMessage">Link Info 
+      Message</a></em> is set to the “undefined address” 
+      value.</p></td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Link Message
 	</caption>
@@ -10457,79 +11067,79 @@ TABLE.list TD { border:none; }
 	  <td>Version</td>
 	  <td>Flags</td>
 	  <td>Link type <em>(optional)</em></td>
-          <td bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Creation Order <em>(8 bytes, optional)</em><br><br></td>
+	  <td colspan="4"><br />Creation Order <em>(8 bytes, optional)</em><br /><br /></td>
 	</tr>
 	<tr>
 	  <td>Link Name Character Set <em>(optional)</em></td>
 	  <td>Length of Link Name (variable size)</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4>Link Name (variable size)</td>
+	  <td colspan="4">Link Name (variable size)</td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Link Information (variable size)<br><br></td>
+	  <td colspan="4"><br />Link Information (variable size)<br /><br /></td>
 	</tr>
     </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number for this message. This document describes version 1.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	<td>Flags</td>
+	<td><p>Flags</p></td>
 	  <td><p>This field contains information about the link and controls
                 the presence of other fields below.
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Bits</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Bits</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0-1</code></td>
+                      <td align="center"><code>0-1</code></td>
                       <td>Determines the size of the <em>Length of Link Name</em>
                         field.
-                        <table class=list>
+                        <table class="list">
                             <tr>
-                              <th width="30%">Value</th>
-                              <th align=left>Description</th>
+                              <th width="20%" align="center">Value</th>
+                              <th width="80%" align="left">Description</th>
                             </tr>
 
                             <tr>
-                              <td align=center><code>0</code></td>
+                              <td align="center"><code>0</code></td>
                               <td>The size of the <em>Length of Link Name</em>
                                 field is 1 byte.
                               </td>
                             </tr>
                             <tr>
-                              <td align=center><code>1</code></td>
+                              <td align="center"><code>1</code></td>
                               <td>The size of the <em>Length of Link Name</em>
                                 field is 2 bytes.
                               </td>
                             </tr>
                             <tr>
-                              <td align=center><code>2</code></td>
+                              <td align="center"><code>2</code></td>
                               <td>The size of the <em>Length of Link Name</em>
                                 field is 4 bytes.
                               </td>
                             </tr>
                             <tr>
-                              <td align=center><code>3</code></td>
+                              <td align="center"><code>3</code></td>
                               <td>The size of the <em>Length of Link Name</em>
                                 field is 8 bytes.
                               </td>
@@ -10538,21 +11148,21 @@ TABLE.list TD { border:none; }
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2</code></td>
+                      <td align="center"><code>2</code></td>
                       <td>Creation Order Field Present: if set, the <em>Creation
                         Order</em> field is present.  If not set, creation order
                         information is not stored for links in this group.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>3</code></td>
+                      <td align="center"><code>3</code></td>
                       <td>Link Type Field Present: if set, the link is not
                         a hard link and the <em>Link Type</em> field is present.
                         If not set, the link is a hard link.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>4</code></td>
+                      <td align="center"><code>4</code></td>
                       <td>Link Name Character Set Field Present: if set, the
                         link name is not represented with the ASCII character
                         set and the <em>Link Name Character Set</em> field is
@@ -10561,115 +11171,116 @@ TABLE.list TD { border:none; }
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>5-7</code></td>
+                      <td align="center"><code>5-7</code></td>
                       <td>Reserved (zero).
                       </td>
                     </tr>
-                </table>
-          </p>
+                </table></p>
+          
           </td>
 	</tr>
 
 	<tr>
-	  <td>Link type</td>
+	  <td><p>Link type</p></td>
 	  <td><p>This is the link class type and can be one of the following
                 values:
-                <table class=list>
+                <table class="list">
                     <tr>
-                      <th width="30%">Value</th>
-                      <th align=left>Description</th>
+                      <th width="20%" align="center">Value</th>
+                      <th width="80%" align="left">Description</th>
                     </tr>
 
                     <tr>
-                      <td align=center><code>0</code></td>
+                      <td align="center"><code>0</code></td>
                       <td>A hard link (should never be stored in the file)
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>1</code></td>
+                      <td align="center"><code>1</code></td>
                       <td>A soft link.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>2-63</code></td>
+                      <td align="center"><code>2-63</code></td>
                       <td>Reserved for future HDF5 internal use.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>64</code></td>
+                      <td align="center"><code>64</code></td>
                       <td>An external link.
                       </td>
                     </tr>
                     <tr>
-                      <td align=center><code>65-255</code></td>
+                      <td align="center"><code>65-255</code></td>
                       <td>Reserved, but available for user-defined link types.
                       </td>
                     </tr>
-                </table>
-            </p>
+                </table></p>
+            
 	    <p>This field is present if bit 3 of <em>Flags</em> is set.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Creation Order</td>
-	  <td><p>This 64-bit value is an index of the link's creation time within
+	  <td><p>Creation Order</p></td>
+	  <td><p>This 64-bit value is an index of the link’s creation time within
             the group.  Values start at 0 when the group is created an increment
             by one for each link added to the group.  Removing a link from a
-            group does not change existing links' creation order field.
+            group does not change existing links’ creation order field.
             </p>
 	    <p>This field is present if bit 2 of <em>Flags</em> is set.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Link Name Character Set</td>
-	  <td><p>This is the character set for encoding the link's name:
-            <table width=100% class=list>
+	  <td><p>Link Name Character Set</p></td>
+	  <td><p>This is the character set for encoding the link’s name:
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>ASCII character set encoding (this should never be stored
                     in the file)
                   </td>
                 </tr>
 
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>UTF-8 character set encoding
                   </td>
                 </tr>
-            </table>
-            </p>
+            </table></p>
+            
 	    <p>This field is present if bit 4 of <em>Flags</em> is set.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Length of link name</td>
-	  <td><p>This is the length of the link's name.  The size of this field 
+	  <td><p>Length of link name</p></td>
+	  <td><p>This is the length of the link’s name.  The size of this field 
 	    depends on bits 0 and 1 of <em>Flags</em>.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Link name</td>
+	  <td><p>Link name</p></td>
 	  <td><p>This is the name of the link, non-NULL terminated.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Link information</td>
+	  <td><p>Link information</p></td>
 	  <td><p>The format of this field depends on the <em>link type</em>.</p>
-            <p>For hard links, the field is formatted as follows:
-            <table class=list>
+            <p>For <b>hard</b> links, the field is formatted as follows:
+            
+            <table class="list">
                 <tr>
-                  <td width=30%><i>Size of Offsets</i> bytes:</td>
-                  <td>The address of the object header for the object that the
+                  <td width="20%"><i>Size of Offsets</i> bytes:</td>
+                  <td width="80%">The address of the object header for the object that the
                     link points to.
                   </td>
                 </tr>
@@ -10677,11 +11288,12 @@ TABLE.list TD { border:none; }
             </p>
 
             <p>
-            For soft links, the field is formatted as follows:
-            <table class=list>
+            For <b>soft</b> links, the field is formatted as follows:
+            
+            <table class="list">
                 <tr>
-                  <td width=30%>Bytes 1-2:</td>
-                  <td>Length of soft link value.</td>
+                  <td width="20%">Bytes 1-2:</td>
+                  <td width="80%">Length of soft link value.</td>
                 </tr>
                 <tr>
                   <td><em>Length of soft link value</em> bytes:</td>
@@ -10689,66 +11301,81 @@ TABLE.list TD { border:none; }
                     soft link.
                   </td>
                 </tr>
-	    </table>
+            </table>
+            </p>
 
             <p>
-            For external links, the field is formatted as follows:
-            <table class=list>
+            For <b>external</b> links, the field is formatted as follows:
+            
+            <table class="list">
                 <tr>
-                  <td width=30%>Bytes 1-2:</td>
-                  <td>Length of external link value.</td>
+                  <td width="20%">Bytes 1-2:</td>
+                  <td width="80%">Length of external link value.</td>
                 </tr>
                 <tr>
                   <td><em>Length of external link value</em> bytes:</td>
-                  <td>The first byte contains the version number in the upper 4 bits
-		    and flags in the lower 4 bits for the external link. 
-		    Both version and flags are defined to be zero in this document.
-		    The remaining bytes consist of two NULL-terminated strings, with no padding between
-                    them.  The first string is the name of the HDF5 file
-                    containing the object linked to and the second string is
-                    the full path to the object linked to, within the HDF5
-                    file's group hierarchy.
+                  <td>The first byte contains the version number in the 
+                  upper 4 bits and flags in the lower 4 bits for the external 
+                  link. Both version and flags are defined to be zero in 
+                  this document. The remaining bytes consist of two 
+                  NULL-terminated strings, with no padding between them. 
+                  The first string is the name of the HDF5 file containing 
+                  the object linked to and the second string is the full path 
+                  to the object linked to, within the HDF5 file’s 
+                  group hierarchy.
                   </td>
                 </tr>
             </table>
+            </p>
 
             <p>
-            For user-defined links, the field is formatted as follows:
-            <table class=list>
+            For <b>user-defined</b> links, the field is formatted as follows:
+            
+            <table class="list">
                 <tr>
-                  <td width=30%>Bytes 1-2:</td>
-                  <td>Length of user-defined data.</td>
+                  <td width="20%">Bytes 1-2:</td>
+                  <td width="80%">Length of user-defined data.</td>
                 </tr>
                 <tr>
-                  <td><em>Length of used-defined link value</em> bytes:</td>
+                  <td><em>Length of user-defined link value</em> bytes:</td>
                   <td>The data supplied for the user-defined link type.</td>
                 </tr>
             </table>
+            </p>
 
           </td>
         </tr>
       </table>
     </div>
 
-    <hr>
-    <h4><a name="ExternalFileListMessage">Name: Data Storage -
-	External Data Files</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x0007 </p>
-    <p class="item"><b>Length:</b> varies</p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated.</p>
-
-    <p class="item"><b>Purpose and Description:</b> The external data storage
-      message indicates that the data for an object is stored outside the HDF5
-      file.  The filename of the object is stored as a Universal
-      Resource Location (URL) of the actual filename containing the
-      data. An external file list record also contains the byte offset
-      of the start of the data within the file and the amount of space
-      reserved in the file for that data.</p>
+<br />
+<h4><a name="ExternalFileListMessage">IV.A.2.h. The Data Storage - 
+External Data Files Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> External 
+      Data Files</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0007</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>The external data storage message indicates that the data 
+      for an object is stored outside the HDF5 file. The filename of 
+      the object is stored as a Universal Resource Location (URL) of 
+      the actual filename containing the data. An external file list 
+      record also contains the byte offset of the start of the data 
+      within the file and the amount of space reserved in the file 
+      for that data.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  External File List Message
 	</caption>
@@ -10762,57 +11389,67 @@ TABLE.list TD { border:none; }
 
 	<tr>
 	  <td>Version</td>
-	  <td colspan=3>Reserved (zero)</td>
+	  <td colspan="3">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Allocated Slots</td>
-	  <td colspan=2>Used Slots</td>
+	  <td colspan="2">Allocated Slots</td>
+	  <td colspan="2">Used Slots</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Heap Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Heap Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Slot Definitions...<br><br></td>
+	  <td colspan="4"><br />Slot Definitions...<br /><br /></td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>	
 
-    <br>
-    <div align=center>
-	<table class=desc>
+    <br />
+    <div align="center">
+	<table class="desc">
 	  <tr>
 	    <th width="30%">Field Name</th>
 	    <th>Description</th>
 	  </tr>
 	
 	  <tr>
-	    <td>Version</td>
+	    <td><p>Version</p></td>
 	    <td>
 	      <p>The version number information is used for changes in the format of
                 External Data Storage Message and is described here:
-		 <table class=list>
+		 <table class="list">
 		     <tr>
-			<th width="30%">Version</th>
-			<th align=left>Description</th>
+			<th width="20%" align="center">Version</th>
+			<th width="80%" align="left">Description</th>
 		     </tr>
 		     <tr>
-			<td align=center><code>0</code></td>
-			<td>Never used.
+			<td align="center"><code>0</code></td>
+			<td>Never used.</td>
 		     </tr>
 		     <tr>
-			<td align=center><code>1</code></td>
-			<td>The current version used by the library.
+			<td align="center"><code>1</code></td>
+			<td>The current version used by the library.</td>
 		     </tr>
-		  </table>		
-	      </p>	
+		  </table></p>
+	      
 	    </td>
 	  </tr>
 
 	  <tr>
-	    <td>Allocated Slots</td>
+	    <td><p>Allocated Slots</p></td>
 	    <td>
 	      <p>The total number of slots allocated in the message.  Its value must be at least as
 		 large as the value contained in the Used Slots field. (The current library simply
@@ -10821,14 +11458,14 @@ TABLE.list TD { border:none; }
 	  </tr>
 
 	  <tr>
-	    <td>Used Slots</td>
+	    <td><p>Used Slots</p></td>
 	    <td>
 	      <p>The number of initial slots which contains valid information.</p>
 	    </td>
 	  </tr>
 
 	  <tr>
-	    <td>Heap Address</td>
+	    <td><p>Heap Address</p></td>
 	    <td>
 	      <p>This is the address of a local heap which contains the names for the external 
 		 files (The local heap information can be found in Disk Format Level 1D in this
@@ -10837,7 +11474,7 @@ TABLE.list TD { border:none; }
 	  </tr>
 
 	  <tr>
-	    <td>Slot Definitions</td>
+	    <td><p>Slot Definitions</p></td>
 	    <td>
 	      <p>The slot definitions are stored in order according to the array addresses they 
 		 represent.</p>
@@ -10847,9 +11484,9 @@ TABLE.list TD { border:none; }
 	</table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  External File List Slot 
 	</caption>
@@ -10862,43 +11499,53 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name Offset in Local Heap<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Name Offset in Local Heap<sup>L</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Offset in External Data File<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Offset in External Data File<sup>L</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Data Size in External File<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Data Size in External File<sup>L</sup><br /><br /></td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>	
 
-    <br>
-    <div align=center>
-	<table class=desc>
+    <br />
+    <div align="center">
+	<table class="desc">
 	  <tr>
 	    <th width="30%">Field Name</th>
 	    <th>Description</th>
 	  </tr>
 	
 	  <tr>
-	    <td>Name Offset in Local Heap</td>
+	    <td><p>Name Offset in Local Heap</p></td>
 	    <td>
 		<p>The byte offset within the local name heap for the name
 	    	of the file.  File names are stored as a URL which has a
 	    	protocol name, a host name, a port number, and a file
 	    	name:
 		<code><em>protocol</em>:<em>port</em>//<em>host</em>/<em>file</em></code>.
-		If the protocol is omitted then "file:" is assumed.  If
+		If the protocol is omitted then “file:” is assumed.  If
 		the port number is omitted then a default port for that
 		protocol is used.  If both the protocol and the port
 		number are omitted then the colon can also be omitted. If
 		the double slash and host name are omitted then
-		"localhost" is assumed.  The file name is the only
+		“localhost” is assumed.  The file name is the only
 		mandatory part, and if the leading slash is missing then
-		it is relative to the application's current working
+		it is relative to the application’s current working
 		directory (the use of relative names is not
 		recommended).
                 </p>
@@ -10906,7 +11553,7 @@ TABLE.list TD { border:none; }
 	  </tr>
 
 	  <tr>
-	    <td>Offset in External Data File</td>
+	    <td><p>Offset in External Data File</p></td>
 	    <td>
 	  	<p>This is the byte offset to the start of the data in the
 	        specified file. For files that contain data for a single
@@ -10915,7 +11562,7 @@ TABLE.list TD { border:none; }
 	  </tr>
 
 	  <tr>
-	    <td>Data Size in External File</td>
+	    <td><p>Data Size in External File</p></td>
 	    <td>
 		<p>This is the total number of bytes reserved in the
 		specified file for raw data storage.  For a file that
@@ -10923,51 +11570,57 @@ TABLE.list TD { border:none; }
 		extendable, the size will usually be the exact size of the
 		dataset.  However, by making the size larger one allows
 		HDF5 to extend the dataset. The size can be set to a value
-		larger than the entire file since HDF5 will read zeros
+		larger than the entire file since HDF5 will read zeroes
 		past the end of the file without failing.</p>
 	    </td>
 	  </tr>
 	</table>
     </div>
-    </p>
+    
 
+<br />
+<h4><a name="LayoutMessage">IV.A.2.i. The Data Storage - Layout 
+Message</a></h4>
 
-    <hr>
-    <h4><a name="LayoutMessage">Name: Data Storage - Layout</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x0008</p>
-    <p class="item"><b>Length:</b> varies</p>
-    <p class="item"><b>Status:</b> Required for datasets, may not be repeated.</p>
-
-    <p class="item"><b>Purpose and Description:</b> Data layout describes how the
-      elements of a multi-dimensional array are stored in the HDF5 file.
-      Three types of data layout are supported:
-
-    <ol>
-      <li>Contiguous: The array is stored in one contiguous area of the file.
-	This layout requires that the size of the array be constant and
-	does not permit chunking, compression, checksums, encryption,
-	etc.  The message stores the total storage size of the array.  The
-	offset of an element from the beginning of the storage area is
-	computed as in a C array.
-
-      <li>Chunked: The array domain is regularly decomposed into chunks and
-	each chunk is allocted and stored separately.  This layout supports
-	arbitrary element traversals, compression, encryption, and
-	checksums, etc.  (these features are described in other
-	messages).  The message stores the size of a chunk instead of
-	the size of the entire array; the storage size of the entire array can
-	be calculated by traversing the B-tree that stores the chunk
-	addresses.
-
-      <li>Compact: The array is stored in one contiguous block, as part of
-        this object header message.
-    </ol>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Data Storage - 
+      Layout</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0008</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Required for datasets; may not 
+      be repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>Data layout describes how the elements of a multi-dimensional 
+    array are stored in the HDF5 file. Three types of data layout 
+    are supported:
+      <ol>
+        <li>Contiguous: The array is stored in one contiguous area of 
+        the file. This layout requires that the size of the array be 
+        constant: data manipulations such as chunking, compression, 
+        checksums, or encryption are not permitted. The message stores 
+        the total storage size of the array. The offset of an element 
+        from the beginning of the storage area is computed as in a C 
+        array.</li>
+        <li>Chunked: The array domain is regularly decomposed into 
+        chunks, and each chunk is allocated and stored separately. This 
+        layout supports arbitrary element traversals, compression, 
+        encryption, and checksums. (these features are described 
+        in other messages). The message stores the size of a chunk 
+        instead of the size of the entire array; the storage size of 
+        the entire array can be calculated by traversing the B-tree 
+        that stores the chunk addresses.</li>
+        <li>Compact: The array is stored in one contiguous block, as 
+        part of this object header message.</li>
+      </ol></td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
     
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Data Layout Message (Versions 1 and 2)
 	</caption>
@@ -10987,118 +11640,129 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Reserved <em>(zero)</em></td>
+	  <td colspan="4">Reserved <em>(zero)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Data Address<sup>O</sup> <em>(optional)</em><br><br></td>
+	  <td colspan="4"><br />Data Address<sup>O</sup> <em>(optional)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension 0 Size</td>
+	  <td colspan="4">Dimension 0 Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension 1 Size</td>
+	  <td colspan="4">Dimension 1 Size</td>
 	</tr>
 	
 	<tr>
-	  <td colspan=4>...</td>
+	  <td colspan="4">...</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension #n Size</td>
+	  <td colspan="4">Dimension #n Size</td>
 	</tr>
 	
 	<tr>
-	  <td colspan=4>Dataset Element Size <em>(optional)</em></td>
+	  <td colspan="4">Dataset Element Size <em>(optional)</em></td>
 	</tr>
 	
 	<tr>
-	  <td colspan=4>Compact Data Size <em>(optional)</em></td>
+	  <td colspan="4">Compact Data Size <em>(optional)</em></td>
 	</tr>
 	
 	<tr>
-	  <td colspan=4><br>Compact Data... <em>(variable size, optional)</em><br><br></td>
+	  <td colspan="4"><br />Compact Data... <em>(variable size, optional)</em><br /><br /></td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
 	  <th width="30%">Field Name</th>
 	  <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
 	    <p>The version number information is used for changes in the format of the data 
-	    layout message and is described here:</p>
-	      <table class=list>
+	    layout message and is described here:
+	      <table class="list">
 		<tr>
-		  <th width="30%">Version</th>
-		  <th align=left>Description</th>
+		  <th width="20%" align="center">Version</th>
+		  <th width="80%" align="left">Description</th>
 		</tr>
 
 		<tr>
-		  <td align=center><code>0</code></td>
+		  <td align="center"><code>0</code></td>
 		  <td>Never used.</td>
 		</tr>
 
 		<tr>
-		  <td align=center><code>1</code></td>
+		  <td align="center"><code>1</code></td>
 		  <td>Used by version 1.4 and before of the library to encode layout information.
 		      Data space is always allocated when the data set is created.</td>
 		</tr>
 
 		<tr>
-		  <td align=center><code>2</code></td>
+		  <td align="center"><code>2</code></td>
 		  <td>Used by version 1.6.x of the library to encode layout information.
 		      Data space is allocated only when it is necessary.</td>
 		</tr>
-	      </table>
+	      </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Dimensionality</td>
-	  <td><p>An array has a fixed dimensionality.  This field
-	    specifies the number of dimension size fields later in the
-	    message.  The value stored for chunked storage is 1 greater than
-            the number of dimensions in the dataset's dataspace (i.e. 2 is
-            stored for a 1 dimensional dataset, etc).
+	  <td><p>Dimensionality</p></td>
+	  <td><p>An array has a fixed dimensionality.  This field 
+	    specifies the number of dimension size fields later in the 
+	    message. The value stored for chunked storage is 1 greater than 
+        the number of dimensions in the dataset’s dataspace. 
+        For example, 2 is stored for a 1 dimensional dataset.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Layout Class</td>
+	  <td><p>Layout Class</p></td>
 	  <td><p>The layout class specifies the type of storage for the data
             and how the other fields of the layout message are to be
             interpreted.
-	      <table class=list>
+            
+	      <table class="list">
 		<tr>
-		  <th width="30%">Value</th>
-		  <th align=left>Description</th>
+		  <th width="20%" align="center">Value</th>
+		  <th width="80%" align="left">Description</th>
 		</tr>
 
 		<tr>
-		  <td align=center><code>0</code></td>
+		  <td align="center"><code>0</code></td>
 		  <td>Compact Storage
                   </td>
 		</tr>
 
 		<tr>
-		  <td align=center><code>1</code></td>
+		  <td align="center"><code>1</code></td>
 		  <td>Contiguous Storage
                   </td>
 		</tr>
 
 		<tr>
-		  <td align=center><code>2</code></td>
+		  <td align="center"><code>2</code></td>
 		  <td>Chunked Storage
                   </td>
 		</tr>
@@ -11108,19 +11772,19 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Data Address</td>
+	  <td><p>Data Address</p></td>
 	  <td><p>For contiguous storage, this is the address of the raw
 	    data in the file.  For chunked storage this is the address
 	    of the v1 B-tree that is used to look up the addresses of the
 	    chunks.  This field is not present for compact storage.
-            If the version for this message is >1, the address
-            may have the "undefined address" value, to indicate that
+            If the version for this message is greater than 1, the address
+            may have the “undefined address” value, to indicate that
             storage has not yet been allocated for this array.</p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Size</td>
+	  <td><p>Dimension #n Size</p></td>
 	  <td><p>For contiguous and compact storage the dimensions define
             the entire size of the array while for chunked storage they define
             the size of a single chunk.  In all cases, they are in units of 
@@ -11132,7 +11796,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dataset Element Size</td>
+	  <td><p>Dataset Element Size</p></td>
 	  <td><p>The size of a dataset element, in bytes.  This field is only
             present for chunked storage.
             </p>
@@ -11140,14 +11804,15 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Compact Data Size</td>
+	  <td><p>Compact Data Size</p></td>
 	  <td><p>This field is only present for compact data storage.
             It contains the size of the raw data for the dataset array, in
             bytes.</p>
           </td>
+    </tr>
 
 	<tr>
-	  <td>Compact Data</td>
+	  <td><p>Compact Data</p></td>
 	  <td><p>This field is only present for compact data storage.
             It contains the raw data for the dataset array.</p>
           </td>
@@ -11155,13 +11820,13 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
+    <br />
     <p>Version 3 of this message re-structured the format into specific
-        properties that are required for each layout class.
+        properties that are required for each layout class.</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  <b>Data Layout Message (Version 3)</b>
 	</caption>
@@ -11176,68 +11841,68 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Layout Class</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Properties <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Properties <em>(variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
 	  <th width="30%">Field Name</th>
 	  <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td>
 	    <p>The version number information is used for changes in the format of layout message
-	       and is described here:</p>
-	      <table class=list>	
+	       and is described here:
+	      <table class="list">	
 		<tr>
-		  <th width="30%">Version</th>
-		  <th align=left>Description</th>
+		  <th width="20%" align="center">Version</th>
+		  <th width="80%" align="left">Description</th>
 		</tr>
 
 		<tr>
-		  <td align=center><code>3</code></td>
+		  <td align="center"><code>3</code></td>
 		  <td>Used by the version 1.6.3 and later of the library to store properties 
 		      for each layout class.</td>
 		</tr>
-	      </table>
+	      </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Layout Class</td>
+	  <td><p>Layout Class</p></td>
 	  <td><p>The layout class specifies the type of storage for the data
             and how the other fields of the layout message are to be
             interpreted.
-	      <table class=list>
+	      <table class="list">
 		<tr>
-		  <th width="30%">Value</th>
-		  <th align=left>Description</th>
+		  <th width="20%" align="center">Value</th>
+		  <th width="80%" align="left">Description</th>
 		</tr>
 
 		<tr>
-		  <td align=center><code>0</code></td>
-		  <td>Compact Storage
+		  <td align="center"><code>0</code></td>
+		  <td>Compact Storage 
                   </td>
 		</tr>
 
 		<tr>
-		  <td align=center><code>1</code></td>
+		  <td align="center"><code>1</code></td>
 		  <td>Contiguous Storage
                   </td>
 		</tr>
 
 		<tr>
-		  <td align=center><code>2</code></td>
+		  <td align="center"><code>2</code></td>
 		  <td>Chunked Storage
                   </td>
 		</tr>
@@ -11247,7 +11912,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Properties</td>
+	  <td><p>Properties</p></td>
 	  <td><p>This variable-sized field encodes information specific to each
             layout class and is described below.  If there is no property
             information specified for a layout class, the size of this field
@@ -11256,13 +11921,13 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
+    <br />
     <p>Class-specific information for compact layout (Class 0):  (Note: The dimensionality information
-       is in the Dataspace message)
+       is in the Dataspace message)</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Compact Storage Property Description
 	</caption>
@@ -11275,26 +11940,26 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=2>Size</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Size</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 	
 	<tr>
-	  <td colspan=4><br>Raw Data... <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Raw Data... <em>(variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Size</td>
+	  <td><p>Size</p></td>
 	  <td><p>This field contains the size of the raw data for the dataset
                 array, in bytes.
               </p>
@@ -11302,20 +11967,20 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Raw Data</td>
+	  <td><p>Raw Data</p></td>
 	  <td><p>This field contains the raw data for the dataset array.</p></td>
 	</tr>
       </table>
     </div>
-    </p>
+    
 
-    <br>
+    <br />
     <p>Class-specific information for contiguous layout (Class 1):  (Note: The dimensionality information
-       is in the Dataspace message)
+       is in the Dataspace message)</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Contiguous Storage Property Description
 	</caption>
@@ -11328,32 +11993,48 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Size<sup>L</sup><br><br></td>
+	  <td colspan="4"><br />Size<sup>L</sup><br /><br /></td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Address</td>
+	  <td><p>Address</p></td>
 	  <td><p>This is the address of the raw data in the file.
-            The address may have the "undefined address" value, to indicate
+            The address may have the “undefined address” value, to indicate
             that storage has not yet been allocated for this array.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Size</td>
+	  <td><p>Size</p></td>
 	  <td><p>This field contains the size allocated to store the raw data,
                 in bytes.
               </p>
@@ -11361,14 +12042,14 @@ TABLE.list TD { border:none; }
 	</tr>
       </table>
     </div>
-    </p>
+    
 
-    <br>
-    <p>Class-specific information for chunked layout (Class 2):
+    <br />
+    <p>Class-specific information for chunked layout (Class 2):</p>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Chunked Storage Property Description
 	</caption>
@@ -11382,59 +12063,69 @@ TABLE.list TD { border:none; }
 
 	<tr>
 	  <td>Dimensionality</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension 0 Size</td>
+	  <td colspan="4">Dimension 0 Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension 1 Size</td>
+	  <td colspan="4">Dimension 1 Size</td>
 	</tr>
 	
 	<tr>
-	  <td colspan=4>...</td>
+	  <td colspan="4">...</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dimension #n Size</td>
+	  <td colspan="4">Dimension #n Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Dataset Element Size</td>
+	  <td colspan="4">Dataset Element Size</td>
 	</tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Dimensionality</td>
+	  <td><p>Dimensionality</p></td>
 	  <td><p>A chunk has a fixed dimensionality.  This field specifies 
 	    the number of dimension size fields later in the message.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Address</td>
+	  <td><p>Address</p></td>
 	  <td><p>This is the address of the v1 B-tree that is used to look up the
             addresses of the chunks that actually store portions of the array
-            data.  The address may have the "undefined address" value, to
+            data.  The address may have the “undefined address” value, to
             indicate that storage has not yet been allocated for this array.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Dimension #n Size</td>
+	  <td><p>Dimension #n Size</p></td>
 	  <td><p>These values define the dimension size of a single chunk, in
             units of array elements (not bytes).  The first dimension stored in
             the list of dimensions is the slowest changing dimension and the
@@ -11444,26 +12135,36 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dataset Element Size</td>
+	  <td><p>Dataset Element Size</p></td>
 	  <td><p>The size of a dataset element, in bytes.
             </p>
           </td>
 	</tr>
       </table>
     </div>
+    
+<br />
+<h4><a name="BogusMessage">IV.A.2.j. The Bogus Message</a></h4>
 
-    <hr>
-    <h4><a name="BogusMessage">Name: Bogus</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x0009</p>
-    <p class="item"><b>Length:</b> 4 bytes</p>
-    <p class="item"><b>Status:</b> For testing only, should never be stored in valid file</p>
-    <p class="item"><b>Purpose and Description:</b> This message is used for
-        testing the HDF5 library's response to an "unknown" message type and
-        should never be encounted in a valid HDF5 file.
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Bogus</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0009</td></tr>
+    <tr><td colspan="2"><b>Length:</b> 4 bytes</td></tr>
+    <tr><td colspan="2"><b>Status:</b> For testing only; should never 
+      be stored in a valid file.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>This message is used for testing the HDF5 Library’s 
+      response to an “unknown” message type and should 
+      never be encountered in a valid HDF5 file.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Bogus Message
 	</caption>
@@ -11476,46 +12177,56 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Bogus Value</td>
+	  <td colspan="4">Bogus Value</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
 	  <th width="30%">Field Name</th>
 	  <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Bogus Value</td>
+	  <td><p>Bogus Value</p></td>
 	  <td>
-	    <p>This value should always be: <code>0xdeadbeef</code>.
+	    <p>This value should always be: <code>0xdeadbeef</code>.</p>
 	  </td>
 	</tr>
       </table>
     </div>
-    </p>
-
-    <hr>
-    <h4><a name="GroupInfoMessage">Name: Group Info</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x000A</p>
-    <p class="item"><b>Length:</b> varies</p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated.</p>
-    <p class="item"><b>Description:</b> This message stores information for the
-        constants defining a "new style" group's behavior.  Constant information
-        will be stored in this message and variable information will be stored
-        in the <a href="#LinkInfoMessage">Link Info</a> message.</p>
-
-    <p>Note: the "estimated entry" information below is used when determining
-        the size of the object header for the group when it is created.
-    </p>
+    
+<br />
+<h4><a name="GroupInfoMessage">IV.A.2.k. The Group Info Message
+</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Group Info</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x000A</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td><p>This message stores information for the constants defining 
+      a “new style” group’s behavior. Constant 
+      information will be stored in this message and variable 
+      information will be stored in the 
+      <a href="#LinkInfoMessage">Link Info</a> message.</p>
+      <p>Note: the “estimated entry” information below is 
+      used when determining the size of the object header for the 
+      group when it is created.</p></td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Group Info Message
 	</caption>
@@ -11530,75 +12241,75 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Flags</td>
-	  <td colspan=2>Link Phase Change: Maximum Compact Value <em>(optional)</em></td>
+	  <td colspan="2">Link Phase Change: Maximum Compact Value <em>(optional)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=2>Link Phase Change: Minimum Dense Value <em>(optional)</em></td>
-	  <td colspan=2>Estimated Number of Entries <em>(optional)</em></td>
+	  <td colspan="2">Link Phase Change: Minimum Dense Value <em>(optional)</em></td>
+	  <td colspan="2">Estimated Number of Entries <em>(optional)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=2>Estimated Link Name Length of Entries <em>(optional)</em></td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Estimated Link Name Length of Entries <em>(optional)</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number for this message. This document describes version 0.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	<td>Flags</td>
+	<td><p>Flags</p></td>
 	  <td><p>This is the group information flag with the following definition:
-	      </p>
-            <table class=list>
+	      
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>If set, link phase change values are stored.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>If set, the estimated entry information is non-default
                     and is stored.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>2-7</code></td>
+                  <td align="center"><code>2-7</code></td>
                   <td>Reserved</td>
                 </tr>
-	    </table>
+	    </table></p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Link Phase Change: Maximum Compact Value</td>
-	  <td><p>The is the maximum number of links to store "compactly" (in
-                the group's object header).</p>
+	  <td><p>Link Phase Change: Maximum Compact Value</p></td>
+	  <td><p>The is the maximum number of links to store “compactly” (in
+                the group’s object header).</p>
 	      <p>This field is present if bit 0 of <em>Flags</em> is set.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Link Phase Change: Minimum Dense Value</td>
-	  <td><p>This is the minimum number of links to store "densely" (in
-                the group's fractal heap).  The fractal heap's address is
+	  <td><p>Link Phase Change: Minimum Dense Value</p></td>
+	  <td><p>This is the minimum number of links to store “densely” (in
+                the group’s fractal heap).  The fractal heap’s address is
                 located in the <a href="#LinkInfoMessage">Link Info</a>
                 message.</p>
 	      <p>This field is present if bit 0 of <em>Flags</em> is set.</p>
@@ -11606,7 +12317,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Estimated Number of Entries</td>
+	  <td><p>Estimated Number of Entries</p></td>
 	  <td><p>This is the estimated number of entries in groups.</p>
 	      <p>If this field is not present, the default value of <code>4</code>
                 will be used for the estimated number of group entries.</p>
@@ -11615,7 +12326,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Estimated Link Name Length of Entries</td>
+	  <td><p>Estimated Link Name Length of Entries</p></td>
 	  <td><p>This is the estimated length of entry name.</p>
 	      <p>If this field is not present, the default value of <code>8</code>
                 will be used for the estimated link name length of group entries.</p>
@@ -11626,29 +12337,37 @@ TABLE.list TD { border:none; }
       </table>
     </div>
     </p>
+    
+<br />
+<h4><a name="FilterMessage">IV.A.2.l. The Data Storage - Filter 
+Pipeline Message</a></h4>
 
-    <hr>
-    <h4><a name="FilterMessage">Name: Data Storage - Filter Pipeline</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x000B</p>
-    <p class="item"><b>Length:</b> varies</p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated.</p>
-
-    <p class="item"><b>Description:</b> This message describes the
-      filter pipeline which should be applied to the data stream by
-      providing filter identification numbers, flags, a name, and
-      client data.</p>
-
-    <p>This message may be present in the object headers of both
-        dataset and group objects. For datasets, it specifies the
-        filters to apply to raw data. For groups, it specifies the
-        filters to apply to the group's fractal heap. Currently,
-        only datasets using chunked data storage use the filter
-        pipeline on their raw data.</p>
-
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> 
+      Data Storage - Filter Pipeline</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x000B</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td><p>This message describes the filter pipeline which should 
+      be applied to the data stream by providing filter identification 
+      numbers, flags, a name, and client data.</p>
+      <p>This message may be present in the object headers of both 
+      dataset and group objects. For datasets, it specifies the 
+      filters to apply to raw data. For groups, it specifies the 
+      filters to apply to the group’s fractal heap. Currently, 
+      only datasets using chunked data storage use the filter 
+      pipeline on their raw data.</p></td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Filter Pipeline Message - Version 1
 	</caption>
@@ -11663,51 +12382,51 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Number of Filters</td>
-	  <td colspan=2>Reserved (zero)</td>
+	  <td colspan="2">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Reserved (zero)</td>
+	  <td colspan="4">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Filter Description List <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Filter Description List <em>(variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number for this message.  This table
 	    describes version 1.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Number of Filters</td>
+	  <td><p>Number of Filters</p></td>
 	  <td><p>The total number of filters described in this
 	    message. The maximum possible number of filters in a
 	    message is 32.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Filter Description List</td>
+	  <td><p>Filter Description List</p></td>
 	  <td><p>A description of each filter.  A filter description
 	    appears in the next table.</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Filter Description
 	</caption>
@@ -11720,127 +12439,129 @@ TABLE.list TD { border:none; }
 	</tr>  
 
 	<tr>
-	  <td colspan=2>Filter Identification Value</td>
-	  <td colspan=2>Name Length</td>
+	  <td colspan="2">Filter Identification Value</td>
+	  <td colspan="2">Name Length</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Flags</td>
-	  <td colspan=2>Number Client Data Values</td>
+	  <td colspan="2">Flags</td>
+	  <td colspan="2">Number Client Data Values</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name <em>(variable size, optional)</em><br><br></td>
+	  <td colspan="4"><br />Name <em>(variable size, optional)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Client Data <em>(variable size, optional)</em><br><br></td>
+	  <td colspan="4"><br />Client Data <em>(variable size, optional)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Padding <em>(variable size, optional)</em></td>
+	  <td colspan="4">Padding <em>(variable size, optional)</em></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Filter Identification Value</td>
+	  <td><p>Filter Identification Value</p></td>
 	  <td>
             <p>
             This value, often referred to as a filter identifier,
             is designed to be a unique identifier for the filter. 
             Values from zero through 32,767 are reserved for filters 
-            supported by The HDF Group in the HDF5 library and for 
+            supported by The HDF Group in the HDF5 Library and for 
             filters requested and supported by third parties. 
             Filters supported by The HDF Group are documented immediately
             below.  Information on 3rd-party filters can be found at 
             The HDF Group’s 
             <a href="http://www.hdfgroup.org/services/contributions.html">
-            Contributions</a> page.
+            Contributions</a> page.</p>
             
             <p>
             To request a filter identifier, please contact 
             The HDF Group’s Help Desk at
-            <img src="Graphics/help.png" valign="center" height=14>.
-            You will be asked to provide the following information:
+            <img src="Graphics/help.png" valign="middle" height="14"
+            alt="The HDF Group Help Desk">.
+            You will be asked to provide the following information:</p>
             <ol>
               <li>Contact information for the developer requesting the
-                  new identifier 
-              <li>A short description of the new filter 
+                  new identifier</li> 
+              <li>A short description of the new filter</li> 
               <li>Links to any relevant information, including licensing 
-                  information 
+                  information</li> 
             </ol>
             <p>
             Values from 32768 to 65535 are reserved for non-distributed uses 
             (for example, internal company usage) or for application usage 
             when testing a feature. The HDF Group does not track or document 
-            the use of the filters with identifiers from this range.
+            the use of the filters with identifiers from this range.</p>
 
             <p>
             The filters currently in library version 1.8.0 are 
 	    listed below:
-	    <table class=list>
+        
+	    <table class="list">
 	      <tr>
-		<th width="30%">Identification</th>
-		<th align=left>Name</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Identification</th>
+		<th width="15%" align="left">Name</th>
+		<th width="65%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
+		<td align="center"><code>0</code></td>
 		<td>N/A</td>
 		<td>Reserved</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1</code></td>
+		<td align="center"><code>1</code></td>
 		<td>deflate</td>
 		<td>GZIP deflate compression</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>2</code></td>
+		<td align="center"><code>2</code></td>
 		<td>shuffle</td>
 		<td>Data element shuffling</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>3</code></td>
+		<td align="center"><code>3</code></td>
 		<td>fletcher32</td>
 		<td>Fletcher32 checksum</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>4</code></td>
+		<td align="center"><code>4</code></td>
 		<td>szip</td>
 		<td>SZIP compression</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>5</code></td>
+		<td align="center"><code>5</code></td>
 		<td>nbit</td>
 		<td>N-bit packing</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>6</code></td>
+		<td align="center"><code>6</code></td>
 		<td>scaleoffset</td>
 		<td>Scale and offset encoded values</td>
 	      </tr>
 	    </table>
-	  </p></td>
+        </p></td>
 	</tr>
 
 	<tr>
-	  <td>Name Length</td>
+	  <td><p>Name Length</p></td>
 	  <td><p>Each filter has an optional null-terminated ASCII name
 	    and this field holds the length of the name including the
 	    null termination padded with nulls to be a multiple of
@@ -11849,39 +12570,39 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Flags</td>
+	  <td><p>Flags</p></td>
 	  <td><p>The flags indicate certain properties for a filter.  The 
-	    bit values defined so far are:</p>
-	    <table class=list>
+	    bit values defined so far are:
+	    <table class="list">
 	      <tr>
-		<th width="30%">Bit</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Bit</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
+		<td align="center"><code>0</code></td>
 	        <td>If set then the filter is an optional filter.
 		During output, if an optional filter fails it will be
 		silently skipped in the pipeline.</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1-15</code></td>
+		<td align="center"><code>1-15</code></td>
 	        <td>Reserved (zero)</td>
 	      </tr>
-	    </table>
+	    </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Number of Client Data Values</td>
+	  <td><p>Number of Client Data Values</p></td>
 	  <td><p>Each filter can store integer values to control
 	    how the filter operates.  The number of entries in the
 	    <em>Client Data</em> array is stored in this field.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Name</td>
+	  <td><p>Name</p></td>
 	  <td><p>If the <em>Name Length</em> field is non-zero then it will
 	    contain the size of this field, padded to a multiple of eight.  This 
 	    field contains a null-terminated, ASCII character
@@ -11889,24 +12610,24 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Client Data</td>
+	  <td><p>Client Data</p></td>
 	  <td><p>This is an array of four-byte integers which will be
 	    passed to the filter function.  The <em>Client Data Number</em> of
 	    Values determines the number of elements in the array.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Padding</td>
-	  <td><p>Four bytes of zeros are added to the message at this
+	  <td><p>Padding</p></td>
+	  <td><p>Four bytes of zeroes are added to the message at this
 	    point if the Client Data Number of Values field contains
 	    an odd number.</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Filter Pipeline Message - Version 2
 	</caption>
@@ -11921,47 +12642,47 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Number of Filters</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Filter Description List <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Filter Description List <em>(variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number for this message.  This table
 	    describes version 2.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Number of Filters</td>
+	  <td><p>Number of Filters</p></td>
 	  <td><p>The total number of filters described in this
 	    message. The maximum possible number of filters in a
 	    message is 32.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Filter Description List</td>
+	  <td><p>Filter Description List</p></td>
 	  <td><p>A description of each filter.  A filter description
 	    appears in the next table.</p></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Filter Description
 	</caption>
@@ -11974,114 +12695,116 @@ TABLE.list TD { border:none; }
 	</tr>  
 
 	<tr>
-	  <td colspan=2>Filter Identification Value</td>
-	  <td colspan=2>Name Length <em>(optional)</em></td>
+	  <td colspan="2">Filter Identification Value</td>
+	  <td colspan="2">Name Length <em>(optional)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Flags</td>
-	  <td colspan=2>Number Client Data Values</td>
+	  <td colspan="2">Flags</td>
+	  <td colspan="2">Number Client Data Values</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name <em>(variable size, optional)</em><br><br></td>
+	  <td colspan="4"><br />Name <em>(variable size, optional)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Client Data <em>(variable size, optional)</em><br><br></td>
+	  <td colspan="4"><br />Client Data <em>(variable size, optional)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Filter Identification Value</td>
+	  <td><p>Filter Identification Value</p></td>
 	  <td>
             <p>
             This value, often referred to as a filter identifier,
             is designed to be a unique identifier for the filter. 
             Values from zero through 32,767 are reserved for filters 
-            supported by The HDF Group in the HDF5 library and for 
+            supported by The HDF Group in the HDF5 Library and for 
             filters requested and supported by third parties. 
             Filters supported by The HDF Group are documented immediately
             below.  Information on 3rd-party filters can be found at 
             The HDF Group’s 
             <a href="http://www.hdfgroup.org/services/contributions.html">
-            Contributions</a> page.
+            Contributions</a> page.</p>
             
             <p>
             To request a filter identifier, please contact 
             The HDF Group’s Help Desk at
-            <img src="Graphics/help.png" valign="center" height=14>.
-            You will be asked to provide the following information:
+            <img src="Graphics/help.png" valign="middle" height="14"
+            alt="The HDF Group Help Desk">.
+            You will be asked to provide the following information:</p>
             <ol>
               <li>Contact information for the developer requesting the
-                  new identifier 
-              <li>A short description of the new filter 
+                  new identifier</li> 
+              <li>A short description of the new filter</li> 
               <li>Links to any relevant information, including licensing 
-                  information 
+                  information</li> 
             </ol>
             <p>
             Values from 32768 to 65535 are reserved for non-distributed uses 
             (for example, internal company usage) or for application usage 
             when testing a feature. The HDF Group does not track or document 
-            the use of the filters with identifiers from this range.
+            the use of the filters with identifiers from this range.</p>
 
             <p>
             The filters currently in library version 1.8.0 are 
 	    listed below:
-	    <table class=list>
+        
+	    <table class="list">
 	      <tr>
-		<th width="30%">Identification</th>
-		<th align=left>Name</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Identification</th>
+		<th width="15%" align="left">Name</th>
+		<th width="65%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
+		<td align="center"><code>0</code></td>
 		<td>N/A</td>
 		<td>Reserved</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1</code></td>
+		<td align="center"><code>1</code></td>
 		<td>deflate</td>
 		<td>GZIP deflate compression</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>2</code></td>
+		<td align="center"><code>2</code></td>
 		<td>shuffle</td>
 		<td>Data element shuffling</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>3</code></td>
+		<td align="center"><code>3</code></td>
 		<td>fletcher32</td>
 		<td>Fletcher32 checksum</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>4</code></td>
+		<td align="center"><code>4</code></td>
 		<td>szip</td>
 		<td>SZIP compression</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>5</code></td>
+		<td align="center"><code>5</code></td>
 		<td>nbit</td>
 		<td>N-bit packing</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>6</code></td>
+		<td align="center"><code>6</code></td>
 		<td>scaleoffset</td>
 		<td>Scale and offset encoded values</td>
 	      </tr>
@@ -12090,68 +12813,67 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Name Length</td>
+	  <td><p>Name Length</p></td>
 	  <td><p>Each filter has an optional null-terminated ASCII name
 	    and this field holds the length of the name including the
 	    null termination padded with nulls to be a multiple of
 	    eight. If the filter has no name then a value of zero is
 	    stored in this field.</p>
-            <p>Filters with IDs less than 256 (i.e. those that are defined in
-                this format documentation)
-                do not store the <em>Name Length</em> or
-                <em>Name</em> fields.
+            <p>Filters with IDs less than 256 (in other words, filters 
+            that are defined in this format documentation) do not store 
+            the <em>Name Length</em> or <em>Name</em> fields.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Flags</td>
+	  <td><p>Flags</p></td>
 	  <td><p>The flags indicate certain properties for a filter.  The 
-	    bit values defined so far are:</p>
-	    <table class=list>
+	    bit values defined so far are:
+	    <table class="list">
 	      <tr>
-		<th width="30%">Bit</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Bit</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
+		<td align="center"><code>0</code></td>
 	        <td>If set then the filter is an optional filter.
 		During output, if an optional filter fails it will be
 		silently skipped in the pipeline.</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1-15</code></td>
+		<td align="center"><code>1-15</code></td>
 	        <td>Reserved (zero)</td>
 	      </tr>
-	    </table>
+	    </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Number of Client Data Values</td>
+	  <td><p>Number of Client Data Values</p></td>
 	  <td><p>Each filter can store integer values to control
 	    how the filter operates.  The number of entries in the
 	    <em>Client Data</em> array is stored in this field.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Name</td>
+	  <td><p>Name</p></td>
 	  <td><p>If the <em>Name Length</em> field is non-zero then it will
                 contain the size of this field, <em>not</em> padded to a multiple
                 of eight.  This field contains a <em>non-</em>null-terminated,
                 ASCII character string to serve as a comment/name for the filter.
             </p>
-            <p>Filters that are defined in this format documentation (deflate,
-                shuffle, etc.) do not store the <em>Name Length</em> or
-                <em>Name</em> fields.
+            <p>Filters that are defined in this format documentation 
+            such as deflate and shuffle do not store the <em>Name 
+            Length</em> or <em>Name</em> fields.
             </p>
           </td>
 	</tr>
 
 	<tr>
-	  <td>Client Data</td>
+	  <td><p>Client Data</p></td>
 	  <td><p>This is an array of four-byte integers which will be
 	    passed to the filter function.  The Client Data Number of
 	    Values</em> determines the number of elements in the array.</p>
@@ -12159,39 +12881,45 @@ TABLE.list TD { border:none; }
 	</tr>
       </table>
     </div>
-    <p>
-    </p>
-
-    <hr>
-    <h4><a name="AttributeMessage">Name: Attribute</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x000C
-    <p class="item"><b>Length:</b> varies
-    <p class="item"><b>Status:</b> Optional, may be repeated.
     
-    <p class="item"><b>Description:</b>  The <em>Attribute</em>
-      message is used to store objects in the HDF5 file which are used
-      as attributes, or “metadata” about the current object.  An
-      attribute is a small dataset; it has a name, a datatype, a data
-      space, and raw data.  Since attributes are stored in the object
-      header, they should be relatively small (in other words, less than 64KB). 
-      They can be associated with any type of object which has an object 
-      header (groups, datasets, or committed (named) datatypes).</p>
-
-    <p class="item2">In 1.8.x versions of the library, attributes can be larger than 
-      64KB. See the 
-      <a href="UG/13_Attributes.html#SpecIssues">“Special Issues”</a> 
-      section of the Attributes chapter in the <cite>HDF5 User's Guide</cite> 
-      for more information.</p>
+<br />
+<h4><a name="AttributeMessage">IV.A.2.m. The Attribute Message</a></h4>
+
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Attribute</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x000C</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td><p>The <em>Attribute</em> message is used to store objects 
+      in the HDF5 file which are used as attributes, or 
+      “metadata” about the current object. An attribute 
+      is a small dataset; it has a name, a datatype, a dataspace, and 
+      raw data. Since attributes are stored in the object header, they 
+      should be relatively small (in other words, less than 64KB). 
+      They can be associated with any type of object which has an 
+      object header (groups, datasets, or committed (named) 
+      datatypes).</p>
+      <p>In 1.8.x versions of the library, attributes can be larger 
+      than 64KB. See the 
+      <a href="UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FAttributes%2FHDF5_Attributes.htm%3Frhtocid%3Dtoc8.2_1%23TOC_8_5_Special_Issuesbc-13">
+      “Special Issues”</a> section of the Attributes chapter 
+      in the <cite>HDF5 User’s Guide</cite> for more information.</p>
+      <p>Note: Attributes on an object must have unique names: 
+      the HDF5 Library currently enforces this by causing the 
+      creation of an attribute with a duplicate name to fail. 
+      Attributes on different objects may have the same name, 
+      however.</p></td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
     
-    <P class=item2>Note: Attributes on an object must have unique names 
-      (The HDF5 library currently enforces this by causing the creation 
-      of an attribute with a duplicate name to fail). Attributes on 
-      different objects may have the same name, however.</p>
-
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Attribute Message (Version 1)
 	</caption>
@@ -12206,66 +12934,66 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Reserved (zero)</td>
-	  <td colspan=2>Name Size</td>
+	  <td colspan="2">Name Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Datatype Size</td>
-	  <td colspan=2>Dataspace Size</td>
+	  <td colspan="2">Datatype Size</td>
+	  <td colspan="2">Dataspace Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Name <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Datatype <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Datatype <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Dataspace <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Dataspace <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Data <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Data <em>(variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number information is used for changes in the format of the 
-	    attribute message and is described here:</p>
-	    <table class=list>
+	    attribute message and is described here:
+	    <table class="list">
 	      <tr>
-		<th width="30%">Version</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Version</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
+		<td align="center"><code>0</code></td>
 		<td>Never used.</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1</code></td>
+		<td align="center"><code>1</code></td>
 		<td>Used by the library before version 1.6 to encode attribute message.
 		    This version does not support shared datatypes.</td>
 	      </tr>
-	    </table>
+	    </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Name Size</td>
+	  <td><p>Name Size</p></td>
 	  <td><p>The length of the attribute name in bytes including the
 	    null terminator.  Note that the <em>Name</em> field below may
 	    contain additional padding not represented by this
@@ -12273,28 +13001,28 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Datatype Size</td>
+	  <td><p>Datatype Size</p></td>
 	  <td><p>The length of the datatype description in the <em>Datatype</em>
 	    field below.  Note that the <em>Datatype</em> field may contain
 	    additional padding not represented by this field.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Dataspace Size</td>
+	  <td><p>Dataspace Size</p></td>
 	  <td><p>The length of the dataspace description in the <em>Dataspace</em>
 	    field below.  Note that the <em>Dataspace</em> field may contain
 	    additional padding not represented by this field.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Name</td>
+	  <td><p>Name</p></td>
 	  <td><p>The null-terminated attribute name.  This field is
 	    padded with additional null characters to make it a
 	    multiple of eight bytes.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Datatype</td>
+	  <td><p>Datatype</p></td>
 	  <td><p>The datatype description follows the same format as
 	    described for the datatype object header message.  This
 	    field is padded with additional zero bytes to make it a
@@ -12302,7 +13030,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dataspace</td>
+	  <td><p>Dataspace</p></td>
 	  <td><p>The dataspace description follows the same format as
 	    described for the dataspace object header message.  This
 	    field is padded with additional zero bytes to make it a
@@ -12310,7 +13038,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Data</td>
+	  <td><p>Data</p></td>
 	  <td><p>The raw data for the attribute.  The size is determined
 	    from the datatype and dataspace descriptions.  This
 	    field is <em>not</em> padded with additional bytes.</p></td>
@@ -12318,14 +13046,14 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Attribute Message (Version 2)
 	</caption>
 
-	<tr align=center>
+	<tr align="center">
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
@@ -12335,52 +13063,52 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Flags</td>
-	  <td colspan=2>Name Size</td>
+	  <td colspan="2">Name Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Datatype Size</td>
-	  <td colspan=2>Dataspace Size</td>
+	  <td colspan="2">Datatype Size</td>
+	  <td colspan="2">Dataspace Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Name <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Datatype <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Datatype <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Dataspace <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Dataspace <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Data <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Data <em>(variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number information is used for changes in the
-                format of the attribute message and is described here:</p>
-                <table class=list width="90%">
+                format of the attribute message and is described here:
+                <table class="list">
                   <tr>
-                    <th width="30%">Version</th>
-                    <th align=left>Description</th>
+                    <th width="20%" align="center">Version</th>
+                    <th width="80%" align="left">Description</th>
                   </tr>
 
                   <tr>
-                    <td align=center><code>2</code></td>
+                    <td align="center"><code>2</code></td>
                     <td>Used by the library of version 1.6.x and after to encode
                         attribute messages.
                         This version supports shared datatypes.  The fields of
@@ -12388,66 +13116,66 @@ TABLE.list TD { border:none; }
                         additional bytes of zero.
                     </td>
                   </tr>
-                </table>
+                </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Flags</td>
-	  <td><p>This bit-field contains extra information about 
+	  <td><p>Flags</p></td>
+	  <td><p>This bit field contains extra information about 
                 interpreting the attribute message:
-              </p>
-	    <table class=list width="90%">
+              
+	    <table class="list">
 	      <tr>
-		<th width="30%">Bit</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Bit</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
+		<td align="center"><code>0</code></td>
 		<td>If set, datatype is shared.</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1</code></td>
+		<td align="center"><code>1</code></td>
 		<td>If set, dataspace is shared.</td>
 	      </tr>
-	    </table>
+	    </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Name Size</td>
+	  <td><p>Name Size</p></td>
 	  <td><p>The length of the attribute name in bytes including the
 	    null terminator.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Datatype Size</td>
+	  <td><p>Datatype Size</p></td>
 	  <td><p>The length of the datatype description in the <em>Datatype</em>
 	    field below.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Dataspace Size</td>
+	  <td><p>Dataspace Size</p></td>
 	  <td><p>The length of the dataspace description in the <em>Dataspace</em>
 	    field below.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Name</td>
+	  <td><p>Name</p></td>
 	  <td><p>The null-terminated attribute name.  This field is <em>not</em>
 	    padded with additional bytes.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Datatype</td>
+	  <td><p>Datatype</p></td>
 	  <td><p>The datatype description follows the same format as
                 described for the datatype object header message.
             </p>
             <p>If the
-                <em>Flag</em> field indicates this attribute's datatype is
-                shared, this field will contain a "shared message" encoding
+                <em>Flag</em> field indicates this attribute’s datatype is
+                shared, this field will contain a “shared message” encoding
                 instead of the datatype encoding.
             </p>
             <p>This field is <em>not</em> padded with additional bytes.
@@ -12456,13 +13184,13 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dataspace</td>
+	  <td><p>Dataspace</p></td>
 	  <td><p>The dataspace description follows the same format as
                 described for the dataspace object header message.
             </p>
             <p>If the
-                <em>Flag</em> field indicates this attribute's dataspace is
-                shared, this field will contain a "shared message" encoding
+                <em>Flag</em> field indicates this attribute’s dataspace is
+                shared, this field will contain a “shared message” encoding
                 instead of the dataspace encoding.
             </p>
             <p>This field is <em>not</em> padded with additional bytes.</p>
@@ -12470,7 +13198,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Data</td>
+	  <td><p>Data</p></td>
 	  <td><p>The raw data for the attribute.  The size is determined
                 from the datatype and dataspace descriptions.
             </p>
@@ -12481,14 +13209,14 @@ TABLE.list TD { border:none; }
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <br />
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Attribute Message (Version 3)
 	</caption>
 
-	<tr align=center>
+	<tr align="center">
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
 	  <th width="25%">byte</th>
@@ -12498,125 +13226,125 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Flags</td>
-	  <td colspan=2>Name Size</td>
+	  <td colspan="2">Name Size</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Datatype Size</td>
-	  <td colspan=2>Dataspace Size</td>
+	  <td colspan="2">Datatype Size</td>
+	  <td colspan="2">Dataspace Size</td>
 	</tr>
 
 	<tr>
 	  <td>Name Character Set Encoding</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Name <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Name <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Datatype <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Datatype <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Dataspace <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Dataspace <em>(variable size)</em><br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Data <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Data <em>(variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number information is used for changes in the
-                format of the attribute message and is described here:</p>
-                <table class=list width="90%">
+                format of the attribute message and is described here:
+                <table class="list">
                   <tr>
-                    <th width="30%">Version</th>
-                    <th align=left>Description</th>
+                    <th width="20%" align="center">Version</th>
+                    <th width="80%" align="left">Description</th>
                   </tr>
 
                   <tr>
-                    <td align=center><code>3</code></td>
+                    <td align="center"><code>3</code></td>
                     <td>Used by the library of version 1.8.x and after to
                         encode attribute messages.
                         This version supports attributes with non-ASCII names.
                     </td>
                   </tr>
-                </table>
+                </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Flags</td>
-	  <td><p>This bit-field contains extra information about 
+	  <td><p>Flags</p></td>
+	  <td><p>This bit field contains extra information about 
                 interpreting the attribute message:
-              </p>
-	    <table class=list width="90%">
+              
+	    <table class="list">
 	      <tr>
-		<th width="30%">Bit</th>
-		<th align=left>Description</th>
+		<th width="20%" align="center">Bit</th>
+		<th width="80%" align="left">Description</th>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>0</code></td>
+		<td align="center"><code>0</code></td>
 		<td>If set, datatype is shared.</td>
 	      </tr>
 
 	      <tr>
-		<td align=center><code>1</code></td>
+		<td align="center"><code>1</code></td>
 		<td>If set, dataspace is shared.</td>
 	      </tr>
-	    </table>
+	    </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Name Size</td>
+	  <td><p>Name Size</p></td>
 	  <td><p>The length of the attribute name in bytes including the
 	    null terminator.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Datatype Size</td>
+	  <td><p>Datatype Size</p></td>
 	  <td><p>The length of the datatype description in the <em>Datatype</em>
 	    field below.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Dataspace Size</td>
+	  <td><p>Dataspace Size</p></td>
 	  <td><p>The length of the dataspace description in the <em>Dataspace</em>
 	    field below.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Name Character Set Encoding</td>
-	  <td><p>The character set encoding for the attribute's name:
-            <table width=100% class=list>
+	  <td><p>Name Character Set Encoding</p></td>
+	  <td><p>The character set encoding for the attribute’s name:
+            <table class="list">
                 <tr>
-                  <th width="30%">Value</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>ASCII character set encoding
                   </td>
                 </tr>
 
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>UTF-8 character set encoding
                   </td>
                 </tr>
@@ -12626,19 +13354,19 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Name</td>
+	  <td><p>Name</p></td>
 	  <td><p>The null-terminated attribute name.  This field is <em>not</em>
 	    padded with additional bytes.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Datatype</td>
+	  <td><p>Datatype</p></td>
 	  <td><p>The datatype description follows the same format as
                 described for the datatype object header message.
             </p>
             <p>If the
-                <em>Flag</em> field indicates this attribute's datatype is
-                shared, this field will contain a "shared message" encoding
+                <em>Flag</em> field indicates this attribute’s datatype is
+                shared, this field will contain a “shared message” encoding
                 instead of the datatype encoding.
             </p>
             <p>This field is <em>not</em> padded with additional bytes.
@@ -12647,13 +13375,13 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Dataspace</td>
+	  <td><p>Dataspace</p></td>
 	  <td><p>The dataspace description follows the same format as
                 described for the dataspace object header message.
             </p>
             <p>If the
-                <em>Flag</em> field indicates this attribute's dataspace is
-                shared, this field will contain a "shared message" encoding
+                <em>Flag</em> field indicates this attribute’s dataspace is
+                shared, this field will contain a “shared message” encoding
                 instead of the dataspace encoding.
             </p>
             <p>This field is <em>not</em> padded with additional bytes.</p>
@@ -12661,7 +13389,7 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Data</td>
+	  <td><p>Data</p></td>
 	  <td><p>The raw data for the attribute.  The size is determined
                 from the datatype and dataspace descriptions.
             </p>
@@ -12671,24 +13399,32 @@ TABLE.list TD { border:none; }
 	</tr>
       </table>
     </div>
-    </p>
     
-    <hr>
-    <h4><a name="CommentMessage">Name: Object Comment</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x000D</p>
-    <p class="item"><b>Length:</b> varies</p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated.</p>
-
-    <p class="item"><b>Description:</b> The object comment is
-      designed to be a short description of an object.  An object comment
-      is a sequence of non-zero (<code>\0</code>) ASCII characters with no
-      other formatting included by the library.</p>
-
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+<br />
+<h4><a name="CommentMessage">IV.A.2.n. The Object Comment 
+Message</a></h4>
+
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Object 
+      Comment</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x000D</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>The object comment is designed to be a short description of 
+      an object. An object comment is a sequence of non-zero 
+      (<code>\0</code>) ASCII characters with no other formatting 
+      included by the library.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+    below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Name Message
 	</caption>
@@ -12701,51 +13437,58 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Comment <em>(variable size)</em><br><br></td>
+	  <td colspan="4"><br />Comment <em>(variable size)</em><br /><br /></td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Name</td>
-	  <td>A null terminated ASCII character string.</td>
+	  <td><p>Name</p></td>
+	  <td><p>A null terminated ASCII character string.</p></td>
 	</tr>
       </table>
     </div>
-    </p>
     
-    <hr>
-    <h4><a name="OldModificationTimeMessage">Name: Object Modification Time (Old)</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x000E</p>
-    <p class="item"><b>Length:</b> fixed</p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated.</p>
-
-    <p class="item"><b>Description:</b>  The object modification date
-      and time is a timestamp which indicates (using ISO-8601 date and
-      time format) the last modification of an object.  The time is
-      updated when any object header message changes according to the
-      system clock where the change was posted.  All fields of this message
-      should be interpreted as coordinated universal time (UTC).
-
-      <br><br>This modification time message is deprecated in favor of the "new"
-      <a href="#ModificationTimeMessage">Object Modification Time</a>
-      message and is no longer written
-      to the file in versions of the HDF5 library after the 1.6.0 version.
-    </p>
+<br />
+<h4><a name="OldModificationTimeMessage">IV.A.2.o. The Object 
+Modification Time (Old) Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Object 
+      Modification Time (Old)</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x000E</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Fixed</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td><p>The object modification date and time is a timestamp 
+      which indicates (using ISO-8601 date and time format) the last 
+      modification of an object. The time is updated when any object 
+      header message changes according to the system clock where the 
+      change was posted. All fields of this message should be 
+      interpreted as coordinated universal time (UTC).</p>
+      <p>This modification time message is deprecated in favor of 
+      the “new” <a href="#ModificationTimeMessage">Object 
+      Modification Time</a> message and is no longer written to the 
+      file in versions of the HDF5 Library after the 1.6.0 
+      version.</p></td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Modification Time Message
 	</caption>
@@ -12758,169 +13501,198 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Year</td>
+	  <td colspan="4">Year</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Month</td>
-	  <td colspan=2>Day of Month</td>
+	  <td colspan="2">Month</td>
+	  <td colspan="2">Day of Month</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Hour</td>
-	  <td colspan=2>Minute</td>
+	  <td colspan="2">Hour</td>
+	  <td colspan="2">Minute</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Second</td>
-	  <td colspan=2>Reserved</td>
+	  <td colspan="2">Second</td>
+	  <td colspan="2">Reserved</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Year</td>
+	  <td><p>Year</p></td>
 	  <td><p>The four-digit year as an ASCII string. For example,
 	    <code>1998</code>.
             </p></td>
 	</tr>
 
 	<tr>
-	  <td>Month</td>
+	  <td><p>Month</p></td>
 	  <td><p>The month number as a two digit ASCII string where
 	    January is <code>01</code> and December is <code>12</code>.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Day of Month</td>
+	  <td><p>Day of Month</p></td>
 	  <td><p>The day number within the month as a two digit ASCII
 	    string. The first day of the month is <code>01</code>.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Hour</td>
+	  <td><p>Hour</p></td>
 	  <td><p>The hour of the day as a two digit ASCII string where
 	    midnight is <code>00</code> and 11:00pm is <code>23</code>.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Minute</td>
+	  <td><p>Minute</p></td>
 	  <td><p>The minute of the hour as a two digit ASCII string where
 	    the first minute of the hour is <code>00</code> and 
 	    the last is <code>59</code>.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Second</td>
+	  <td><p>Second</p></td>
 	  <td><p>The second of the minute as a two digit ASCII string
 	    where the first second of the minute is <code>00</code> 
 	    and the last is <code>59</code>.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Reserved</td>
+	  <td><p>Reserved</p></td>
 	  <td><p>This field is reserved and should always be zero.</p></td>
 	</tr>
       </table>
     </div>
-    </p>
     
-    <hr>
-    <h4><a name="SOHMTableMessage">Name: Shared Message Table</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x000F</p>
-    <p class="item"><b>Length:</b> fixed </p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated.</p>
-
-    <p class="item"><b>Description:</b>  This message is used to locate the
-        table of shared object header message (SOHM) indexes.  Each
-        index consists of information to find the shared messages from either
-        the heap or object header.  This message is <em>only</em> found in the
-        superblock extension.
-    </p>
+<br />
+<h4><a name="SOHMTableMessage">IV.A.2.p. The Shared Message Table 
+Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Shared Message 
+      Table</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x000F</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Fixed</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>This message is used to locate the table of shared object 
+      header message (SOHM) indexes. Each index consists of information 
+      to find the shared messages from either the heap or object header. 
+      This message is <em>only</em> found in the superblock 
+      extension.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Shared Message Table Message
 	</caption>
 
 	<tr>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
-	  <th width="25%">byte</td>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
 	</tr>
 
 	<tr>
 	  <td>Version</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Shared Object Header Message Table Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Shared Object Header Message Table Address<sup>O</sup><br /><br /></td>
 	</tr>
 
 	<tr>
 	  <td>Number of Indices</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
-	  <td><p>The version number for this message.  This document describes version 0.</td>
+	  <td><p>Version</p></td>
+	  <td><p>The version number for this message.  This document describes version 0.</p></td>
 	</tr>
 
 	<tr>
-	  <td>Shared Object Header Message Table Address</td>
+	  <td><p>Shared Object Header Message Table Address</p></td>
 	  <td><p>This field is the address of the master table for shared
             object header message indexes.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Number of Indices</td>
-	  <td><p>This field is the number of indices in the master table.</p>
+	  <td><p>Number of Indices</p></td>
+	  <td><p>This field is the number of indices in the master table.
+      </p></td>
 	</tr>
 
       </table>
     </div>
-    </p>
+    
+<br />
+<h4><a name="ContinuationMessage">IV.A.2.q. The Object Header 
+Continuation Message</a></h4>
 
-    <hr>
-    <h4><a name="ContinuationMessage">Name: Object Header Continuation</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x0010</p>
-    <p class="item"><b>Length:</b> fixed</p>
-    <p class="item"><b>Status:</b> Optional, may be repeated.</p>
-    <p class="item"><b>Description:</b>  The object header continuation is the
-        location in the file of a block containing more header messages for the
-        current data object.  This can be used when header blocks become too
-        large or are likely to change over time.</p>
-
-    <p class="item"><b>Format of Data:</b>
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Object Header 
+      Continuation</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0010</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Fixed</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>The object header continuation is the location in the file 
+      of a block containing more header messages for the current data 
+      object. This can be used when header blocks become too large or 
+      are likely to change over time.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
         <caption>
           Object Header Continuation Message
         </caption>
@@ -12933,37 +13705,53 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4><br>Offset<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Offset<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Length<sup>L</sup><br><br></td>
+          <td colspan="4"><br />Length<sup>L</sup><br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
         <tr>
-          <th width=30%>Field Name</th>
+          <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>Offset</td>
+          <td><p>Offset</p></td>
           <td><p>This value is the address in the file where the
               header continuation block is located.</p></td>
         </tr>
 
         <tr>
-          <td>Length</td>
+          <td><p>Length</p></td>
           <td><p>This value is the length in bytes of the header continuation
               block in the file.</p></td>
         </tr>
       </table>
     </div>
-    </p>
+    <br />
 
     <p>The format of the header continuation block that this message points
         to depends on the version of the object header that the message is
@@ -12972,7 +13760,7 @@ TABLE.list TD { border:none; }
 
     <p>
         Continuation blocks for version 1 object headers have no special
-        formatting information, they are merely a list of object header
+        formatting information; they are merely a list of object header
         message info sequences (type, size, flags, reserved bytes and data
         for each message sequence).  See the description 
 	of <a href="#V1ObjectHeaderPrefix">Version 1 Data Object Header Prefix.</a>
@@ -12982,9 +13770,9 @@ TABLE.list TD { border:none; }
         special formatting information as described here
         (see also the description of
 	<a href="#V2ObjectHeaderPrefix">Version 2 Data Object Header Prefix.</a>):
-    <br>
-    <div align=center>
-      <table class=format>
+    </p>
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Version 2 Object Header Continuation Block
 	</caption>
@@ -12997,64 +13785,64 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td colspan=4>Signature</td>
+	  <td colspan="4">Signature</td>
 	</tr>
 	<tr>
 	  <td>Header Message Type #1</td>
-	  <td colspan=2>Size of Header Message Data #1</td>
+	  <td colspan="2">Size of Header Message Data #1</td>
 	  <td>Header Message #1 Flags</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Header Message #1 Creation Order <em>(optional)</em></td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Header Message #1 Creation Order <em>(optional)</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Header Message Data #1<br><br></td>
+	  <td colspan="4"><br />Header Message Data #1<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>.<br>.<br>.<br></td>
+	  <td colspan="4">.<br />.<br />.<br /></td>
 	</tr>
 
 	<tr>
 	  <td>Header Message Type #n</td>
-	  <td colspan=2>Size of Header Message Data #n</td>
+	  <td colspan="2">Size of Header Message Data #n</td>
 	  <td>Header Message #n Flags</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Header Message #n Creation Order <em>(optional)</em></td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Header Message #n Creation Order <em>(optional)</em></td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br>Header Message Data #n<br><br></td>
+	  <td colspan="4"><br />Header Message Data #n<br /><br /></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Gap <em>(optional, variable size)</em></td>
+	  <td colspan="4">Gap <em>(optional, variable size)</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Checksum</td>
+	  <td colspan="4">Checksum</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Signature</td>
+	  <td><p>Signature</p></td>
 	  <td>
-            <p>The ASCII character string "<code>OCHK</code>"
+            <p>The ASCII character string “<code>OCHK</code>”
             is used to indicate the
             beginning of an object header continuation block.  This gives file
             consistency checking utilities a better chance of reconstructing a
@@ -13064,59 +13852,59 @@ TABLE.list TD { border:none; }
 	</tr>
 	
 	<tr>
-	  <td>Header Message #n Type</td>
+	  <td><p>Header Message #n Type</p></td>
 	  <td>
             <p>Same format as version 1 of the object header, described above.
-          </td>
+          </p></td>
 	</tr>
 
 	<tr>
-	  <td>Size of Header Message #n Data</td>
+	  <td><p>Size of Header Message #n Data</p></td>
 	  <td>
             <p>Same format as version 1 of the object header, described above.
-          </td>
+          </p></td>
 	</tr>
 
 	<tr>
-	  <td>Header Message #n Flags</td>
+	  <td><p>Header Message #n Flags</p></td>
 	  <td>
             <p>Same format as version 1 of the object header, described above.
-          </td>
+          </p></td>
         </tr>
 
 	<tr>
-	  <td>Header Message #n Creation Order</td>
+	  <td><p>Header Message #n Creation Order</p></td>
 	  <td>
             <p>This field stores the order that a message of a given type
-                was created in.
+                was created in.</p>
 	    <p>This field is present if bit 2 of <em>flags</em> is set.</p>
           </td>
         </tr>
 
 	<tr>
-	  <td>Header Message #n Data</td>
+	  <td><p>Header Message #n Data</p></td>
 	  <td>
             <p>Same format as version 1 of the object header, described above.
-          </td>
+          </p></td>
 	</tr>
 
 	<tr>
-	  <td>Gap</td>
+	  <td><p>Gap</p></td>
 	  <td>
             <p>A gap in an object header chunk is inferred by the end of the
-                messages for the chunk before the beginning of the chunk's
+                messages for the chunk before the beginning of the chunk’s
                 checksum.  Gaps are always smaller than the size of an
                 object header message prefix (message type + message size +
-                message flags).
+                message flags).</p>
             <p>Gaps are formed when a message (typically an attribute message)
                 in an earlier chunk is deleted and a message from a later
-                chunk that doesn't quite fit into the free space is moved
-                into the earlier chunk.
+                chunk that does not quite fit into the free space is moved
+                into the earlier chunk.</p>
           </td>
 	</tr>
 
         <tr>
-          <td>Checksum</td>
+          <td><p>Checksum</p></td>
           <td>
             <p>This is the checksum for the object header chunk.
             </p>
@@ -13124,22 +13912,31 @@ TABLE.list TD { border:none; }
         </tr>
       </table>
     </div>
-    </p>
-
-    <hr>
-    <h4><a name="SymbolTableMessage">Name: Symbol Table Message</a></h4>
-    <p class="item"><b>Header Message Type:</b> 0x0011</p>
-    <p class="item"><b>Length:</b> fixed</p>
-    <p class="item"><b>Status:</b> Required for "old style" groups, may not be repeated.</p>
-    <p class="item"><b>Description:</b> Each "old style" group has a v1 B-tree
-        and a local heap for storing symbol table entries, which are located
-        with this message.</p>
-
-    <p class="item"><b>Format of data:</b>
+    
+<br />
+<h4><a name="SymbolTableMessage">IV.A.2.r. The Symbol Table 
+Message</a></h4>
 
-    <br>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Symbol Table 
+      Message</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0011</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Fixed</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Required for 
+      “old style” groups; may not be repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>Each “old style” group has a v1 B-tree and a 
+      local heap for storing symbol table entries, which are located 
+      with this message.</td></tr>
+    <tr><td colspan="2"><b>Format of data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
         <caption>
           <b>Symbol Table Message</b>
         </caption>
@@ -13152,55 +13949,72 @@ TABLE.list TD { border:none; }
         </tr>
 
         <tr>
-          <td colspan=4><br>v1 B-tree Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />v1 B-tree Address<sup>O</sup><br /><br /></td>
         </tr>
 
         <tr>
-          <td colspan=4><br>Local Heap Address<sup>O</sup><br><br></td>
+          <td colspan="4"><br />Local Heap Address<sup>O</sup><br /><br /></td>
         </tr>
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
         <tr>
-          <th width=30%>Field Name</th>
+          <th width="30%">Field Name</th>
           <th>Description</th>
         </tr>
 
         <tr>
-          <td>v1 B-tree Address</td>
+          <td><p>v1 B-tree Address</p></td>
           <td><p>This value is the address of the v1 B-tree containing the
             symbol table entries for the group.</p></td>
         </tr>
 
         <tr>
-          <td>Local Heap Address</td>
+          <td><p>Local Heap Address</p></td>
           <td><p>This value is the address of the local heap containing
             the link names for the symbol table entries for the group.</p></td>
         </tr>
       </table>
     </div>
-    </p>
-
-    <hr>
-    <h4><a name="ModificationTimeMessage">Name: Object Modification Time</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x0012 </p>
-    <p class="item"><b>Length:</b> Fixed </p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated. </p>
-
-    <p class="item"><b>Description:</b> The object modification 
-      time is a timestamp which indicates the time of the last modification of
-      an object.  
-      The time is updated when any object header message changes according to
-      the system clock where the change was posted.
-    </p>
+    
+<br />
+<h4><a name="ModificationTimeMessage">IV.A.2.s. The Object 
+Modification Time Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Object 
+      Modification Time</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0012</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Fixed</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>The object modification time is a timestamp which indicates 
+      the time of the last modification of an object. The time is 
+      updated when any object header message changes according to 
+      the system clock where the change was posted.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Modification Time Message
 	</caption>
@@ -13214,75 +14028,83 @@ TABLE.list TD { border:none; }
 
 	<tr>
 	  <td>Version</td>
-	  <td colspan=3>Reserved (zero)</td>
+	  <td colspan="3">Reserved (zero)</td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Seconds After UNIX Epoch</td>
+	  <td colspan="4">Seconds After UNIX Epoch</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number is used for changes in the format of Object Modification Time
-	      and is described here:</p>
-	     <table class=list>
+	      and is described here:
+	     <table class="list">
 		<tr>
-		  <th width="30%">Version</th>
-		  <th align=left>Description</th>
+		  <th width="20%" align="center">Version</th>
+		  <th width="80%" align="left">Description</th>
 		</tr>
 
 		<tr>
-		  <td align=center><code>0</code></td>
+		  <td align="center"><code>0</code></td>
 		  <td>Never used.</td>
 		</tr>
 
 		<tr>
-		  <td align=center><code>1</code></td>
+		  <td align="center"><code>1</code></td>
 		  <td>Used by Version 1.6.1 and after of the library to encode time.  In
 		    this version, the time is the seconds after Epoch.</td>
 		</tr>
-	      </table>
+	      </table></p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Seconds After UNIX Epoch</td>
+	  <td><p>Seconds After UNIX Epoch</p></td>
 	  <td><p>A 32-bit unsigned integer value that stores the number of
             seconds since 0 hours, 0 minutes, 0 seconds, January 1, 1970,
             Coordinated Universal Time.</p></td>
 	</tr>
       </table>
     </div>
-    </p>
-
-    <hr>
-    <h4><a name="BtreeKValuesMessage">Name: B-tree 'K' Values Message</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x0013 </p>
-    <p class="item"><b>Length:</b> Fixed </p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated. </p>
-
-    <p class="item"><b>Description:</b>This message retrieves non-default 'K'
-        values for internal and leaf nodes of a group or indexed storage
-        v1 B-trees.  This message is <em>only</em> found in the
-        superblock extension.
-    </p>
+    
+<br />
+<h4><a name="BtreeKValuesMessage">IV.A.2.t. The B-tree 
+‘K’ Values Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> B-tree 
+      ‘K’ Values</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0013</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Fixed</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>This message retrieves non-default ‘K’ values 
+      for internal and leaf nodes of a group or indexed storage v1 
+      B-trees. This message is <em>only</em> found in the superblock 
+      extension.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
-	  B-tree 'K' Values Message
+	  B-tree ‘K’ Values Message
 	</caption>
 
 	<tr>
@@ -13294,35 +14116,35 @@ TABLE.list TD { border:none; }
 
 	<tr>
 	  <td>Version</td>
-	  <td colspan=2>Indexed Storage Internal Node K</td>
-          <td bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Indexed Storage Internal Node K</td>
+          <td bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Group Internal Node K</td>
-	  <td colspan=2>Group Leaf Node K</td>
+	  <td colspan="2">Group Internal Node K</td>
+	  <td colspan="2">Group Leaf Node K</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number for this message. This document describes
             version 0.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Indexed Storage Internal Node K</td>
-	  <td><p>This is the node 'K' value for each internal node of an
+	  <td><p>Indexed Storage Internal Node K</p></td>
+	  <td><p>This is the node ‘K’ value for each internal node of an
                 indexed storage v1 B-tree.  See the description of this field
                 in version 0 and 1 of the superblock as well the section on
                 v1 B-trees.
@@ -13331,8 +14153,8 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Group Internal Node K</td>
-	  <td><p>This is the node 'K' value for each internal node of a group 
+	  <td><p>Group Internal Node K</p></td>
+	  <td><p>This is the node ‘K’ value for each internal node of a group 
                 v1 B-tree.  See the description of this field in version 0 and
                 1 of the superblock as well as the section on v1 B-trees.
 	      </p>
@@ -13340,8 +14162,8 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Group Leaf Node K</td>
-	  <td><p>This is the node 'K' value for each leaf node of a group v1
+	  <td><p>Group Leaf Node K</p></td>
+	  <td><p>This is the node ‘K’ value for each leaf node of a group v1
                 B-tree.  See the description of this field in version 0 and 1
                 of the superblock as well as the section on v1 B-trees.
 	      </p>
@@ -13350,32 +14172,39 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
-
-    <hr>
-    <h4><a name="DrvInfoMessage">Name: Driver Info Message</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x0014 </p>
-    <p class="item"><b>Length:</b> varies </p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated. </p>
-
-    <p class="item">
-    <b>Description:</b> This message contains information needed by the
-		file driver to reopen a file. This message is <em>only</em> 
-        found in the superblock extension: see the 
-        <a href="#SuperblockExt">
-        “Disk  Format: Level 0C - Superblock Extension”</a> 
-        section for more information. For more information on the fields 
-        in the driver info message, see the 
-        <a href="#DriverInfo">
-        “Disk Format : Level 0B - File Driver Info”</a> 
-        section; those who use the multi and family file drivers will 
-        find this section particularly helpful.
-    </p>
+    
+<br />
+<h4><a name="DrvInfoMessage">IV.A.2.u. The Driver Info 
+Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Driver 
+      Info</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0014</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    
+    <tr><td>
+    <b>Description:</b></td>
+      <td>This message contains information needed by the file driver 
+      to reopen a file. This message is <em>only</em> found in the 
+      superblock extension: see the <a href="#SuperblockExt"> 
+      “Disk Format: Level 0C - Superblock Extension”</a> 
+      section for more information. For more information on the fields 
+      in the driver info message, see the <a href="#DriverInfo"> 
+      “Disk Format : Level 0B - File Driver Info”</a> 
+      section; those who use the multi and family file drivers will 
+      find this section particularly helpful.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Driver Info Message
 	</caption>
@@ -13389,41 +14218,41 @@ TABLE.list TD { border:none; }
 
 	<tr>
 	  <td>Version</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Driver Identification</td>
+	  <td colspan="4"><br />Driver Identification</td>
 	</tr>
 
 	<tr>
-	  <td colspan=2>Driver Information Size</td>
-          <td colspan=2 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+	  <td colspan="2">Driver Information Size</td>
+          <td colspan="2" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4><br><br>Driver Information <em>(variable size)</em><br><br><br></td>
+	  <td colspan="4"><br /><br />Driver Information <em>(variable size)</em><br /><br /><br /></td>
 	</tr>
 	
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number for this message. This document describes
                 version 0.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	<td>Driver Identification</td>
+	<td><p>Driver Identification</p></td>
 	  <td><p>This is an eight-byte ASCII string without null termination which
                 identifies the driver.
 	      </p>
@@ -13431,37 +14260,45 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Driver Information Size</td>
+	  <td><p>Driver Information Size</p></td>
 	  <td><p>The size in bytes of the <em>Driver Information</em> field of this
                 message.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Driver Information</td>
+	  <td><p>Driver Information</p></td>
 	  <td><p>Driver information is stored in a format defined by the file driver.</p>
 	  </td>
 	</tr>
       </table>
     </div>
-    </p>
-
-    <hr>
-    <h4><a name="AinfoMessage">Name: Attribute Info Message</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x0015</p>
-    <p class="item"><b>Length:</b> varies </p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated. </p>
-
-    <p class="item"><b>Description:</b>This message stores information about the
-        attributes on an object, such as the maximum creation index for
-        the attributes created and the location of the attribute storage when
-        the attributes are stored "densely".
-    </p>
+    
+<br />
+<h4><a name="AinfoMessage">IV.A.2.v. The Attribute Info 
+Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Attribute 
+      Info</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0015</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Varies</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>This message stores information about the attributes on an 
+      object, such as the maximum creation index for the attributes 
+      created and the location of the attribute storage when the 
+      attributes are stored “densely”.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Attribute Info Message
 	</caption>
@@ -13476,68 +14313,78 @@ TABLE.list TD { border:none; }
 	<tr>
 	  <td>Version</td>
 	  <td>Flags</td>
-	  <td colspan=2>Maximum Creation Index <em>(optional)</em></td>
+	  <td colspan="2">Maximum Creation Index <em>(optional)</em></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Fractal Heap Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Fractal Heap Address<sup>O</sup><br /><br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Attribute Name v2 B-tree Address<sup>O</sup><br><br></td>
+	  <td colspan="4"><br />Attribute Name v2 B-tree Address<sup>O</sup><br /><br /></td>
 	</tr>
 	<tr>
-	  <td colspan=4><br>Attribute Creation Order v2 B-tree Address<sup>O</sup> <em>(optional)</em><br><br></td>
+	  <td colspan="4"><br />Attribute Creation Order v2 B-tree Address<sup>O</sup> <em>(optional)</em><br /><br /></td>
 	</tr>
 	
       </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+      </table>
+
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number for this message. This document describes
                 version 0.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	<td>Flags</td>
+	<td><p>Flags</p></td>
 	  <td><p>This is the attribute index information flag with the
                 following definition:
-	      </p>
-            <table class=list>
+	      
+            <table class="list">
                 <tr>
-                  <th width="30%">Bit</th>
-                  <th align=left>Description</th>
+                  <th width="20%" align="center">Bit</th>
+                  <th width="80%" align="left">Description</th>
                 </tr>
 
                 <tr>
-                  <td align=center><code>0</code></td>
+                  <td align="center"><code>0</code></td>
                   <td>If set, creation order for attributes is tracked.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>1</code></td>
+                  <td align="center"><code>1</code></td>
                   <td>If set, creation order for attributes is indexed.
                   </td>
                 </tr>
                 <tr>
-                  <td align=center><code>2-7</code></td>
+                  <td align="center"><code>2-7</code></td>
                   <td>Reserved</td>
                 </tr>
-	    </table>
-            </p>
+	    </table></p>
+            
           </td>
 	</tr>
 
 	<tr>
-	  <td>Maximum Creation Index</td>
+	  <td><p>Maximum Creation Index</p></td>
 	  <td><p>The is the maximum creation order index value for the
                 attributes on the object.</p>
 	      <p>This field is present if bit 0 of <em>Flags</em> is set.</p>
@@ -13545,21 +14392,21 @@ TABLE.list TD { border:none; }
 	</tr>
 
 	<tr>
-	  <td>Fractal Heap Address</td>
+	  <td><p>Fractal Heap Address</p></td>
 	  <td><p>This is the address of the fractal heap to store dense
                 attributes.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Attribute Name v2 B-tree Address</td>
+	  <td><p>Attribute Name v2 B-tree Address</p></td>
 	  <td><p>This is the address of the version 2 B-tree to index the
                 names of densely stored attributes.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Attribute Creation Order v2 B-tree Address</td>
+	  <td><p>Attribute Creation Order v2 B-tree Address</p></td>
 	  <td><p>This is the address of the version 2 B-tree to index the
                 creation order of densely stored attributes.</p>
 	      <p>This field is present if bit 1 of <em>Flags</em> is set.</p>
@@ -13568,23 +14415,31 @@ TABLE.list TD { border:none; }
 
       </table>
     </div>
-    </p>
-
-    <hr>
-    <h4><a name="RefCountMessage">Name: Object Reference Count</a></h4>
-
-    <p class="item"><b>Header Message Type:</b> 0x0016 </p>
-    <p class="item"><b>Length:</b> fixed </p>
-    <p class="item"><b>Status:</b> Optional, may not be repeated. </p>
-
-    <p class="item"><b>Description:</b>This message stores the number of hard
-        links (in groups or objects) pointing to an object (i.e. its
-        <em>reference count</em>).
-    </p>
+    
+<br />
+<h4><a name="RefCountMessage">IV.A.2.w. The Object Reference 
+Count Message</a></h4>
 
-    <p class="item"><b>Format of Data:</b>
-    <div align=center>
-      <table class=format>
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> Object Reference 
+      Count</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0016</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Fixed</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td><b>Description:</b></td>
+      <td>This message stores the number of hard links (in groups or 
+      objects) pointing to an object: in other words, its 
+      <em>reference count</em>.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
 	<caption>
 	  Object Reference Count
 	</caption>
@@ -13598,119 +14453,522 @@ TABLE.list TD { border:none; }
 
 	<tr>
 	  <td>Version</td>
-          <td colspan=3 bgcolor=#DDDDDD><em>This space inserted only to align table nicely</em></td>
+          <td colspan="3" bgcolor="#DDDDDD"><em>This space inserted only to align table nicely</em></td>
 	</tr>
 
 	<tr>
-	  <td colspan=4>Reference count</td>
+	  <td colspan="4">Reference count</td>
 	</tr>
       </table>
     </div>
 
-    <br>
-    <div align=center>
-      <table class=desc>
+    <br />
+    <div align="center">
+      <table class="desc">
 	<tr>
           <th width="30%">Field Name</th>
           <th>Description</th>
 	</tr>
 
 	<tr>
-	  <td>Version</td>
+	  <td><p>Version</p></td>
 	  <td><p>The version number for this message. This document describes
             version 0.</p>
 	  </td>
 	</tr>
 
 	<tr>
-	  <td>Reference Count</td>
-	  <td><p>The unsigned 32-bit integer is the reference count for the
-                object.  This message is only present in "version 2" (or later)
-                object headers, and if not present those object header versions,
-                the reference count for the object is assumed to be 1.
+	  <td><p>Reference Count</p></td>
+	  <td><p>The unsigned 32-bit integer is the reference count for the 
+        object. This message is only present in “version 2” 
+        (or later) object headers, and if not present those object 
+        header versions, the reference count for the object is assumed 
+        to be 1.</p>
+	  </td>
+	</tr>
+
+      </table>
+    </div>
+    
+<br />
+<h4><a name="FsinfoMessage">IV.A.2.x. The File Space Info 
+Message</a></h4>
+
+    <!-- start msgdesc table -->
+    <center>
+    <table class="msgdesc">
+    <tr><td colspan="2"><b>Header Message Name:</b> File Space 
+      Info</td></tr>
+    <tr><td colspan="2"><b>Header Message Type:</b> 0x0018</td></tr>
+    <tr><td colspan="2"><b>Length:</b> Fixed</td></tr>
+    <tr><td colspan="2"><b>Status:</b> Optional; may not be 
+      repeated.</td></tr>
+    <tr><td>
+    <b>Description:</b></td>
+      <td>This message stores the file space management strategy (see 
+      description below) that the library uses in handling file space 
+      request for the file. It also contains the free-space section 
+      threshold used by the library’s free-space managers for 
+      the file. If the strategy is 1, this message also contains the 
+      addresses of the file’s free-space managers which track 
+      free space for each type of file space allocation. There are 
+      six basic types of file space allocation: superblock, B-tree, 
+      raw data, global heap, local heap, and object header. See the 
+      description of <a href="#FreeSpaceManager">Free-space 
+      Manager</a> as well the description of allocation types in 
+      <a href="#AppendixB">Appendix B</a>.</td></tr>
+    <tr><td colspan="2"><b>Format of Data:</b> See the tables 
+      below.</td></tr>
+    </table></center>
+    <!-- end msgdesc table -->
+    
+    <div align="center">
+      <table class="format">
+	<caption>
+	  File Space Info
+	</caption>
+
+	<tr>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	  <th width="25%">byte</th>
+	</tr>
+
+	<tr>
+	  <td>Version</td>
+	  <td>Strategy</td>
+          <td colspan="2">Threshold<sup>L</sup></td>
+	</tr>
+	<tr>
+	  <td colspan="4">Super-block Free-space Manager Address<sup>O</sup></td>
+	</tr>
+	<tr>
+	  <td colspan="4">B-tree Free-space Manager Address<sup>O</sup></td>
+	</tr>
+	<tr>
+	  <td colspan="4">Raw Data Free-space Manager Address<sup>O</sup></td>
+	</tr>
+	<tr>
+	  <td colspan="4">Global Heap Free-space Manager Address<sup>O</sup></td>
+	</tr>
+	<tr>
+	  <td colspan="4">Local Heap Free-space Manager Address<sup>O</sup></td>
+	</tr>
+	<tr>
+	  <td colspan="4">Object Header Free-space Manager Address<sup>O</sup></td>
+	</tr>
+      </table>
+
+      <table class="note">
+        <tr>
+        <td width="60%"> </td>
+        <td width="40%">
+            (Items marked with an ‘O’ in the above table are of the size
+	    specified in “Size of Offsets” field in the superblock.)
+        </td></tr>
+        <tr>
+        <td> </td>
+        <td>
+            (Items marked with an ‘L’ in the above table are of the size
+	    specified in “Size of Lengths” field in the superblock.)
+        </td></tr>
+      </table>
+
+    </div>
+
+    <br />
+    <div align="center">
+      <table class="desc">
+	<tr>
+          <th width="30%">Field Name</th>
+          <th>Description</th>
+	</tr>
+
+	<tr>
+	  <td><p>Version</p></td>
+	  <td><p>This is the version number of this message. This document describes
+            version 0.</p>
+	  </td>
+	</tr>
+
+	<tr>
+	  <td><p>Strategy</p></td>
+	  <td><p>This is the  file space management strategy for the file.
+		 There are four types of strategies:
+            <table class="list">
+                <tr>
+                  <th width="20%" align="center">Value</th>
+                  <th width="80%" align="left">Description</th>
+                </tr>
+
+                <tr>
+                  <td align="center"><code>1</code></td>
+                  <td>With this strategy, the HDF5 Library’s free-space managers track the
+		      free space that results from the manipulation of HDF5 objects
+		      in the HDF5 file.  The free space information is saved when the
+		      file is closed, and reloaded when the file is reopened.
+		    <br />
+		      When space is needed for file metadata or raw data, 
+		      the HDF5 Library first requests space from the library’s free-space 
+		      managers. If the request is not satisfied, the library requests space 
+		      from the aggregators. If the request is still not satisfied, 
+		      the library requests space from the virtual file driver. 
+		      That is, the library will use all of the mechanisms for allocating
+		      space.
+                  </td>
+                </tr>
+
+                <tr>
+                  <td align="center"><code>2</code></td>
+                  <td>This is the HDF5 Library’s default file space management strategy. 
+		      With this strategy, the library’s free-space managers track the free space
+		      that results from the manipulation of HDF5 objects in the HDF5 file.
+		      The free space information is NOT saved when the file is closed and
+		      the free space that exists upon file closing becomes unaccounted
+		      space in the file.
+		    <br />
+		      As with strategy #1, the library will try all of the mechanisms 
+		      for allocating space.  When space is needed for file metadata or 
+		      raw data, the library first requests space from the free-space
+		      managers.  If the request is not satisfied, the library requests
+		      space from the aggregators.  If the request is still not satisfied,
+		      the library requests space from the virtual file driver.
+                  </td>
+                </tr>
+
+                <tr>
+                  <td align="center"><code>3</code></td>
+                  <td>With this strategy, the HDF5 Library does not track free space that results
+		      from the manipulation of HDF5 objects in the HDF5 file and
+		      the free space becomes unaccounted space in the file.
+		    <br />
+		      When space is needed for file metadata or raw data,
+		      the library first requests space from the aggregators. 
+		      If the request is not satisfied, the library requests space from 
+		      the virtual file driver. 
+                  </td>
+                </tr>
+                <tr>
+                  <td align="center"><code>4</code></td>
+                  <td>With this strategy, the HDF5 Library does not track free space that results
+		      from the manipulation of HDF5 objects in the HDF5 file and
+		      the free space becomes unaccounted space in the file.
+		    <br />
+		      When space is needed for file metadata or raw data,
+		      the library requests space from the virtual file driver. 
+                  </td>
+                </tr>
+            </table></p>
+	  </td>
+	</tr>
+
+	<tr>
+	  <td><p>Threshold</p></td>
+	  <td><p>This is the free-space section threshold.
+	    The library’s free-space managers will track only 
+        free-space sections with size greater than or equal to 
+        <em>threshold</em>. The default is to track free-space 
+        sections of all sizes.</p>
+	  </td>
+	</tr>
+	<tr>
+	  <td><p>Superblock Free-space Manager Address</p></td>
+	  <td><p>This is the address of the free-space manager for 
+        H5FD_MEM_SUPER allocation type.
+            </p>
+	  </td>
+	</tr>
+
+	<tr>
+	  <td><p>B-tree Free-space Manager Address</p></td>
+	  <td><p>This is the address of the free-space manager for 
+        H5FD_MEM_BTREE allocation type.
             </p>
 	  </td>
 	</tr>
 
+	<tr>
+	  <td><p>Raw Data Free-space Manager Address</p></td>
+	  <td><p>This is the address of the free-space manager for 
+        H5FD_MEM_DRAW allocation type.
+            </p>
+	  </td>
+	</tr>
+
+	<tr>
+	  <td><p>Global Heap Free-space Manager Address</p></td>
+	  <td><p>This is the address of the free-space manager for 
+        H5FD_MEM_GHEAP allocation type.
+            </p>
+	  </td>
+	</tr>
+
+	<tr>
+	  <td><p>Local Heap Free-space Manager Address</p></td>
+	  <td><p>This is the address of the free-space manager for 
+        H5FD_MEM_LHEAP allocation type.
+            </p>
+	  </td>
+	</tr>
+
+	<tr>
+	  <td><p>Object Header Free-space Manager Address</p></td>
+	  <td><p>This is the address of the free-space manager for 
+        H5FD_MEM_OHDR allocation type.
+            </p>
+	  </td>
+	</tr>
       </table>
     </div>
-    </p>
+    <br />
+
 
-<hr>
-<h3><a name="DataStorage">Disk Format: Level 2B - Data Object Data Storage</a></h3>
+<br />
+<h3><a name="DataStorage">
+IV.B. Disk Format: Level 2B - Data Object Data Storage</a></h3>
 
 <p>The data for an object is stored separately from its header
     information in the file and may not actually be located in the HDF5 file
     itself if the header indicates that the data is stored externally.  The
     information for each record in the object is stored according to the
     dimensionality of the object (indicated in the dataspace header message).
-    Multi-dimensional array data is stored in C order, i.e. the
-    "last" dimension changes fastest.
+    Multi-dimensional array data is stored in C order; in other words, the
+    “last” dimension changes fastest.</p>
 
 <p>Data whose elements are composed of atomic datatypes are stored in IEEE
     format, unless they are specifically defined as being stored in a different
     machine format with the architecture-type information from the datatype
     header message.  This means that each architecture will need to [potentially]
     byte-swap data values into the internal representation for that particular
-    machine.
+    machine.</p>
 
 <p> Data with a variable-length datatype is stored in the global heap
     of the HDF5 file.  Global heap identifiers are stored in the 
-    data object storage.
+    data object storage.</p>
 
 <p>Data whose elements are composed of reference datatypes are stored in
     several different ways depending on the particular reference type involved.
     Object pointers are just stored as the offset of the object header being
     pointed to with the size of the pointer being the same number of bytes as
-    offsets in the file.
+    offsets in the file.</p>
 
-<p>Dataset region references are stored as a heap-ID which points to the
-    following information within the file-heap: an offset of the object pointed
-    to, number-type information (same format as header message), dimensionality
-    information (same format as header message), sub-set start and end
-    information (i.e. a coordinate location for each), and field start and end
-    names (i.e.  a [pointer to the] string indicating the first field included
-    and a [pointer to the] string name for the last field).  
+<p>Dataset region references are stored as a heap-ID which points to 
+the following information within the file-heap: an offset of the object 
+pointed to, number-type information (same format as header message), 
+dimensionality information (same format as header message), sub-set start 
+and end information (in other words, a coordinate location for each), 
+and field start and end names (in other words, a [pointer to the] string 
+indicating the first field included and a [pointer to the] string name 
+for the last field).  </p>
 
 <p>Data of a compound datatype is stored as a contiguous stream of the items
-    in the structure, with each item formatted according to its datatype.
+    in the structure, with each item formatted according to its datatype.</p>
+
+
+
+<br />
+<br />
+<hr />
+<h2><a name="AppendixA">
+V. Appendix A: Definitions</a></h2>
+
+<p>Definitions of various terms used in this document are included in 
+this section.</p>
+
+    <div align="center">
+    <table class="glossary">
+    <tr>
+        <th width="20%">Term</th>
+        <th>Definition</th>
+    </tr>
+
+    <tr>
+        <td>Undefined Address</td>
+        <td>The <a name="UndefinedAddress">undefined 
+        address</a> for a file is a file address with all bits 
+        set: in other words, <code>0xffff...ff</code>.</td>
+	</tr>
+
+	<tr>
+	  <td>Unlimited Size</td>
+	  <td>The <a name="UnlimitedDim">unlimited size</a> 
+      for a size is a value with all bits set: in other words, 
+      <code>0xffff...ff</code>.</td>
+	</tr>
+
+    </table>
+    </div>
+
 
-<hr>
-<h3><a name="Appendix">Appendix</a></h3>
-<p>Definitions of various terms used in this document.
+
+<br />
+<br />
+<hr />
+<h2><a name="AppendixB">
+VI. Appendix B: File Memory Allocation Types</a></h2>
+
+<p>There are six basic types of file memory allocation as follows:
 </p>
+    <div align="center">
+      <table class="desc">
+	<tr>
+          <th width="30%">Basic Allocation Type</th>
+          <th>Description</th>
+	</tr>
 
-<p>The <A name="UndefinedAddress">"undefined address"</a> for a file is a
-file address with all bits set, i.e. <code>0xffff...ff</code>.
+	<tr>
+	  <td>H5FD_MEM_SUPER</td>
+	  <td>File memory allocated for <em>Superblock.</em></td>
+	</tr>
 
-<p>The <A name="UnlimitedDim">"unlimited size"</a> for a size is a
-value with all bits set, i.e. <code>0xffff...ff</code>.
+	<tr>
+	  <td>H5FD_MEM_BTREE</td>
+	  <td>File memory allocated for <em>B-tree.</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_DRAW</td>
+	  <td>File memory allocated for raw data.</td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_GHEAP</td>
+	  <td>File memory allocated for <em>Global Heap.</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_LHEAP</td>
+	  <td>File memory allocated for <em>Local Heap.</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_OHDR</td>
+	  <td>File memory allocated for <em>Object Header.</em></td>
+	</tr>
+      </table>
+    </div>
+    
+<p>There are other file memory allocation types that are mapped to the
+above six basic allocation types because they are similar in nature.
+The mapping is listed in the following table:
+</p>
+    
+    <div align="center">
+      <table class="desc">
+	<tr>
+          <th width="30%">Basic Allocation Type</th>
+          <th>Mapping of Allocation Types to Basic Allocation Types</th>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_SUPER</td>
+	  <td><em>none</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_BTREE</td>
+	  <td>H5FD_MEM_SOHM_INDEX</td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_DRAW</td>
+	  <td>H5FD_MEM_FHEAP_HUGE_OBJ</td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_GHEAP</td>
+	  <td><em>none</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_LHEAP</td>
+	  <td>H5FD_MEM_FHEAP_DBLOCK, H5FD_MEM_FSPACE_SINFO</td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_OHDR</td>
+	  <td>H5FD_MEM_FHEAP_HDR, H5FD_MEM_FHEAP_IBLOCK, H5FD_MEM_FSPACE_HDR, H5FD_MEM_SOHM_TABLE</td>
+	</tr>
+      </table>
+    </div>
+    
+<p>Allocation types that are mapped to basic allocation types are described below:
+</p>
+    
+    <div align="center">
+      <table class="desc">
+	<tr>
+          <th width="30%">Allocation Type</th>
+          <th>Description</th>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_FHEAP_HDR</td>
+	  <td>File memory allocated for <em>Fractal Heap Header.</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_FHEAP_DBLOCK</td>
+	  <td>File memory allocated for <em>Fractal Heap Direct Blocks.</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_FHEAP_IBLOCK</td>
+	  <td>File memory allocated for <em>Fractal Heap Indirect Blocks.</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_FHEAP_HUGE_OBJ</td>
+	  <td>File memory allocated for huge objects in the fractal heap.</td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_FSPACE_HDR</td>
+	  <td>File memory allocated for <em>Free-space Manager Header.</em></td>
+	</tr>
+
+	<tr>
+	  <td>H5FD_MEM_FSPACE_SINFO</td>
+	  <td>File memory allocated for <em>Free-space Section List</em> of the free-space manager.</td>
+	</tr>
+	<tr>
+	  <td>H5FD_MEM_SOHM_TABLE</td>
+	  <td>File memory allocated for <em>Shared Object Header Message Table.</em></td>
+	</tr>
+	<tr>
+	  <td>H5FD_MEM_SOHM_INDEX</td>
+	  <td>File memory allocated for <em>Shared Message Record List.</em></td>
+	</tr>
+      </table>
+    </div>
+    <br />
 
 <!-- #BeginLibraryItem "/ed_libs/NavBar_ADevG.lbi" -->
-<hr>
+<hr />
 <center>
-<table border=0 width=98%>
-<tr><td valign=top align=left>
-    <a href="index.html">HDF5 documents and links</a> <br>
-    <a href="H5.intro.html">Introduction to HDF5</a> <br>
+<table border="0" width="98%">
+<tr><td valign="top" align="left">
+    <a href="index.html">HDF5 documents and links</a> <br />
+    <a href="H5.intro.html">Introduction to HDF5</a> <br />
     <!--
-    <a href="Glossary.html">Glossary</a><br>
+    <a href="Glossary.html">Glossary</a><br />
     -->
 </td>
-<td valign=top align=right>
-    <a href="UG/index.html">HDF5 User's Guide</a> <br>
-    <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
-    <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
+<td valign="top" align="right">
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br />
+    <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br />
+    <a href="ADGuide.html">HDF5 Application Developer’s Guide</a> <br />
 </td></tr>
 </table>
 </center>
-<hr>
+<hr />
 <!-- #EndLibraryItem -->
 
 <?php include("./ed_libs/Footer.htm"); ?>
 
 <!-- hhmts start -->
-Last modified: 21 October 2014
+Last modified: 24 September 2015
 <!-- hhmts end -->
 
 </body>
diff --git a/html/H5.intro.html b/html/H5.intro.html
index 0badd60..21af110 100644
--- a/html/H5.intro.html
+++ b/html/H5.intro.html
@@ -27,7 +27,7 @@
 <table border=0 width=98%>
 <tr><td valign=top align=left>
 <a href="H5.intro.html">Introduction to HDF5</a> <br>
-<a href="UG/index.html">HDF5 User Guide</a> 
+<a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User Guide</a> 
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -45,7 +45,7 @@
 </FONT><FONT FACE="Times"><P>This is an introduction to the HDF5 data model and programming model.  Being a <I>Getting Started</I> or <I>QuickStart</I> document, this </FONT><I>Introduction to HDF5</I> <FONT FACE="Times">is intended to provide enough information for you to develop a basic understanding of how HDF5 works and is meant to be used. Knowledge of the current version of HDF will make it easier to follow the text, but it is not required.  More complete information of the sort yo [...]
 
 <UL>
-</FONT><LI><a href="UG/index.html"><I>HDF5 User&#146s Guide</I></A>.  Where appropriate, this <I>Introduction</I> will refer to specific sections of the <I>User&#146s Guide</I>.
+</FONT><LI><a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html"><I>HDF5 User&#146s Guide</I></A>.  Where appropriate, this <I>Introduction</I> will refer to specific sections of the <I>User&#146s Guide</I>.
 <LI><I><a href="RM/RM_H5Front.html">HDF5 Reference Manual</I></A>.</UL>
 
 <FONT FACE="Times"><P>Code examples are available in the source code tree when you install HDF5.  
@@ -434,7 +434,7 @@ string, bit field, and opaque. <I>(Note: Only integer, float and string  classes
 </TABLE>
 </CENTER>
 
-<FONT FACE="Times"><P>See <a href="UG/UG_frame11Datatypes.html"><I>Datatypes</I></A> in the<I> HDF User&#146s Guide</I> for further information.</font>
+<FONT FACE="Times"><P>See <a href="UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatatypes%2FHDF5_Datatypes.htm"><I>Datatypes</I></A> in the<I> HDF User&#146s Guide</I> for further information.</font>
 
 
 <FONT FACE="Times"><P>A <I>compound datatype</I> is one in which a 
@@ -446,7 +446,7 @@ including another compound datatype. It is possible to read members
 from a compound type without reading the whole type.
 <p>
 <ta/FONT><I><P>Named datatypes.</I>  Normally each dataset has its own datatype, but sometimes we may want to share a datatype among several datasets.  This can be done using a <I>named </I>datatype. A named datatype is stored in the file independently of any dataset, and referenced by all datasets that have that datatype.  Named datatypes may have an associated attributes list.  
-See <a href="UG/UG_frame11Datatypes.html"><I>Datatypes</I></A></font><FONT FACE="Times"> in the<I> HDF User&#146s Guide</I> for further information.
+See <a href="UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatatypes%2FHDF5_Datatypes.htm"><I>Datatypes</I></A></font><FONT FACE="Times"> in the<I> HDF User&#146s Guide</I> for further information.
 <B><DFN><P>Dataspace.</B> </DFN>A dataset <I>dataspace </I>describes the dimensionality of the dataset. The dimensions of a dataset can be fixed (unchanging), or they may be <I>unlimited</I>, which means that they are extendible (i.e. they can grow larger). 
 <P>Properties of a dataspace consist of the <I>rank </I>(number of dimensions) of the data array, the <I>actual sizes of the dimensions</I> of the array, and the <I>maximum sizes of the dimensions </I>of the array. For a fixed-dimension dataset, the actual size is the same as the maximum size of a dimension. When a dimension is unlimited, the maximum size is set to the </FONT>value <CODE>H5P_UNLIMITED</CODE>.<FONT FACE="Times"> (An example below shows how to create extendible datasets.)
 <P>A dataspace can also describe portions of a dataset, making it possible to do partial I/O operations on  <I>selections</I>.  <I>Selection</I> is supported by the dataspace interface (H5S). Given an n-dimensional dataset, there are currently four ways to do partial selection: 
@@ -458,7 +458,7 @@ See <a href="UG/UG_frame11Datatypes.html"><I>Datatypes</I></A></font><FONT FACE=
 <LI>Select a list of independent points. </OL>
 
 <FONT FACE="Times"><P>Since I/O operations have two end-points, the raw data transfer functions require two dataspace arguments: one describes the application memory dataspace or subset thereof, and the other describes the file dataspace or subset thereof.
-<P>See <a href="UG/UG_frame12Dataspaces.html"><I>Dataspaces and Partial I/O</I></A></font><FONT FACE="Times"> in the<I> HDF User&#146s Guide</I> for further information.
+<P>See <a href="UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDataspaces%2FHDF5_Dataspaces_and_Partial_I_O.htm"><I>Dataspaces and Partial I/O</I></A></font><FONT FACE="Times"> in the<I> HDF User&#146s Guide</I> for further information.
 </FONT><B><DFN><P>Storage layout.</B></DFN><FONT FACE="Times"> The HDF5 format makes it possible to store data in a variety of ways. The default storage layout format is <I>contiguous</I>, meaning that data is stored in the same linear way that it is organized in memory. Two other storage layout formats are currently defined for HDF5: <I>compact, </I>and<I> chunked. </I>In the future, other storage layouts may be added.<I> 
 <P>Compact</I> storage is used when the amount of data is small and can be stored directly in the object header. <I>(Note: Compact storage is not supported in this release.)</I> 
 <I><P>Chunked</I> storage involves dividing the dataset into equal-sized "chunks" that are stored separately. Chunking has three important benefits. 
@@ -469,7 +469,7 @@ See <a href="UG/UG_frame11Datatypes.html"><I>Datatypes</I></A></font><FONT FACE=
 <LI>It makes it possible efficiently to extend the dimensions of a dataset in any direction.</OL>
 
 <P>
-See <a href="UG/UG_frame10Datasets.html"><I>Datasets</I></A> 
+See <a href="UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatasets%2FHDF5_Datasets.htm"><I>Datasets</I></A> 
 in the<I> HDF User&#146s Guide</I> for further information.
 Also see <a href="H5.user/Chunking.html"><I>Dataset Chunking Issues</I></A></font><FONT FACE="Times">.
 <!-- 
@@ -484,7 +484,7 @@ We particularly encourage you to read <a href="H5.user/Chunking.html"><I>Dataset
 <I>Attributes </I>are small named datasets that are attached to primary datasets, groups, or named datatypes.  Attributes can be used to describe the nature and/or the intended usage of a dataset or group. An attribute has two parts: (1) a <I>name</I> and (2) a <I>value</I>.  The value part contains one or more data entries of the same datatype. 
 <FONT FACE="Times"><P>The Attribute API (H5A) is used to read or write attribute information. When accessing attributes, they can be identified by name or by an <I>index value</I>.  The use of an index value makes it possible to iterate through all of the attributes associated with a given object.
 <P>The HDF5 format and I/O library are designed with the assumption that attributes are small datasets. They are always stored in the object header of the object they are attached to.  Because of this, large datasets should not be stored as attributes. How large is "large" is not defined by the library and is up to the user's interpretation. (Large datasets with metadata can be stored as supplemental datasets in a group with the primary dataset.) 
-<P>See <a href="UG/UG_frame13Attributes.html"><I>Attributes</I></A></font><FONT FACE="Times"> in the<I> HDF User&#146s Guide</I> for further information.
+<P>See <a href="UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FAttributes%2FHDF5_Attributes.htm"><I>Attributes</I></A></font><FONT FACE="Times"> in the<I> HDF User&#146s Guide</I> for further information.
 </FONT>
 
 
@@ -3125,7 +3125,7 @@ For the example codes, see
 <table border=0 width=98%>
 <tr><td valign=top align=left>
 <a href="H5.intro.html">Introduction to HDF5</a> <br>
-<a href="UG/index.html">HDF5 User Guide</a> 
+<a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User Guide</a> 
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
diff --git a/html/H5.user.html b/html/H5.user.html
index 5f26f28..359b8d0 100644
--- a/html/H5.user.html
+++ b/html/H5.user.html
@@ -1,7 +1,7 @@
 <html>
   <head>
     <title>
-      HDF5 User's Guide
+      HDF5 User’s Guide
     </title>
   </head>
 
@@ -31,14 +31,14 @@
     <a href="index.html">HDF5 documents and links</a> <br>
     <a href="H5.intro.html">Introduction to HDF5</a> <br>
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
 </td>
 <td valign=top align=right>
     And in this document, the 
-    <a href="H5.user.html"><strong>HDF5 User's Guide from Release 1.4.5:</strong></a>    
+    <a href="H5.user.html"><strong>HDF5 User’s Guide from Release 1.4.5:</strong></a>    
         <br>
         <a href="H5.user/Files.html">Files</a>  
         <a href="H5.user/Datasets.html">Datasets</a>  
@@ -66,10 +66,10 @@
 <hr>
 <!-- #EndLibraryItem --><center><h1>A User's Guide for HDF5<br>Release 1.4.5</h1></center>
 
-    <p>This document is the <cite>HDF5 User's Guide</cite> from
+    <p>This document is the <cite>HDF5 User’s Guide</cite> from
       HDF5 Release 1.4.5.  
-      <a href="UG/UG_frame.html">A completely new 
-      <cite>HDF5 User's Guide</cite> </a> is available for the current release.
+      <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">A completely new 
+      <cite>HDF5 User’s Guide</cite> </a> is available for the current release.
     <p>The following documents formed the original, loosely organized,
       user's guide to the HDF5 library.
     <p>
@@ -183,14 +183,14 @@
     <a href="index.html">HDF5 documents and links</a> <br>
     <a href="H5.intro.html">Introduction to HDF5</a> <br>
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
 </td>
 <td valign=top align=right>
     And in this document, the 
-    <a href="H5.user.html"><strong>HDF5 User's Guide from Release 1.4.5:</strong></a>    
+    <a href="H5.user.html"><strong>HDF5 User’s Guide from Release 1.4.5:</strong></a>    
         <br>
         <a href="H5.user/Files.html">Files</a>  
         <a href="H5.user/Datasets.html">Datasets</a>  
diff --git a/html/H5.user/Attributes.html b/html/H5.user/Attributes.html
index bdd3177..89a26dd 100644
--- a/html/H5.user/Attributes.html
+++ b/html/H5.user/Attributes.html
@@ -1,4 +1,4 @@
-
+
 <html>
   <head>
     <title>Attribute Interface (H5A)</title>
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -239,7 +239,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Caching.html b/html/H5.user/Caching.html
index 7a72e22..7658ea0 100644
--- a/html/H5.user/Caching.html
+++ b/html/H5.user/Caching.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -142,7 +142,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Chunking.html b/html/H5.user/Chunking.html
index 6a6fbc1..412b3b7 100644
--- a/html/H5.user/Chunking.html
+++ b/html/H5.user/Chunking.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -265,7 +265,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Datasets.html b/html/H5.user/Datasets.html
index db7c110..b6b3a86 100644
--- a/html/H5.user/Datasets.html
+++ b/html/H5.user/Datasets.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -906,7 +906,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Dataspaces.html b/html/H5.user/Dataspaces.html
index b04b73e..9bdff29 100644
--- a/html/H5.user/Dataspaces.html
+++ b/html/H5.user/Dataspaces.html
@@ -45,7 +45,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -694,7 +694,7 @@ is returned.
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Datatypes.html b/html/H5.user/Datatypes.html
index afca18d..96d2801 100644
--- a/html/H5.user/Datatypes.html
+++ b/html/H5.user/Datatypes.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -3084,7 +3084,7 @@ H5Tregister(H5T_PERS_SOFT, "cus2be",
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Debugging.html b/html/H5.user/Debugging.html
index 4ad65c0..1b97d7c 100644
--- a/html/H5.user/Debugging.html
+++ b/html/H5.user/Debugging.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -468,7 +468,7 @@ H5E.c:336: warning: trace info was not inserted
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Environment.html b/html/H5.user/Environment.html
index 916eea0..7b125fa 100644
--- a/html/H5.user/Environment.html
+++ b/html/H5.user/Environment.html
@@ -33,7 +33,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -119,7 +119,7 @@ will display the current list of parameters and their effects.
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Errors.html b/html/H5.user/Errors.html
index fe73a5e..d6792b4 100644
--- a/html/H5.user/Errors.html
+++ b/html/H5.user/Errors.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -339,7 +339,7 @@ H5Ewalk_cb(int n, H5E_error_t *err_desc, void *client_data)
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Files.html b/html/H5.user/Files.html
index c397aac..22d6dd9 100644
--- a/html/H5.user/Files.html
+++ b/html/H5.user/Files.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -560,7 +560,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Filters.html b/html/H5.user/Filters.html
index 64336c3..3fb99e0 100644
--- a/html/H5.user/Filters.html
+++ b/html/H5.user/Filters.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -545,7 +545,7 @@ H5Z: filter statistics accumulated over life of library:
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Groups.html b/html/H5.user/Groups.html
index ef6bf49..13b5161 100644
--- a/html/H5.user/Groups.html
+++ b/html/H5.user/Groups.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -356,7 +356,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/MountingFiles.html b/html/H5.user/MountingFiles.html
index b59b715..0c653e9 100644
--- a/html/H5.user/MountingFiles.html
+++ b/html/H5.user/MountingFiles.html
@@ -31,7 +31,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -380,7 +380,7 @@ H5Fclose(data2);
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Performance.html b/html/H5.user/Performance.html
index c831826..5edf6c1 100644
--- a/html/H5.user/Performance.html
+++ b/html/H5.user/Performance.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -214,7 +214,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/Properties.html b/html/H5.user/Properties.html
index e08febb..85d7eb7 100644
--- a/html/H5.user/Properties.html
+++ b/html/H5.user/Properties.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -138,7 +138,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/H5.user/References.html b/html/H5.user/References.html
index d6358ec..c77738e 100644
--- a/html/H5.user/References.html
+++ b/html/H5.user/References.html
@@ -32,7 +32,7 @@
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
@@ -605,7 +605,7 @@ Notes:
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>   
-    <a href="../UG/index.html">HDF5 User's Guide for Release 1.8</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide for Release 1.8</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
diff --git a/html/HL/H5PT_UseCases.html b/html/HL/H5PT_UseCases.html
index 7186b76..4c7b744 100644
--- a/html/HL/H5PT_UseCases.html
+++ b/html/HL/H5PT_UseCases.html
@@ -78,7 +78,7 @@ though it is likely to be a compound datatype, since each packet corresponds
 to a horizontal entry in a table. If the experimenter has used HDF5 in the
 past, she may have already created a datatype representing her data and
 can simply load it from a file.  This step is covered in more detail in
-the HDF5 User's Guide.<br>
+the HDF5 User’s Guide.<br>
 The experimenter then creates the packet table. She must specify the
 location (file or group identifier), name, and datatype of the new packet
 table. Her function call might look like this:</p>
diff --git a/html/HL/RM_H5DS.html b/html/HL/RM_H5DS.html
index e750a31..c80dcf5 100755
--- a/html/HL/RM_H5DS.html
+++ b/html/HL/RM_H5DS.html
@@ -37,7 +37,7 @@
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -62,10 +62,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
@@ -826,7 +827,7 @@ END SUBROUTINE H5DSget_num_scales_f   </pre>
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -851,10 +852,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
diff --git a/html/HL/RM_H5IM.html b/html/HL/RM_H5IM.html
index c896f7e..f29f881 100755
--- a/html/HL/RM_H5IM.html
+++ b/html/HL/RM_H5IM.html
@@ -34,7 +34,7 @@
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -59,10 +59,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
@@ -84,7 +85,7 @@ In the
 <!-- HEADER RIGHT " " -->
 
 <p>The HDF5 Image API defines a standard
-storage for HDF5 datasets that are indented to be interpreted as images. The
+storage for HDF5 datasets that are intended to be interpreted as images. The
 specification for this API is presented in another document: <a href="../ADGuide/ImageSpec.html">HDF5
 Image and Palette Specification</a>. This version of the API is primarily concerned with two dimensional raster
 data similar to HDF4 Raster Images. The HDF5 image API uses the <a href="RM_H5LT.html">Lite
@@ -938,7 +939,7 @@ end function h5imis_palette_f
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -963,10 +964,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
@@ -988,7 +990,7 @@ In the
 <!--
 document.writeln(' \
 <address> \
-  Last modified: 20 October 2011<br> \
+  Last modified: 16 October 2015<br> \
 </address> \
 ');
 -->
diff --git a/html/HL/RM_H5LT.html b/html/HL/RM_H5LT.html
index c6a39e2..865b72f 100755
--- a/html/HL/RM_H5LT.html
+++ b/html/HL/RM_H5LT.html
@@ -34,7 +34,7 @@
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -59,10 +59,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
@@ -1485,7 +1486,7 @@ end subroutine h5ltread_dataset_f
   <dt><strong>Fortran90 Interface:</strong>  h5ltread_dataset_int_f</dt>
       <dd>This subroutine can read a dataset of up to seven (7) dimensions.
       <pre>
-subroutine h5ltread_dataset_int_f(loc_id, dset_name, type_id, buf, &
+subroutine h5ltread_dataset_int_f(loc_id, dset_name, buf, &
                                   dims, errcode)
   implicit none
   integer(HID_T), intent(IN) :: loc_id           ! file or group identifier 
@@ -3446,7 +3447,7 @@ end subroutine h5ltget_attribute_info_f
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -3471,10 +3472,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
diff --git a/html/HL/RM_H5PT.html b/html/HL/RM_H5PT.html
index bf54b07..9477829 100755
--- a/html/HL/RM_H5PT.html
+++ b/html/HL/RM_H5PT.html
@@ -37,7 +37,7 @@
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -62,10 +62,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
@@ -671,7 +672,7 @@ The following functions are part of the HDF5 Packet Table API.  </p>
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -696,10 +697,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
diff --git a/html/HL/RM_H5PT_c++.html b/html/HL/RM_H5PT_c++.html
index 2c68dfb..ee726bc 100755
--- a/html/HL/RM_H5PT_c++.html
+++ b/html/HL/RM_H5PT_c++.html
@@ -38,7 +38,7 @@
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -394,7 +394,7 @@ In the
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User's Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
diff --git a/html/HL/RM_H5TB.html b/html/HL/RM_H5TB.html
index da705c2..a6aaa5d 100755
--- a/html/HL/RM_H5TB.html
+++ b/html/HL/RM_H5TB.html
@@ -37,7 +37,7 @@
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -62,10 +62,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
diff --git a/html/HL/RM_HDF5Optimized.html b/html/HL/RM_HDF5Optimized.html
index ee9ea2f..9cfa5f7 100755
--- a/html/HL/RM_HDF5Optimized.html
+++ b/html/HL/RM_HDF5Optimized.html
@@ -37,7 +37,7 @@
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="index.html">Other High-level API documents</a>
 <!--
 <a href="Glossary.html">Glossary</a><br>
@@ -62,10 +62,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
diff --git a/html/HL/index.html b/html/HL/index.html
index cd5ef15..6dc8a8d 100644
--- a/html/HL/index.html
+++ b/html/HL/index.html
@@ -36,7 +36,7 @@ HDF5 High-level APIs
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 </td></tr>
 </table>
@@ -184,7 +184,7 @@ along with the HDF5 Library.
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 </td></tr>
 </table>
@@ -198,7 +198,7 @@ along with the HDF5 Library.
 <!--
 document.writeln(' \
 <address> \
-  Last modified: 13 March 2015 <br> \
+  Last modified: 16 October 2015 <br> \
 </address> \
 ');
 -->
diff --git a/html/Intro/IntroExamples.html b/html/Intro/IntroExamples.html
index d9b3f75..a4544b7 100644
--- a/html/Intro/IntroExamples.html
+++ b/html/Intro/IntroExamples.html
@@ -29,7 +29,7 @@
 <table border=0 width=98%>
 <tr><td valign=top align=left>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> 
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> 
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -2092,7 +2092,7 @@ main(void)
 <table border=0 width=98%>
 <tr><td valign=top align=left>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> 
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> 
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
diff --git a/html/RM/APICompatMacros.html b/html/RM/APICompatMacros.html
index 8a5712d..1a1112a 100644
--- a/html/RM/APICompatMacros.html
+++ b/html/RM/APICompatMacros.html
@@ -31,7 +31,7 @@
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -53,11 +53,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -765,7 +766,7 @@ and address any failures to complete the application migration process.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -787,11 +788,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/CollectiveCalls.html b/html/RM/CollectiveCalls.html
index 8f641fd..fee6a16 100644
--- a/html/RM/CollectiveCalls.html
+++ b/html/RM/CollectiveCalls.html
@@ -31,7 +31,7 @@ Collective HDF5 Calls in Parallel
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -53,11 +53,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -1921,7 +1922,7 @@ In the
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -1943,11 +1944,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/H5/H5is_library_threadsafe.htm b/html/RM/H5/H5is_library_threadsafe.htm
new file mode 100644
index 0000000..9f56da7
--- /dev/null
+++ b/html/RM/H5/H5is_library_threadsafe.htm
@@ -0,0 +1,105 @@
+
+
+
+<!--
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+  * Copyright by The HDF Group.                                               *
+  * All rights reserved.                                                      *
+  *                                                                           *
+  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+  * terms governing use, modification, and redistribution, is contained in    *
+  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+  * of the source code distribution tree; Copyright.html can be found at the  *
+  * root level of an installed copy of the electronic HDF5 document set and   *
+  * is linked from the top-level documents page.  It can also be found at     *
+  * http://www.hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have      *
+  * access to either file, you may request a copy from help at hdfgroup.org.     *
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ -->
+
+
+
+<!--__ ***********************************************************  -->
+<!--__ Do not alter the next line; it is used by the PDF generator. -->
+<!--__ ***********************************************************  -->
+<!-- NEW PAGE -->
+
+
+<!--__ *** HEADER RIGHT ******************************************  -->
+<!--__ Update H5function_name; leave remainder of line unchanged    -->
+<!--__ as it is also used by the PDF generator.                     -->
+<!--__ ***********************************************************  -->
+<!-- HEADER RIGHT "H5is_library_threadsafe" -->
+
+<hr />
+<dl>
+
+<dt><div align="right"><font color="999999" size="-1"><i>
+    Last modified: 29 September 2015
+    </i></font></div></dt>
+    <br />
+
+<dt><strong>Name:</strong> 
+    <a name="Library-IsLibraryThreadsafe">H5is_library_threadsafe</a></dt>
+    <br />
+
+<dt><strong>Signature:</strong></dt>
+    <dd><code><em>herr_t</em> H5is_library_threadsafe(/*OUT*/ 
+    <em>hbool_t</em> is_ts)</code></dd>
+    <br />
+
+<dt><strong>Purpose:</strong></dt>
+    <dd>Determine whether the HDF5 Library was built with the thread-safety 
+    feature enabled.</dd>
+    <br />
+
+<dt><strong>Description:</strong></dt>
+    <dd>The HDF5 Library, although not internally multithreaded, can 
+    optionally be built with a thread-safety feature enabled that 
+    protects internal data structures with a mutex. In certain 
+    circumstances, it may be useful to determine, at run-time, whether 
+    the linked HDF5 Library was built with this thread-safety feature 
+    enabled.</dd>
+    <br />
+
+<dt><strong>Parameters:</strong></dt>
+    <dd><table width="100%">
+        <tr>
+            <td valign="top"><code><em>hbool_t</em> is_ts    </code></td>
+            <td valign="top">OUT: Boolean value indicating 
+                whether the library was built with thread-safety enabled.</td>
+        </tr></table></dd>
+    <br />
+
+<dt><strong>Returns:</strong></dt>
+    <dd>Returns a non-negative value if successful. Otherwise, returns 
+    a negative value.</dd>
+    <br />
+
+<dt><strong>Fortran Interface:</strong></dt>
+    <dd>None</dd>
+    <br />
+
+  <dt><strong>History:</strong></dt>
+    <dd>
+    <table width="90%">
+    <tr>
+        <td valign="top" align="left" width="10%">
+        <strong>Release</strong>    </td>
+        <td valign="top" align="left">
+        <strong>Change</strong></td>
+    </tr><tr>
+        <td valign="top">1.8.16</td>
+        <td valign="top">
+        C function introduced with this release.</td>
+    </tr>
+    </table>
+</dd>
+    <br />
+</dl>
+<br />
+<br />
+<br />
+
+
+
diff --git a/html/RM/H5A/H5Aread.htm b/html/RM/H5A/H5Aread.htm
index 71d5303..0bfaadf 100644
--- a/html/RM/H5A/H5Aread.htm
+++ b/html/RM/H5A/H5Aread.htm
@@ -47,10 +47,10 @@
         <p>
         Datatype conversion takes place at the time of a read or write
         and is automatic.  See the
-        <a href="../UG/UG_frame11Datatypes.html#Dtransfer">
+        <a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatatypes%2FHDF5_Datatypes.htm%23TOC_6_10_Data_Transferbc-26&rhtocid=6.5_2">
         “Data Transfer: Datatype Conversion and Selection”</a> 
         section in the “HDF5 Datatypes” chapter of the 
-        <cite>HDF5 User's Guide</cite> for a discussion of data conversion.
+        <cite>HDF5 User’s Guide</cite> for a discussion of data conversion.
 
 <p>
 <dt><strong>Parameters:</strong>
diff --git a/html/RM/H5A/H5Awrite.htm b/html/RM/H5A/H5Awrite.htm
index f2c7efc..eba96a0 100644
--- a/html/RM/H5A/H5Awrite.htm
+++ b/html/RM/H5A/H5Awrite.htm
@@ -57,10 +57,10 @@
         <p>
         Datatype conversion takes place at the time of a read or write
         and is automatic.  See the
-        <a href="../UG/UG_frame11Datatypes.html#Dtransfer">
+        <a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatatypes%2FHDF5_Datatypes.htm%23TOC_6_10_Data_Transferbc-26&rhtocid=6.5_2">
         “Data Transfer: Datatype Conversion and Selection”</a> 
         section in the “HDF5 Datatypes” chapter of the 
-        <cite>HDF5 User's Guide</cite> for a discussion of data conversion.
+        <cite>HDF5 User’s Guide</cite> for a discussion of data conversion.
 
 <p>
 <dt><strong>Parameters:</strong>
diff --git a/html/RM/H5D/H5Dread.htm b/html/RM/H5D/H5Dread.htm
index 198cbaf..5886ccb 100644
--- a/html/RM/H5D/H5Dread.htm
+++ b/html/RM/H5D/H5Dread.htm
@@ -163,10 +163,10 @@
         <p>
         Datatype conversion takes place at the time of a read or write
         and is automatic.  See the
-        <a href="../UG/UG_frame11Datatypes.html#Dtransfer">
+        <a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatatypes%2FHDF5_Datatypes.htm%23TOC_6_10_Data_Transferbc-26&rhtocid=6.5_2">
         “Data Transfer: Datatype Conversion and Selection”</a> 
         section in the “HDF5 Datatypes” chapter of the 
-        <cite>HDF5 User's Guide</cite> for a discussion of data conversion.
+        <cite>HDF5 User’s Guide</cite> for a discussion of data conversion.
     <p>
 <dt><strong>Parameters:</strong>
     <dd><table>
diff --git a/html/RM/H5D/H5Dwrite.htm b/html/RM/H5D/H5Dwrite.htm
index 4a2fd39..e83cfd4 100644
--- a/html/RM/H5D/H5Dwrite.htm
+++ b/html/RM/H5D/H5Dwrite.htm
@@ -171,10 +171,10 @@
         <p>
         Datatype conversion takes place at the time of a read or write
         and is automatic.  See the
-        <a href="../UG/UG_frame11Datatypes.html#Dtransfer">
+        <a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatatypes%2FHDF5_Datatypes.htm%23TOC_6_10_Data_Transferbc-26&rhtocid=6.5_2">
         “Data Transfer: Datatype Conversion and Selection”</a> 
         section in the “HDF5 Datatypes” chapter of the 
-        <cite>HDF5 User's Guide</cite> for a discussion of data conversion.
+        <cite>HDF5 User’s Guide</cite> for a discussion of data conversion.
         <p>
 	If the dataset's space allocation time is set to 
 	<code>H5D_ALLOC_TIME_LATE</code> or <code>H5D_ALLOC_TIME_INCR</code>
diff --git a/html/RM/H5F/H5Fget_access_plist.htm b/html/RM/H5F/H5Fget_access_plist.htm
index 78d5d6e..dc08b1b 100644
--- a/html/RM/H5F/H5Fget_access_plist.htm
+++ b/html/RM/H5F/H5Fget_access_plist.htm
@@ -41,9 +41,9 @@
             in this reference manual and 
             “File Access Properties” 
             in 
-            <a href="../UG/UG_frame08TheFile.html#FileAccessProperties">
+            <a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FTheFile%2FThe_HDF5_File.htm%23TOC_3_10_3_File_Accessbc-16&rhtocid=3.2.0_3">
             “The HDF5 File”</a> chapter in the 
-            <cite>HDF5 User's Guide</cite> for more information.
+            <cite>HDF5 User’s Guide</cite> for more information.
 <dt><strong>Parameters:</strong>
     <ul><table>
         <tr>
diff --git a/html/RM/H5F/H5Fget_create_plist.htm b/html/RM/H5F/H5Fget_create_plist.htm
index a8b2f86..dff214b 100644
--- a/html/RM/H5F/H5Fget_create_plist.htm
+++ b/html/RM/H5F/H5Fget_create_plist.htm
@@ -44,9 +44,9 @@
             in this reference manual and 
             “File Creation Properties” 
             in 
-            <a href="../UG/UG_frame08TheFile.html#FileCreationProperties">
+            <a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FTheFile%2FThe_HDF5_File.htm%23TOC_3_10_2_File_Creationbc-15&rhtocid=3.2.0_2">
             “The HDF5 File”</a> chapter in the 
-            <cite>HDF5 User's Guide</cite> for more information.
+            <cite>HDF5 User’s Guide</cite> for more information.
             <p>
             The creation property list identifier should be released with 
             <a href="RM_H5P.html#Property-Close"><code>H5Pclose</code></a>.
diff --git a/html/RM/H5O/H5Odecr_refcount.htm b/html/RM/H5O/H5Odecr_refcount.htm
index bd48d8e..96543c7 100644
--- a/html/RM/H5O/H5Odecr_refcount.htm
+++ b/html/RM/H5O/H5Odecr_refcount.htm
@@ -50,7 +50,7 @@
       An object’s <i>reference count</i> is the number of hard links 
       in the file that point to that object.  See the 
           “Programming Model” section of the 
-          “<a href="../UG/UG_frame09Groups.html" 
+          “<a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FGroups%2FHDF5_Groups.htm" 
           target="UGwindow">HDF5 Groups</a>” chapter in the 
           <cite>HDF5 User’s Guide</cite> 
       for a more complete discussion of reference counts.
@@ -100,7 +100,7 @@
           <td valign="top" align="left" width="10%">
             <strong>Release</strong>    </td>
           <td valign="top" align="left">
-            <strong>C</strong></td></tr>
+            <strong>Change</strong></td></tr>
         <tr>
           <td valign="top">1.8.11</td>
           <td valign="top">
diff --git a/html/RM/H5O/H5Oexists_by_name.htm b/html/RM/H5O/H5Oexists_by_name.htm
index ad5bfc0..f7d05f2 100644
--- a/html/RM/H5O/H5Oexists_by_name.htm
+++ b/html/RM/H5O/H5Oexists_by_name.htm
@@ -173,9 +173,9 @@
         <p>
 
         “Discovering Objects in a Group” in the
-        “<a href="../UG/UG_frame09Groups.html">Groups</a>” 
+        “<a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FGroups%2FHDF5_Groups.htm">Groups</a>” 
         chapter of the
-        <a href="../UG/index.html"><cite>HDF5 User’s Guide</cite></a>
+        <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 User’s Guide</cite></a>
 
   <p>
   <dt><strong>Fortran90 Interface:</strong> h5oexists_by_name_f
diff --git a/html/RM/H5O/H5Oincr_refcount.htm b/html/RM/H5O/H5Oincr_refcount.htm
index ac5565c..2820bb5 100644
--- a/html/RM/H5O/H5Oincr_refcount.htm
+++ b/html/RM/H5O/H5Oincr_refcount.htm
@@ -49,7 +49,7 @@
       An object’s <i>reference count</i> is the number of hard links 
       in the file that point to that object.  See the 
           “Programming Model” section of the 
-          “<a href="../UG/UG_frame09Groups.html" 
+          “<a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FGroups%2FHDF5_Groups.htm" 
           target="UGwindow">HDF5 Groups</a>” chapter in the 
           <cite>HDF5 User’s Guide</cite> 
       for a more complete discussion of reference counts.
@@ -99,7 +99,7 @@
           <td valign="top" align="left" width="10%">
             <strong>Release</strong>    </td>
           <td valign="top" align="left">
-            <strong>C</strong></td></tr>
+            <strong>Change</strong></td></tr>
         <tr>
           <td valign="top">1.8.11</td>
           <td valign="top">
diff --git a/html/RM/H5O/H5Oopen_by_addr.htm b/html/RM/H5O/H5Oopen_by_addr.htm
index a999a3a..60bce09 100644
--- a/html/RM/H5O/H5Oopen_by_addr.htm
+++ b/html/RM/H5O/H5Oopen_by_addr.htm
@@ -60,7 +60,7 @@
       byte offset of the first byte of the object header from the beginning 
       of the HDF5 file space, i.e., from the beginning of the super block 
       (see the “HDF5 Storage Model” section of the 
-      “<a href="../UG/UG_frame03DataModel.html" target="UGwindow">The 
+      “<a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDataModelAndFileStructure%2FThe_HDF5_Data_Model_and_File_Structure.htm" target="UGwindow">The 
       HDF5 Data Model and File Structure</a>” chapter 
       of the <cite>HDF5 User’ Guide</cite>).
 
diff --git a/html/RM/H5P/H5Pset_chunk.htm b/html/RM/H5P/H5Pset_chunk.htm
index 9c5e36d..891dbd0 100644
--- a/html/RM/H5P/H5Pset_chunk.htm
+++ b/html/RM/H5P/H5Pset_chunk.htm
@@ -21,37 +21,64 @@
 <!-- NEW PAGE -->
 <!-- HEADER RIGHT "H5Pset_chunk" -->
 <hr>
-<dl>
-  <dt><strong>Name:</strong> <a name="Property-SetChunk">H5Pset_chunk</a>
-  <dt><strong>Signature:</strong>
+<dl>
+  <dt><div align="right"><font color="999999" size="-1"><i>
+    Last modified: 16 September 2015
+    </i></font></div></dt>
+    <br />
+
+  <dt><strong>Name:</strong> <a name="Property-SetChunk">H5Pset_chunk</a></dt>
+    <br />
+  <dt><strong>Signature:</strong></dt>
     <dd><em>herr_t </em><code>H5Pset_chunk</code>(<em>hid_t</em> <code>plist</code>,
             <em>int</em> <code>ndims</code>,
             <em>const hsize_t *</em> <code>dim</code>
-        )
-  <dt><strong>Purpose:</strong>
-    <dd>Sets the size of the chunks used to store a chunked layout dataset.  
-  <dt><strong>Description:</strong>
-    <dd><code>H5Pset_chunk</code> sets the size of the chunks used to 
+        )</dd>
+        <br />
+  <dt><strong>Purpose:</strong></dt>
+    <dd>Sets the size of the chunks used to store a chunked layout dataset. 
+    </dd>
+    <br />
+  <dt><strong>Description:</strong></dt>
+    <dd>
+    <p><code>H5Pset_chunk</code> sets the size of the chunks used to 
         store a chunked layout dataset.  This function is only valid 
-        for dataset creation property lists.  
+        for dataset creation property lists.</p>  
         <p>
         The <code>ndims</code> parameter currently must be the same size 
-        as the rank of the dataset.  
+        as the rank of the dataset.  </p>
         <p>
         The values of the <code>dim</code> 
         array define the size of the chunks to store the dataset's raw data.
         The unit of measure for <code>dim</code> values is 
-        <em>dataset elements</em>.
+        <em>dataset elements</em>.</p>
         <p>
         As a side-effect of this function, the layout of the dataset is 
         changed to <code>H5D_CHUNKED</code>, if it is not already so set.
-        (See <a href="#Property-SetLayout"><code>H5Pset_layout</code></a>.)
-        <p>     
-        <em>Note regarding fixed-size datasets:</em><br>
-        Chunk size cannot exceed the size of a fixed-size dataset.
-        For example, a dataset consisting of a 5x4 fixed-size array cannot be
-        defined with 10x10 chunks.
-  <dt><strong>Parameters:</strong>
+        (See <a href="#Property-SetLayout"><code>H5Pset_layout</code></a>.)
+        </p>
+        </dd>
+        <br />
+  <dt><strong>Notes:</strong></dt>
+    <ul>
+        <li>Chunk size cannot exceed the size of a fixed-size dataset. 
+        For example, a dataset consisting of a 5x4 fixed-size array 
+        cannot be defined with 10x10 chunks. </li>
+        <li>Chunk maximums</li>
+            <ul>
+            <li>The maximum number of elements in a chunk is 
+            2<sup>32</sup>-1 which is equal to 4,294,967,295. If the 
+            number of elements in a chunk is set via 
+            <code>H5Pset_chunk</code> to a value greater than 
+            2<sup>32</sup>-1, then <code>H5Pset_chunk</code> will fail.</li>
+            
+            <li>The maximum size for any chunk is 4GB. If a chunk that 
+            is larger than 4GB attempts to be written with 
+            <code>H5Dwrite</code>, then <code>H5Dwrite</code> will fail.</li>
+            </ul>
+        </ul>
+        <br />
+  <dt><strong>Parameters:</strong></dt>
     <ul><table>
         <tr>
           <td valign="top"><em>hid_t</em> <code>plist</code></td>
@@ -64,11 +91,13 @@
           <td valign="top"><em>const hsize_t *</em> <code>dim    </code></td>
           <td valign="top">IN: An array defining the size, in dataset elements, 
               of each chunk.</td></tr>
-    </table></ul>
-<dt><strong>Returns:</strong>
+    </table></ul>
+    <br />
+  <dt><strong>Returns:</strong></dt>
     <dd>Returns a non-negative value if successful;
-        otherwise returns a negative value.
-  <dt><strong>Fortran90 Interface:</strong> h5pset_chunk_f
+        otherwise returns a negative value.</dd>
+    <br />
+  <dt><strong>Fortran90 Interface:</strong> h5pset_chunk_f</dt>
     <dd>
 	<pre>
 SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr) 
@@ -81,7 +110,7 @@ SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
   INTEGER, INTENT(OUT) :: hdferr        ! Error code
                                         ! 0 on success and -1 on failure
 END SUBROUTINE h5pset_chunk_f
-	</pre>		
+	</pre></dd>
 		
 		<!--<dt><strong>Non-C API(s):</strong>
     	<dd>
@@ -89,6 +118,22 @@ END SUBROUTINE h5pset_chunk_f
         <img src="Graphics/Java.gif"> 
         <img src="Graphics/C++.gif">
         -->
+  <dt><strong>History:</strong></dt>
+    <dd>
+    <table width="90%">
+    <tr>
+        <td valign="top" align="left" width="10%">
+        <strong>Release</strong>    </td>
+        <td valign="top" align="left">
+        <strong>Change</strong></td>
+    </tr><tr>
+        <td valign="top">1.8.16</td>
+        <td valign="top">
+        Added chunk size limit note to Description.</td>
+    </tr>
+    </table>
+    </dd>
+    <br />
 </dl>
 
 
diff --git a/html/RM/H5P/H5Pset_mdc_config.htm b/html/RM/H5P/H5Pset_mdc_config.htm
index 54a5ced..0ab0c72 100644
--- a/html/RM/H5P/H5Pset_mdc_config.htm
+++ b/html/RM/H5P/H5Pset_mdc_config.htm
@@ -212,8 +212,8 @@
               good place to start in the serial case.  In the parallel case,
               a larger value is needed -- see the overview of the metadata
               cache in the 
-              “<a href="../UG/UG_frame17SpecialTopics.html">HDF5 
-              Special Topics</a>” section of the 
+              “<a href="../Advanced/MetadataCache/index.html">
+              Metadata Caching in HDF5</a>” section of the 
               <cite>HDF5 User’s Guide</cite> for details.</td></tr>
         <tr>
 		    <td valign="top"><em>size_t</em> <code>max_size</code>
diff --git a/html/RM/H5PL/H5PLget_loading_state.htm b/html/RM/H5PL/H5PLget_loading_state.htm
new file mode 100644
index 0000000..d9d4f6c
--- /dev/null
+++ b/html/RM/H5PL/H5PLget_loading_state.htm
@@ -0,0 +1,138 @@
+
+
+<!--
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+  * Copyright by The HDF Group.                                               *
+  * Copyright by the Board of Trustees of the University of Illinois.         *
+  * All rights reserved.                                                      *
+  *                                                                           *
+  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+  * terms governing use, modification, and redistribution, is contained in    *
+  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+  * of the source code distribution tree; Copyright.html can be found at the  *
+  * root level of an installed copy of the electronic HDF5 document set and   *
+  * is linked from the top-level documents page.  It can also be found at     *
+  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+  * access to either file, you may request a copy from help at hdfgroup.org.     *
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ -->
+
+
+<!-- NEW PAGE -->
+<!-- HEADER RIGHT "H5PLget_loading_state" -->
+<hr>
+<dl>
+
+  <dt><div align=right><font color=999999 size=-1><i>
+      Last modified: 2 September 2015
+      </i></font></div>
+
+  <dt><strong>Name:</strong> <a name="Plugin-GetLoadingState">H5PLget_loading_state</a>
+
+  <dt><strong>Signature:</strong>
+    <dd><em>herr_t</em> <code>H5PLget_loading_state</code>(
+            <em>int</em> *<code>plugin_flags</code>
+    )
+
+  <p />
+  <dt><strong>Purpose:</strong>
+    <dd>Query state of the loading of dynamic plugins.
+
+<!--
+  <p />
+  <dt><strong>Motivation:</strong>
+    <dd>This function will return the state of the dynamic plugins flag. 
+       The <code>H5PL_type_t</code> enum list contains the currently used 
+       dynamic plugin types.
+<font color="red"><i>
+       <br />
+       This <code>H5PL_type_t</code> enum should be displayed or defined 
+       in this entry.
+</i></font>
+-->
+
+  <p />
+  <dt><strong>Description:</strong>
+    <dd><code>H5PLget_loading_state</code> retrieves the state of the 
+        dynamic plugins flag, <code>plugin_flags</code>. 
+        <p />
+        Types of plugins that are subject to programmatic control
+        are listed in the definition of the 
+        <code>H5PL_type_t</code> <small>ENUM</small>.
+        That list is presented in the “Plugin Type/Bit Position” 
+        table in the <code>H5PLset_loading_state</code> reference manual entry.
+
+  <p />
+  <dt><strong>Parameters:</strong>
+    <dd><table>
+      <tr>
+        <td valign="top"><em>int</em> <code>plugin_flags</code>    
+        </td>
+        <td valign="top">OUT: List of dynamic plugin types 
+            that are enabled or disabled.
+            <br>
+            A plugin bit set to <code>0</code> (zero) 
+            indicates that that dynamic plugin is disabled.
+            <br>
+            A plugin bit set to <code>1</code> (one) 
+            indicates that that dynamic plugin is enabled.
+            <p />
+	    If the value of <code>plugin_flags</code> is negative,
+            all dynamic plugins are enabled. 
+            <br>
+	    If the value of <code>plugin_flags</code> is <code>0</code> (zero),
+            all dynamic plugins are disabled.
+
+        </td></tr>
+    </table>
+
+  <p />
+  <dt><strong>Returns:</strong>
+    <dd>Returns a non-negative value if successful;
+        otherwise returns a negative value.
+
+  <p />
+  <dt><strong>Example Usage:</strong>
+    <dd><pre>
+/* Disable plugin X: Requires user to negate the state 
+ * with a 0 in bit position X and AND it with the result 
+ * from an H5PLget_loading_state call. */
+
+H5PLget_loading_state(&curr_setting);
+int new_setting = curr_setting & ~H5PL_FILTER_PLUGIN ;
+H5PLset_loading_state (new_setting);
+    </pre>
+    </dd>
+
+  <p />
+  <dt><strong>Fortran Interface:</strong>  <!-- h5plget_loading_state_f -->
+    <dd>None.
+
+  <p />
+  <dt><strong>See Also:</strong>
+    <dd><a href="#Plugin-SetLoadingState"><code>H5PLset_loading_state</code></a>
+        <p />
+<!--
+        <a href="#Plugin-GetLoadingState"><code>H5PLget_loading_state</code></a>
+        <p />
+-->
+        <p />
+        “<a href="../Advanced/DynamicallyLoadedFilters/index.html">Dynamic 
+        Plugins in HDF5</a>”
+
+  <p />
+  <dt><strong>History:</strong>
+    <dd><table width="90%">
+        <tr>
+          <td valign="top" align="left" width="10%">
+            <strong>Release</strong>    </td>
+          <td valign="top" align="left">
+            <strong>C</strong></td></tr>
+        <tr>
+          <td valign="top">1.8.15</td>
+          <td valign="top">
+            Function introduced in this release.</td></tr>
+    </table>
+</dl>
+
+
diff --git a/html/RM/H5PL/H5PLset_loading_state.htm b/html/RM/H5PL/H5PLset_loading_state.htm
new file mode 100644
index 0000000..b201c93
--- /dev/null
+++ b/html/RM/H5PL/H5PLset_loading_state.htm
@@ -0,0 +1,170 @@
+
+
+<!--
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+  * Copyright by The HDF Group.                                               *
+  * Copyright by the Board of Trustees of the University of Illinois.         *
+  * All rights reserved.                                                      *
+  *                                                                           *
+  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+  * terms governing use, modification, and redistribution, is contained in    *
+  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+  * of the source code distribution tree; Copyright.html can be found at the  *
+  * root level of an installed copy of the electronic HDF5 document set and   *
+  * is linked from the top-level documents page.  It can also be found at     *
+  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+  * access to either file, you may request a copy from help at hdfgroup.org.     *
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ -->
+
+
+<!-- NEW PAGE -->
+<!-- HEADER RIGHT "H5PLset_loading_state" -->
+<hr>
+<dl>
+
+  <dt><div align=right><font color=999999 size=-1><i>
+      Last modified: 28 August 2015
+      </i></font></div>
+
+  <dt><strong>Name:</strong> <a name="Plugin-SetLoadingState">H5PLset_loading_state</a>
+  <dt><strong>Signature:</strong>
+    <dd><em>herr_t</em> <code>H5PLset_loading_state</code>(
+            <em>int</em> <code>plugin_flags</code>
+    )
+
+  <p />
+  <dt><strong>Purpose:</strong>
+    <dd>Control the loading of dynamic plugins.
+
+  <p />
+  <dt><strong>Motivation:</strong>
+    <dd>The loading of external dynamic plugins can be controlled 
+        during runtime with an environment variable, 
+        <code>HDF5_PLUGIN_PRELOAD</code>. 
+        The environment variable can control the loading of dynamic filters 
+        at runtime, but it will disable it for all running programs that 
+        access that variable using the library. 
+        <p>
+        <code>H5PLset_loading_state</code> controls the 
+        loading of external dynamic plugins during program execution.
+
+  <p />
+  <dt><strong>Description:</strong>
+    <dd><code>H5PLset_loading_state</code> uses one argument 
+        to enable or disable individual plugins. 
+        <p />
+        The <code>plugin_flags</code> parameter is an encoded integer 
+        in which each bit controls a specific plugin or class of plugins.
+        Bit positions allocated to date are listed in the 
+        “Plugin Type/Bit Position” table below. 
+        <p />
+        A plugin bit set to <code>0</code> (zero) prevents the use of
+        the dynamic plugin corresponding to that bit position. 
+        A plugin bit set to <code>1</code> (one) allows the use of 
+        that dynamic plugin.
+        <p />
+        All dynamic plugins can be enabled by setting <code>plugin_flags</code> 
+        to a negative value. 
+        A value of <code>0</code> (zero) will disable all dynamic plugins.
+        <p />
+        <code>H5PLset_loading_state</code> inspects the 
+        <code>HDF5_PLUGIN_PRELOAD</code> environment variable every time 
+        it is called.  If the environment variable is set to the special 
+        <code>::</code> string, all dynamic plugins will be disabled. 
+ 
+  <p />
+  <dt><strong>Note:</strong>
+    <dd>The classes of plugins subject to programmatic control are
+        specified in the <code>H5PL_type_t</code> <small>ENUM</small>.
+        Since only dynamically loaded filter plugins are currently 
+        subject to programmatic control, only one plugin type is 
+        defined:
+        <table>
+          <tr valign="top" align="left">
+            <th><code>    </code></th>
+            <th>Plugin Type</th>
+            <th>Bit Position</th>
+            </tr>
+          <tr valign="top" align="left">
+            <td> </td>
+            <td><code>H5PL_TYPE_FILTER    </code></td>
+            <td><code>0</code>
+            </tr>
+        </table> 
+        Additional values may be added to the <code>H5PL_type_t</code> 
+        <small>ENUM</small> as programmatic control is implemented for 
+        other plugin types. 
+
+  <p />
+  <dt><strong>Parameters:</strong>
+    <dd><table>
+      <tr>
+        <td valign="top"><em>int</em> <code>plugin_flags</code>    
+        </td>
+        <td valign="top">IN: The list of dynamic plugin types to enable or disable.
+            <br>
+            A plugin bit set to <code>0</code> (zero) 
+            prevents use of that dynamic plugin.
+            <br>
+            A plugin bit set to <code>1</code> (one) 
+            enables use of that dynamic plugin.
+            <p />
+	    Setting <code>plugin_flags</code> to a negative value
+            enables all dynamic plugins. 
+            <br>
+	    Setting <code>plugin_flags</code> to <code>0</code> (zero)
+            disables all dynamic plugins.
+
+        </td></tr>
+    </table>
+
+  <p />
+  <dt><strong>Returns:</strong>
+    <dd>Returns a non-negative value if successful;
+        otherwise returns a negative value.
+
+  <p />
+  <dt><strong>Example Usage:</strong>
+    <dd><pre>
+/* Disable plugin X: Requires user to negate the state 
+ * with a 0 in bit position X and AND it with the result 
+ * from an H5PLget_loading_state call. */
+
+H5PLget_loading_state(&curr_setting);
+int new_setting = curr_setting & ~H5PL_FILTER_PLUGIN ;
+H5PLset_loading_state (new_setting);
+    </pre>
+    </dd>
+
+  <p />
+  <dt><strong>Fortran90 Interface:</strong> <!-- h5pset_loading_state_f -->
+    <dd>None.
+
+  <p />
+  <dt><strong>See Also:</strong>
+    <dd>
+<!--    <a href="#Plugin-SetLoadingState"><code>H5PLset_loading_state</code></a>
+        <p />
+-->
+        <a href="#Plugin-GetLoadingState"><code>H5PLget_loading_state</code></a>
+        <p />
+        “<a href="../Advanced/DynamicallyLoadedFilters/index.html">Dynamic 
+        Plugins in HDF5</a>”
+
+  <p />
+  <dt><strong>History:</strong>
+    <dd><table width="90%">
+        <tr>
+          <td valign="top" align="left" width="10%">
+            <strong>Release</strong>    </td>
+          <td valign="top" align="left">
+            <strong>C</strong></td></tr>
+        <tr>
+          <td valign="top">1.8.15</td>
+          <td valign="top">
+            Function introduced in this release.</td></tr>
+    </table>
+</dl>
+
+
diff --git a/html/RM/PredefDTypes.html b/html/RM/PredefDTypes.html
index e664a13..cbf6f7f 100644
--- a/html/RM/PredefDTypes.html
+++ b/html/RM/PredefDTypes.html
@@ -31,7 +31,7 @@ HDF5/Predefined Datatypes
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -53,11 +53,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -507,7 +508,7 @@ The following datatypes are predefined in HDF5.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -529,11 +530,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5.html b/html/RM/RM_H5.html
index bfd8880..fe4b66a 100644
--- a/html/RM/RM_H5.html
+++ b/html/RM/RM_H5.html
@@ -31,7 +31,7 @@ HDF5/H5 API Specification
 <tr><td valign="top" align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -53,11 +53,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -97,24 +98,25 @@ library and its users.
     <li><a href="#Library-Close">H5close</a></li>
     <li><a href="#Library-DontAtExit">H5dont_atexit</a></li>
     <li><a href="#Library-SetFreeListLimits">H5set_free_list_limits</a></li>
+    <li><a href="#Library-GarbageCollect">H5garbage_collect</a></li>
 </ul>
 </td>
 <td valign="top" width="15%">
 <ul>
-    <li><a href="#Library-GarbageCollect">H5garbage_collect</a></li>
     <li><a href="#Library-AllocateMemory">H5allocate_memory</a></li>
     <li><a href="#Library-ResizeMemory">H5resize_memory</a></li>
     <li><a href="#Library-FreeMemory">H5free_memory</a></li>
+    <li><a href="#Library-Version">H5get_libversion</a></li>
+    <li><a href="#Library-VersCheck">H5check_version</a></li>
 </ul>
 </td>
 
 <td valign="top" width="70%">
 
 <ul>
-    <li><a href="#Library-Version">H5get_libversion</a></li>
-    <li><a href="#Library-VersCheck">H5check_version</a></li>
     <li><a href="#Library-VersionGE">H5_VERSION_GE</a></li>
     <li><a href="#Library-VersionLE">H5_VERSION_LE</a></li>
+    <li><a href="#Library-IsLibraryThreadsafe">H5is_library_threadsafe</a></li>
 </ul>
 
 </td>
@@ -133,21 +135,22 @@ library and its users.
       <li><a href="#Library-VersCheck">H5check_version</a></li>
       <li><a href="#Library-Close">H5close</a></li>
       <li><a href="#Library-DontAtExit">H5dont_atexit</a></li>
+      <li><a href="#Library-FreeMemory">H5free_memory</a></li>
 	</ul>
     </td>
     
     <td valign="top" width="15%">
 	<ul>
-      <li><a href="#Library-FreeMemory">H5free_memory</a></li>
       <li><a href="#Library-GarbageCollect">H5garbage_collect</a></li>
       <li><a href="#Library-Version">H5get_libversion</a></li>
+      <li><a href="#Library-IsLibraryThreadsafe">H5is_library_threadsafe</a></li>
       <li><a href="#Library-Open">H5open</a></li>
+      <li><a href="#Library-ResizeMemory">H5resize_memory</a></li>
 	</ul>
     </td>
     
     <td valign="top" width="70%">
 	<ul>
-      <li><a href="#Library-ResizeMemory">H5resize_memory</a></li>
       <li><a href="#Library-SetFreeListLimits">H5set_free_list_limits</a></li>
       <li><a href="#Library-VersionGE">H5_VERSION_GE</a></li>
       <li><a href="#Library-VersionLE">H5_VERSION_LE</a></li>
@@ -207,6 +210,7 @@ as the corresponding C function.
 <?php include("H5/H5free_memory.htm"); ?>
 <?php include("H5/H5garbage_collect.htm"); ?>
 <?php include("H5/H5get_libversion.htm"); ?>
+<?php include("H5/H5is_library_threadsafe.htm"); ?>
 <?php include("H5/H5open.htm"); ?>
 <?php include("H5/H5resize_memory.htm"); ?>
 <?php include("H5/H5set_free_list_limits.htm"); ?>
@@ -222,7 +226,7 @@ as the corresponding C function.
 <tr><td valign="top" align="left">
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -245,11 +249,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -277,7 +282,7 @@ In the
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 1 May 2015");
+document.writeln("Last modified: 29 September 2015");
 -->
 </SCRIPT>
 
diff --git a/html/RM/RM_H5A.html b/html/RM/RM_H5A.html
index 028967b..5921836 100644
--- a/html/RM/RM_H5A.html
+++ b/html/RM/RM_H5A.html
@@ -35,7 +35,7 @@ HDF5/H5A API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -57,11 +57,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -274,9 +275,9 @@ to indicate a particular type of dataset with supplemental datasets
 is located in the group. How small is "small" is not defined by the 
 library and is up to the user’s interpretation. 
 <p>
-See <a href="../UG/UG_frame13Attributes.html">
+See <a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FAttributes%2FHDF5_Attributes.htm">
 “HDF5 Attributes”</a> 
-in the <cite>HDF5 User's Guide</cite> for more information.
+in the <cite>HDF5 User’s Guide</cite> for more information.
 
 
 <!--  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  -->
@@ -332,7 +333,7 @@ in the <cite>HDF5 User's Guide</cite> for more information.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -354,11 +355,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5D.html b/html/RM/RM_H5D.html
index 42764fc..3e74446 100644
--- a/html/RM/RM_H5D.html
+++ b/html/RM/RM_H5D.html
@@ -33,7 +33,7 @@ HDF5/H5D API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -55,11 +55,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -281,7 +282,7 @@ as the corresponding C function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -303,11 +304,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5E.html b/html/RM/RM_H5E.html
index ff94df7..af7bd09 100644
--- a/html/RM/RM_H5E.html
+++ b/html/RM/RM_H5E.html
@@ -33,7 +33,7 @@ HDF5/H5E API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -55,11 +55,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -302,7 +303,6 @@ errors within the H5E package.
 <?php include("H5E/H5Eset_auto2.htm"); ?>
 <?php include("H5E/H5Eset_current_stack.htm"); ?>
 <?php include("H5E/H5Eunregister_class.htm"); ?>
-<?php include("H5E/H5Ewalk_cb.htm"); ?>
 <!-- unused file: H5E/H5Ewalk_cb.htm -->
 <?php include("H5E/H5Ewalk.htm"); ?>
 <?php include("H5E/H5Ewalk1.htm"); ?>
@@ -317,7 +317,7 @@ errors within the H5E package.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -339,11 +339,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5F.html b/html/RM/RM_H5F.html
index 13a7a95..712d17c 100644
--- a/html/RM/RM_H5F.html
+++ b/html/RM/RM_H5F.html
@@ -34,7 +34,7 @@ HDF5/H5F API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -56,11 +56,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -283,7 +284,7 @@ as the corresponding C function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -305,11 +306,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -337,7 +339,7 @@ In the
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 9 October 2014");
+document.writeln("Last modified: 1 June 2015");
 -->
 </SCRIPT>
  
diff --git a/html/RM/RM_H5Front.html b/html/RM/RM_H5Front.html
index 5413b11..02e634c 100644
--- a/html/RM/RM_H5Front.html
+++ b/html/RM/RM_H5Front.html
@@ -37,7 +37,7 @@ HDF5 API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -60,10 +60,11 @@ In the
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
 <a href="RM_H5I.html">H5I</a> 
-<br>
 <a href="RM_H5L.html">H5L</a>  
+<br>
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -276,6 +277,13 @@ document.writeln('<center>\
   </tr>
   <tr>
     <td valign="top" width="10%"> </td>
+    <td valign=top><a href="RM_H5PL.html">Plugin Interface</a></td>
+	<td> </td>
+	<td valign=top>The <strong>H5PL</strong> API for 
+          dynamically loaded plugins.</td>
+  </tr>
+  <tr>
+    <td valign="top" width="10%"> </td>
     <td valign=top><a href="RM_H5R.html">Reference Interface</a></td>
 	<td> </td>
 	<td valign=top>The <strong>H5R</strong> API for references.</td>
@@ -431,7 +439,7 @@ which are described in the following documents.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -454,10 +462,11 @@ In the
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
 <a href="RM_H5I.html">H5I</a> 
-<br>
 <a href="RM_H5L.html">H5L</a>  
+<br>
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -486,7 +495,7 @@ In the
 <table width="100%" border="0"> <tr valign="top"> <td align="left">
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 11 May 2015");
+document.writeln("Last modified: 13 November 2015");
 -->
 </SCRIPT>
 </td></tr></table>
diff --git a/html/RM/RM_H5G.html b/html/RM/RM_H5G.html
index 0131a70..e9d680a 100644
--- a/html/RM/RM_H5G.html
+++ b/html/RM/RM_H5G.html
@@ -34,7 +34,7 @@ HDF5/H5G API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -56,11 +56,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -290,7 +291,7 @@ as the corresponding C function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -312,11 +313,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5I.html b/html/RM/RM_H5I.html
index d12f530..b532b77 100644
--- a/html/RM/RM_H5I.html
+++ b/html/RM/RM_H5I.html
@@ -34,7 +34,7 @@ HDF5/H5I API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -56,11 +56,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -240,7 +241,7 @@ as the corresponding C function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -262,11 +263,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5L.html b/html/RM/RM_H5L.html
index 51df921..1c31071 100644
--- a/html/RM/RM_H5L.html
+++ b/html/RM/RM_H5L.html
@@ -34,7 +34,7 @@ HDF5/H5L API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -56,11 +56,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -283,7 +284,7 @@ as the corresponding C function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -305,11 +306,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5O.html b/html/RM/RM_H5O.html
index 7f1f30f..457b8ec 100644
--- a/html/RM/RM_H5O.html
+++ b/html/RM/RM_H5O.html
@@ -34,7 +34,7 @@ HDF5/H5O API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -56,11 +56,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -287,7 +288,7 @@ as the corresponding C function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -309,11 +310,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5P.html b/html/RM/RM_H5P.html
index 18c0351..79d5c25 100644
--- a/html/RM/RM_H5P.html
+++ b/html/RM/RM_H5P.html
@@ -35,7 +35,7 @@ HDF5/H5P API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -58,11 +58,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -3695,7 +3696,7 @@ See further notes in the description of each function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -3718,11 +3719,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -3749,7 +3751,7 @@ In the
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 7 April 2015");
+document.writeln("Last modified: 16 September 2015");
 -->
 </SCRIPT>
  
diff --git a/html/RM/RM_H5R.html b/html/RM/RM_H5PL.html
similarity index 74%
copy from html/RM/RM_H5R.html
copy to html/RM/RM_H5PL.html
index a0dc7bb..da01142 100644
--- a/html/RM/RM_H5R.html
+++ b/html/RM/RM_H5PL.html
@@ -1,6 +1,6 @@
 <html>
 <head><title>
-HDF5/H5R API Specification
+HDF5/H5PL API Specification
 </title>
 <link href="../ed_styles/RMelect.css" rel="stylesheet" type="text/css">
 </head>
@@ -33,7 +33,7 @@ HDF5/H5R API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -41,7 +41,8 @@ HDF5/H5R API Specification
 <td valign=top align=right>
 In the 
 <a href="RM_H5Front.html">HDF5 Reference Manual</a> 
-<font size="-1"><br>
+<font size=-1>
+<br>
 <a href="../HL/RM_H5DS.html">H5DS</a>  
 <a href="../HL/RM_H5IM.html">H5IM</a>  
 <a href="../HL/RM_H5LT.html">H5LT</a>  
@@ -55,11 +56,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -71,26 +73,27 @@ In the
 <a href="APICompatMacros.html">Compatibility Macros</a> 
 <br>
 <a href="CollectiveCalls.html">Collective Calls in Parallel</a> 
-</font>
 <!--
 <br>
 <i><font size=-1>(Printable <a href="http://hdfgroup.org/HDF5/doc/PSandPDF/HDF5_RefManual.PDF">PDF</a> of this Reference Manual)</font></i> 
 -->
-
+</font>
 </td></tr>
 </table>
 </center>
 <hr>
 <!-- #EndLibraryItem --><center>
-<h1>H5R: Reference Interface</h1>
+<h1>H5PL: Plugin Interface</h1>
 </center>
 
-<h2>Reference API Functions</h2>
+<h2>Plugin API Functions</h2>
 
-The Reference interface allows the user to create references 
-to specific objects and data regions in an HDF5 file.
+The Plugin interface provides for programmatic control of
+dynamically loaded plugins.
+<!--
 <br>
 In the following lists, italic type indicates a configurable macro.
+-->
 
 <p>
 <strong>The C Interfaces:</strong>
@@ -98,47 +101,50 @@ In the following lists, italic type indicates a configurable macro.
 <table border=0 width=80%>
 <tr><td valign=top width=40%>
 <ul>
-    <li><a href="#Reference-Create">H5Rcreate</a>
-    <li><a href="#Reference-Dereference">H5Rdereference</a>
+    <li><a href="#Plugin-SetLoadingState">H5PLset_loading_state</a>
+    <li><a href="#Plugin-GetLoadingState">H5PLget_loading_state</a>
 </ul>
-</td><td valign=top width=40%>
+</td>
+<!--
+<td valign=top width=40%>
 <ul>
-    <li><i><a href="#Reference-GetObjType">H5Rget_obj_type</a></i>
-    <li><a href="#Reference-GetObjType1">H5Rget_obj_type1</a> *
-    <li><a href="#Reference-GetObjType2">H5Rget_obj_type2</a>
+    <li><i><a href="#Plugin-WhatEver">H5PLwhat_ever2</a></i>
+    <li><a href="#Plugin-WhatEver">H5PLwhat_ever3</a> *
 </ul>
 </td><td valign=top width=20%>
 <ul>
-    <li><a href="#Reference-GetRegion">H5Rget_region</a>
-    <li><a href="#Reference-GetName">H5Rget_name</a>
+    <li><i><a href="#Plugin-WhatEver">H5PLwhat_ever4</a></i>
+    <li><a href="#Plugin-WhatEver">H5PLwhat_ever5</a> *
 </ul>
-</td></tr>
+</td>
+-->
+</tr>
+<!--
 <tr><td align=right colspan=5>
-    * <i>Use of this function is deprecated in Release 1.8.0.</i>
+    * <i>Use of this function is deprecated in Release 1.xx.xx.</i>
 </td></tr>
+-->
 </table>
 
 <p>
 
+<!--
 <i>Alphabetical Listing</i>
 
 <table border="0" width=80%>
   <tr>
     <td valign="top">
 	<ul>
-      <li><a href="#Reference-Create">H5Rcreate</a>
-      <li><a href="#Reference-Dereference">H5Rdereference</a>
-      <li><a href="#Reference-GetName">H5Rget_name</a>
+      <li><a href="#Plugin-SetLoadingState">H5PLset_loading_state</a>
+      <li><a href="#Plugin-GetLoadingState">H5PLget_loading_state</a>
 	</ul>      
     </td>
     
     <td>      </td>
-    
+
     <td valign="top">
 	<ul>
-      <li><i><a href="#Reference-GetObjType">H5Rget_obj_type</a></i>
-      <li><a href="#Reference-GetObjType1">H5Rget_obj_type1</a> *
-      <li><a href="#Reference-GetObjType2">H5Rget_obj_type2</a>
+       
 	</ul>
     </td>
     
@@ -146,13 +152,16 @@ In the following lists, italic type indicates a configurable macro.
     
     <td valign="top">
 	<ul>
-      <li><a href="#Reference-GetRegion">H5Rget_region</a>
+       
 	</ul>
     </td>
   </tr>
 </table>
 
 <br>
+-->
+
+<!--
 <strong>The Fortran Interface:</strong>
 <br>
 In general, each Fortran subroutine performs exactly the same task 
@@ -162,22 +171,25 @@ as the corresponding C function.
 <table border=0 width=80%>
 <tr><td valign=top width=40%>
 <ul>
-    <li><a href="#Reference-Create">h5rcreate_f</a>
-    <li><a href="#Reference-Dereference">h5rdereference_f</a>
+    <li><a href="#Plugin-SetLoadingState">h5plset_loading_state_f</a>
+    <li><a href="#Plugin-GetLoadingState">h5plget_loading_state_f</a>
 </ul>
-</td><td valign=top width=40%>
+</td>
+<td valign=top width=40%>
 <ul>
-    <li><a href="#Reference-GetRegion">h5rget_region_f</a>
-    <li><a href="#Reference-GetObjType">h5rget_object_type_f</a>
+    <li><a href="#Plugin-WhatEver2">h5plwhat_ever2_f</a>
+    <li><a href="#Plugin-WhatEver3">h5plwhat_ever3_f</a>
 </ul>
 </td><td valign=top width=20%>
 <ul>
 
-    <li><a href="#Reference-GetName">h5rget_name_f</a>
+    <li><a href="#Plugin-WhatEver4">h5plwhat_ever4_f</a>
+    <li><a href="#Plugin-WhatEver5">h5plwhat_ever5_f</a>
 
 </ul>
 </td></tr>
 </table>
+-->
 
 
 <p>
@@ -194,13 +206,8 @@ as the corresponding C function.
 <!--       Include function files                            -->
 <!--  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  -->
 
-<?php include("H5R/H5Rcreate.htm"); ?>
-<?php include("H5R/H5Rdereference.htm"); ?>
-<?php include("H5R/H5Rget_obj_type.htm"); ?>
-<?php include("H5R/H5Rget_obj_type1.htm"); ?>
-<?php include("H5R/H5Rget_obj_type2.htm"); ?>
-<?php include("H5R/H5Rget_name.htm"); ?>
-<?php include("H5R/H5Rget_region.htm"); ?>
+<?php include("H5PL/H5PLget_loading_state.htm"); ?>
+<?php include("H5PL/H5PLset_loading_state.htm"); ?>
 
 
 <!-- HEADER RIGHT " " -->
@@ -211,7 +218,7 @@ as the corresponding C function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -219,7 +226,8 @@ as the corresponding C function.
 <td valign=top align=right>
 In the 
 <a href="RM_H5Front.html">HDF5 Reference Manual</a> 
-<font size="-1"><br>
+<font size=-1>
+<br>
 <a href="../HL/RM_H5DS.html">H5DS</a>  
 <a href="../HL/RM_H5IM.html">H5IM</a>  
 <a href="../HL/RM_H5LT.html">H5LT</a>  
@@ -233,11 +241,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -249,23 +258,22 @@ In the
 <a href="APICompatMacros.html">Compatibility Macros</a> 
 <br>
 <a href="CollectiveCalls.html">Collective Calls in Parallel</a> 
-</font>
 <!--
 <br>
 <i><font size=-1>(Printable <a href="http://hdfgroup.org/HDF5/doc/PSandPDF/HDF5_RefManual.PDF">PDF</a> of this Reference Manual)</font></i> 
 -->
-
+</font>
 </td></tr>
 </table>
 </center>
 <hr>
 <!-- #EndLibraryItem -->
 
-<?php include("../ed_libs/Footer2.htm"); ?>
+<?php include("../ed_libs/Footer-THGonly2.htm"); ?>
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 14 October 2014");
+document.writeln("Last modified: 2 September 2015");
 -->
 </SCRIPT> 
 
diff --git a/html/RM/RM_H5R.html b/html/RM/RM_H5R.html
index a0dc7bb..caa82e8 100644
--- a/html/RM/RM_H5R.html
+++ b/html/RM/RM_H5R.html
@@ -33,7 +33,7 @@ HDF5/H5R API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -55,11 +55,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -211,7 +212,7 @@ as the corresponding C function.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -233,11 +234,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5S.html b/html/RM/RM_H5S.html
index 2febffd..df681e0 100644
--- a/html/RM/RM_H5S.html
+++ b/html/RM/RM_H5S.html
@@ -33,7 +33,7 @@ HDF5/H5S API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -55,11 +55,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -307,7 +308,7 @@ of the <cite>HDF5 User's Guide.</cite>.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -329,11 +330,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5T.html b/html/RM/RM_H5T.html
index 000042e..60ec7a8 100644
--- a/html/RM/RM_H5T.html
+++ b/html/RM/RM_H5T.html
@@ -33,7 +33,7 @@ HDF5/H5T API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -55,11 +55,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -431,9 +432,9 @@ A <em>data point</em> is an instance of a <em>datatype</em>,
       level; all other classes are compound.
 
 <p>
-See <a href="../UG/UG_frame11Datatypes.html">
+See <a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatatypes%2FHDF5_Datatypes.htm">
 “HDF5 Datatypes”</a> 
-in the <cite>HDF5 User's Guide</cite> for more information.
+in the <cite>HDF5 User’s Guide</cite> for more information.
 
 
 
@@ -535,7 +536,7 @@ in the <cite>HDF5 User's Guide</cite> for more information.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -557,11 +558,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/RM_H5Z.html b/html/RM/RM_H5Z.html
index c34d52c..dc0ac61 100644
--- a/html/RM/RM_H5Z.html
+++ b/html/RM/RM_H5Z.html
@@ -34,7 +34,7 @@ HDF5/H5Z API Specification
 <tr><td valign="top" align="left">
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -57,11 +57,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -189,7 +190,7 @@ additional unique identifiers.
 <p>
 <!--
 See <a href="../H5.user/Datasets.html"><cite>The Dataset Interface (H5D)</cite></a> 
-in the <cite>HDF5 User's Guide</cite> for further information regarding 
+in the <cite>HDF5 User’s Guide</cite> for further information regarding 
 data compression.
 -->
 
@@ -233,7 +234,7 @@ application can apply a filter that is not registered with the HDF5 Library.
 <tr><td valign="top" align="left">
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -256,11 +257,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/Tools.html b/html/RM/Tools.html
index 7d13526..8162fc2 100644
--- a/html/RM/Tools.html
+++ b/html/RM/Tools.html
@@ -32,7 +32,7 @@ HDF5/Tools API Specification
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -54,11 +54,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
@@ -219,14 +220,13 @@ installed with HDF5.
     <br><br>
     </ul>
 
-    <li><a href="http://www.hdfgroup.org/tools5.html" 
-        target="ToolsExt">Other tools</a>, 
-	including third-party and commercial utilities and applications:
-        <br>
-        <em>(Distributed separately; external link is 
-	<code>http://www.hdfgroup.org/tools5.html</code>.)</em>
+    <li>Other tools, including third-party and commercial utilities and 
+    applications, are listed on the 
+    <a href="https://www.hdfgroup.org/products/hdf5_tools/index.html">
+    “Software Using HDF5”</a> page.
 
 </ul>
+<br />
 <!--
 </td></tr>
 </table>
@@ -275,7 +275,7 @@ installed with HDF5.
 <tr><td valign=top align=left>
 <a href="../index.html">HDF5 documents and links</a> <br>
 <a href="../H5.intro.html">Introduction to HDF5</a> <br>
-<a href="../UG/index.html">HDF5 User Guide</a> <br>
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <!--
 <a href="Glossary.html">Glossary</a><br>
 -->
@@ -297,11 +297,12 @@ In the
 <a href="RM_H5E.html">H5E</a>  
 <a href="RM_H5F.html">H5F</a>  
 <a href="RM_H5G.html">H5G</a>  
-<a href="RM_H5I.html">H5I</a> 
+<a href="RM_H5I.html">H5I</a>  
+<a href="RM_H5L.html">H5L</a> 
 <br>
-<a href="RM_H5L.html">H5L</a>  
 <a href="RM_H5O.html">H5O</a>  
 <a href="RM_H5P.html">H5P</a>  
+<a href="RM_H5PL.html">H5PL</a>  
 <a href="RM_H5R.html">H5R</a>  
 <a href="RM_H5S.html">H5S</a>  
 <a href="RM_H5T.html">H5T</a>  
diff --git a/html/RM/Tools/h5check.htm b/html/RM/Tools/h5check.htm
index b0177cf..41e4942 100644
--- a/html/RM/Tools/h5check.htm
+++ b/html/RM/Tools/h5check.htm
@@ -212,9 +212,9 @@ Complete usage example line(s) for the second example here
         <p>
 
         “Discovering Objects in a Group” in the
-        “<a href="../../html/UG/UG_frame09Groups.html">Groups</a>” 
+        “<a href="../../html/UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FGroups%2FHDF5_Groups.htm">Groups</a>” 
         chapter of the
-        <a href="../../html/UG/index.html"><cite>HDF5 User’s Guide</cite></a>
+        <a href="../../html/UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 User’s Guide</cite></a>
 -->
 
 
diff --git a/html/RM/Tools/h5fix_swapped_ids.htm b/html/RM/Tools/h5fix_swapped_ids.htm
index 01e8473..124548e 100644
--- a/html/RM/Tools/h5fix_swapped_ids.htm
+++ b/html/RM/Tools/h5fix_swapped_ids.htm
@@ -221,9 +221,9 @@
         <p>
 
         “Discovering Objects in a Group” in the
-        “<a href="../../html/UG/UG_frame09Groups.html">Groups</a>” 
+        “<a href="../../html/UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FGroups%2FHDF5_Groups.htm">Groups</a>” 
         chapter of the
-        <a href="../../html/UG/index.html"><cite>HDF5 User’s Guide</cite></a>
+        <a href="../../html/UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 User’s Guide</cite></a>
 -->
 
   <p>
diff --git a/html/RM/Tools/h5import.htm b/html/RM/Tools/h5import.htm
index b50c361..63b8a0c 100644
--- a/html/RM/Tools/h5import.htm
+++ b/html/RM/Tools/h5import.htm
@@ -558,7 +558,7 @@
           <code>    UNIX</code> *
             </td><td>See the "Predefined Atomic Types" section 
                  in the "HDF5 Datatypes" chapter 
-                 of the <cite>HDF5 User's Guide</cite> 
+                 of the <cite>HDF5 User’s Guide</cite> 
                  for a discussion of these architectures.<br>
                  Values marked with an asterisk (*) are not implemented 
                  in this release.<br>
diff --git a/html/Supplements/dtype_conversion/Overflow.html b/html/Supplements/dtype_conversion/Overflow.html
index 362bebb..943f7c8 100755
--- a/html/Supplements/dtype_conversion/Overflow.html
+++ b/html/Supplements/dtype_conversion/Overflow.html
@@ -43,9 +43,9 @@ OL.upperroman { list-style-type: upper-roman }
             This note inserted: January 2010.)
             </font>
 
-    <DT>This section of the HDF5 User's Guide briefly mentions conversion overflows:
-        <dd><a href="../../UG/11_Datatypes.html#Dtransfer">Datatype Conversion 
-            and Selection</A>
+    <DT>This section of the HDF5 User’s Guide briefly mentions conversion overflows:
+        <dd><a href="../../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatatypes%2FHDF5_Datatypes.htm%23TOC_6_10_Data_Transferbc-26&rhtocid=6.5_2">
+        Datatype Conversion and Selection</A>
     <DT>The netCDF user guide section on type conversion:
         <dd><a href="http://www.unidata.ucar.edu/software/netcdf/docs/netcdf.html#Type-Conversion">Type Conversion</a>
     <DT>The netCDF user guide section on fill values:
diff --git a/html/TechNotes.html b/html/TechNotes.html
index 2039388..92adfe9 100644
--- a/html/TechNotes.html
+++ b/html/TechNotes.html
@@ -35,7 +35,7 @@ HDF5 Technical Notes
 </td>
 
 <td valign=top align=right>
-<a href="UG/index.html">HDF5 User's Guide</a> <br>
+<a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 
@@ -385,7 +385,7 @@ HDF5 Special Topics and Technical Notes  
 </td>
 
 <td valign=top align=right>
-<a href="UG/index.html">HDF5 User's Guide</a> <br>
+<a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
 <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 
diff --git a/html/UG/FmSource/AdditionalResources.fm b/html/UG/FmSource/AdditionalResources.fm
new file mode 100644
index 0000000..ad57627
Binary files /dev/null and b/html/UG/FmSource/AdditionalResources.fm differ
diff --git a/html/UG/FmSource/Attributes.fm b/html/UG/FmSource/Attributes.fm
new file mode 100644
index 0000000..28f10cd
Binary files /dev/null and b/html/UG/FmSource/Attributes.fm differ
diff --git a/html/UG/FmSource/Copyrights.fm b/html/UG/FmSource/Copyrights.fm
new file mode 100644
index 0000000..cffacbf
Binary files /dev/null and b/html/UG/FmSource/Copyrights.fm differ
diff --git a/html/UG/FmSource/DataModelAndFileStructure.fm b/html/UG/FmSource/DataModelAndFileStructure.fm
new file mode 100644
index 0000000..ac02ccf
Binary files /dev/null and b/html/UG/FmSource/DataModelAndFileStructure.fm differ
diff --git a/html/UG/FmSource/Datasets.fm b/html/UG/FmSource/Datasets.fm
new file mode 100644
index 0000000..b10896d
Binary files /dev/null and b/html/UG/FmSource/Datasets.fm differ
diff --git a/html/UG/FmSource/Dataspaces.fm b/html/UG/FmSource/Dataspaces.fm
new file mode 100644
index 0000000..f49a71e
Binary files /dev/null and b/html/UG/FmSource/Dataspaces.fm differ
diff --git a/html/UG/FmSource/Datatypes.fm b/html/UG/FmSource/Datatypes.fm
new file mode 100644
index 0000000..9417655
Binary files /dev/null and b/html/UG/FmSource/Datatypes.fm differ
diff --git a/html/UG/FmSource/ErrorHandling.fm b/html/UG/FmSource/ErrorHandling.fm
new file mode 100644
index 0000000..0fd7195
Binary files /dev/null and b/html/UG/FmSource/ErrorHandling.fm differ
diff --git a/html/UG/FmSource/Groups.fm b/html/UG/FmSource/Groups.fm
new file mode 100644
index 0000000..f2e3557
Binary files /dev/null and b/html/UG/FmSource/Groups.fm differ
diff --git a/html/UG/FmSource/HDF5_UG_LOCE.fm b/html/UG/FmSource/HDF5_UG_LOCE.fm
new file mode 100644
index 0000000..1a19bd6
Binary files /dev/null and b/html/UG/FmSource/HDF5_UG_LOCE.fm differ
diff --git a/html/UG/FmSource/HDF5_UG_LOF.fm b/html/UG/FmSource/HDF5_UG_LOF.fm
new file mode 100644
index 0000000..346891c
Binary files /dev/null and b/html/UG/FmSource/HDF5_UG_LOF.fm differ
diff --git a/html/UG/FmSource/HDF5_UG_LOFL.fm b/html/UG/FmSource/HDF5_UG_LOFL.fm
new file mode 100644
index 0000000..c88c4e3
Binary files /dev/null and b/html/UG/FmSource/HDF5_UG_LOFL.fm differ
diff --git a/html/UG/FmSource/HDF5_UG_LOT.fm b/html/UG/FmSource/HDF5_UG_LOT.fm
new file mode 100644
index 0000000..67e2ca4
Binary files /dev/null and b/html/UG/FmSource/HDF5_UG_LOT.fm differ
diff --git a/html/UG/FmSource/HDF5_UG_TOC.fm b/html/UG/FmSource/HDF5_UG_TOC.fm
new file mode 100644
index 0000000..b3b9da4
Binary files /dev/null and b/html/UG/FmSource/HDF5_UG_TOC.fm differ
diff --git a/html/UG/FmSource/HDF5_UG_Title.fm b/html/UG/FmSource/HDF5_UG_Title.fm
new file mode 100644
index 0000000..25221ae
Binary files /dev/null and b/html/UG/FmSource/HDF5_UG_Title.fm differ
diff --git a/html/UG/FmSource/HDF5_Users_Guide.book b/html/UG/FmSource/HDF5_Users_Guide.book
new file mode 100644
index 0000000..6ea4108
Binary files /dev/null and b/html/UG/FmSource/HDF5_Users_Guide.book differ
diff --git a/html/UG/FmSource/HDF5_Users_GuideIX.fm b/html/UG/FmSource/HDF5_Users_GuideIX.fm
new file mode 100644
index 0000000..e24ee53
Binary files /dev/null and b/html/UG/FmSource/HDF5_Users_GuideIX.fm differ
diff --git a/html/UG/FmSource/HDF_favicon_16x16.png b/html/UG/FmSource/HDF_favicon_16x16.png
new file mode 100644
index 0000000..6d2aeea
Binary files /dev/null and b/html/UG/FmSource/HDF_favicon_16x16.png differ
diff --git a/html/UG/FmSource/LibraryAndProgrammingModel.fm b/html/UG/FmSource/LibraryAndProgrammingModel.fm
new file mode 100644
index 0000000..bd0e21f
Binary files /dev/null and b/html/UG/FmSource/LibraryAndProgrammingModel.fm differ
diff --git a/html/UG/FmSource/PropertyLists.fm b/html/UG/FmSource/PropertyLists.fm
new file mode 100644
index 0000000..42e4a84
Binary files /dev/null and b/html/UG/FmSource/PropertyLists.fm differ
diff --git a/html/UG/FmSource/TheFile.fm b/html/UG/FmSource/TheFile.fm
new file mode 100644
index 0000000..909e982
Binary files /dev/null and b/html/UG/FmSource/TheFile.fm differ
diff --git a/html/UG/FmSource/ThgUgTemplate.fm b/html/UG/FmSource/ThgUgTemplate.fm
new file mode 100644
index 0000000..ef1cdce
Binary files /dev/null and b/html/UG/FmSource/ThgUgTemplate.fm differ
diff --git a/html/UG/FmSource/UpdateStatus.fm b/html/UG/FmSource/UpdateStatus.fm
new file mode 100644
index 0000000..63a208c
Binary files /dev/null and b/html/UG/FmSource/UpdateStatus.fm differ
diff --git a/html/UG/FmSource/back.png b/html/UG/FmSource/back.png
new file mode 100644
index 0000000..b4ecc01
Binary files /dev/null and b/html/UG/FmSource/back.png differ
diff --git a/html/UG/FmSource/forward.png b/html/UG/FmSource/forward.png
new file mode 100644
index 0000000..5bcfd48
Binary files /dev/null and b/html/UG/FmSource/forward.png differ
diff --git a/html/UG/FmSource/html_and_xml_tags.fm b/html/UG/FmSource/html_and_xml_tags.fm
new file mode 100644
index 0000000..3c5d787
Binary files /dev/null and b/html/UG/FmSource/html_and_xml_tags.fm differ
diff --git a/html/UG/Images/Dmodel_fig11_b.jpg b/html/UG/Images/Dmodel_fig11_b.jpg
new file mode 100644
index 0000000..149a3e0
Binary files /dev/null and b/html/UG/Images/Dmodel_fig11_b.jpg differ
diff --git a/html/UG/Images/Dmodel_fig4_b.JPG b/html/UG/Images/Dmodel_fig4_b.JPG
new file mode 100644
index 0000000..90337a2
Binary files /dev/null and b/html/UG/Images/Dmodel_fig4_b.JPG differ
diff --git a/html/UG/Images/Dmodel_fig8.JPG b/html/UG/Images/Dmodel_fig8.JPG
new file mode 100644
index 0000000..bf7397b
Binary files /dev/null and b/html/UG/Images/Dmodel_fig8.JPG differ
diff --git a/html/UG/Images/Dsets_NbitFloating1.JPG b/html/UG/Images/Dsets_NbitFloating1.JPG
new file mode 100644
index 0000000..410a285
Binary files /dev/null and b/html/UG/Images/Dsets_NbitFloating1.JPG differ
diff --git a/html/UG/Images/Dsets_NbitFloating2.JPG b/html/UG/Images/Dsets_NbitFloating2.JPG
new file mode 100644
index 0000000..795527e
Binary files /dev/null and b/html/UG/Images/Dsets_NbitFloating2.JPG differ
diff --git a/html/UG/Images/Dsets_NbitInteger1.JPG b/html/UG/Images/Dsets_NbitInteger1.JPG
new file mode 100644
index 0000000..392e603
Binary files /dev/null and b/html/UG/Images/Dsets_NbitInteger1.JPG differ
diff --git a/html/UG/Images/Dsets_NbitInteger2.JPG b/html/UG/Images/Dsets_NbitInteger2.JPG
new file mode 100644
index 0000000..f129768
Binary files /dev/null and b/html/UG/Images/Dsets_NbitInteger2.JPG differ
diff --git a/html/UG/Images/Dspace_fig1new.JPG b/html/UG/Images/Dspace_fig1new.JPG
new file mode 100644
index 0000000..92fc47a
Binary files /dev/null and b/html/UG/Images/Dspace_fig1new.JPG differ
diff --git a/html/UG/Images/Dspace_fig2a.JPG b/html/UG/Images/Dspace_fig2a.JPG
new file mode 100644
index 0000000..9e31f17
Binary files /dev/null and b/html/UG/Images/Dspace_fig2a.JPG differ
diff --git a/html/UG/Images/Dspace_fig2b.JPG b/html/UG/Images/Dspace_fig2b.JPG
new file mode 100644
index 0000000..6b8be73
Binary files /dev/null and b/html/UG/Images/Dspace_fig2b.JPG differ
diff --git a/html/UG/Images/Dspace_fig2c.JPG b/html/UG/Images/Dspace_fig2c.JPG
new file mode 100644
index 0000000..be317e9
Binary files /dev/null and b/html/UG/Images/Dspace_fig2c.JPG differ
diff --git a/html/UG/Images/Dspace_fig2d.JPG b/html/UG/Images/Dspace_fig2d.JPG
new file mode 100644
index 0000000..880bf5c
Binary files /dev/null and b/html/UG/Images/Dspace_fig2d.JPG differ
diff --git a/html/UG/Images/Dtypes_fig10.JPG b/html/UG/Images/Dtypes_fig10.JPG
new file mode 100644
index 0000000..1db74f3
Binary files /dev/null and b/html/UG/Images/Dtypes_fig10.JPG differ
diff --git a/html/UG/Images/Dtypes_fig11.JPG b/html/UG/Images/Dtypes_fig11.JPG
new file mode 100644
index 0000000..f2a7fb7
Binary files /dev/null and b/html/UG/Images/Dtypes_fig11.JPG differ
diff --git a/html/UG/Images/Dtypes_fig16a.JPG b/html/UG/Images/Dtypes_fig16a.JPG
new file mode 100644
index 0000000..1007e59
Binary files /dev/null and b/html/UG/Images/Dtypes_fig16a.JPG differ
diff --git a/html/UG/Images/Dtypes_fig16b.JPG b/html/UG/Images/Dtypes_fig16b.JPG
new file mode 100644
index 0000000..fb0250b
Binary files /dev/null and b/html/UG/Images/Dtypes_fig16b.JPG differ
diff --git a/html/UG/Images/Dtypes_fig16c.JPG b/html/UG/Images/Dtypes_fig16c.JPG
new file mode 100644
index 0000000..5ff5860
Binary files /dev/null and b/html/UG/Images/Dtypes_fig16c.JPG differ
diff --git a/html/UG/Images/Dtypes_fig16d.JPG b/html/UG/Images/Dtypes_fig16d.JPG
new file mode 100644
index 0000000..960501d
Binary files /dev/null and b/html/UG/Images/Dtypes_fig16d.JPG differ
diff --git a/html/UG/Images/Dtypes_fig17a.JPG b/html/UG/Images/Dtypes_fig17a.JPG
new file mode 100644
index 0000000..f9e0854
Binary files /dev/null and b/html/UG/Images/Dtypes_fig17a.JPG differ
diff --git a/html/UG/Images/Dtypes_fig17b.JPG b/html/UG/Images/Dtypes_fig17b.JPG
new file mode 100644
index 0000000..acffeea
Binary files /dev/null and b/html/UG/Images/Dtypes_fig17b.JPG differ
diff --git a/html/UG/Images/Dtypes_fig20a.JPG b/html/UG/Images/Dtypes_fig20a.JPG
new file mode 100644
index 0000000..caaaeb3
Binary files /dev/null and b/html/UG/Images/Dtypes_fig20a.JPG differ
diff --git a/html/UG/Images/Dtypes_fig20b.JPG b/html/UG/Images/Dtypes_fig20b.JPG
new file mode 100644
index 0000000..c77269b
Binary files /dev/null and b/html/UG/Images/Dtypes_fig20b.JPG differ
diff --git a/html/UG/Images/Dtypes_fig20c.JPG b/html/UG/Images/Dtypes_fig20c.JPG
new file mode 100644
index 0000000..ad84072
Binary files /dev/null and b/html/UG/Images/Dtypes_fig20c.JPG differ
diff --git a/html/UG/Images/Dtypes_fig20d.JPG b/html/UG/Images/Dtypes_fig20d.JPG
new file mode 100644
index 0000000..bd843d0
Binary files /dev/null and b/html/UG/Images/Dtypes_fig20d.JPG differ
diff --git a/html/UG/Images/Dtypes_fig5.JPG b/html/UG/Images/Dtypes_fig5.JPG
new file mode 100644
index 0000000..94135ed
Binary files /dev/null and b/html/UG/Images/Dtypes_fig5.JPG differ
diff --git a/html/UG/Images/Dtypes_fig57a.JPG b/html/UG/Images/Dtypes_fig57a.JPG
new file mode 100644
index 0000000..d36c6b3
Binary files /dev/null and b/html/UG/Images/Dtypes_fig57a.JPG differ
diff --git a/html/UG/Images/Dtypes_fig57b.JPG b/html/UG/Images/Dtypes_fig57b.JPG
new file mode 100644
index 0000000..5cac65e
Binary files /dev/null and b/html/UG/Images/Dtypes_fig57b.JPG differ
diff --git a/html/UG/Images/Dtypes_fig58.JPG b/html/UG/Images/Dtypes_fig58.JPG
new file mode 100644
index 0000000..4199403
Binary files /dev/null and b/html/UG/Images/Dtypes_fig58.JPG differ
diff --git a/html/UG/Images/Dtypes_fig6.JPG b/html/UG/Images/Dtypes_fig6.JPG
new file mode 100644
index 0000000..ae895e0
Binary files /dev/null and b/html/UG/Images/Dtypes_fig6.JPG differ
diff --git a/html/UG/Images/Dtypes_fig7.JPG b/html/UG/Images/Dtypes_fig7.JPG
new file mode 100644
index 0000000..78d60e2
Binary files /dev/null and b/html/UG/Images/Dtypes_fig7.JPG differ
diff --git a/html/UG/Images/Dtypes_fig8.JPG b/html/UG/Images/Dtypes_fig8.JPG
new file mode 100644
index 0000000..f44b368
Binary files /dev/null and b/html/UG/Images/Dtypes_fig8.JPG differ
diff --git a/html/UG/Images/Dtypes_fig9.JPG b/html/UG/Images/Dtypes_fig9.JPG
new file mode 100644
index 0000000..7a9181f
Binary files /dev/null and b/html/UG/Images/Dtypes_fig9.JPG differ
diff --git a/html/UG/Images/Groups_fig6.JPG b/html/UG/Images/Groups_fig6.JPG
new file mode 100644
index 0000000..5ad8ffa
Binary files /dev/null and b/html/UG/Images/Groups_fig6.JPG differ
diff --git a/html/UG/Images/Pmodel_fig2.JPG b/html/UG/Images/Pmodel_fig2.JPG
new file mode 100644
index 0000000..af077f8
Binary files /dev/null and b/html/UG/Images/Pmodel_fig2.JPG differ
diff --git a/html/UG/Images/Pmodel_fig3.JPG b/html/UG/Images/Pmodel_fig3.JPG
new file mode 100644
index 0000000..da8fba6
Binary files /dev/null and b/html/UG/Images/Pmodel_fig3.JPG differ
diff --git a/html/UG/Images/dtypes_fig51new.JPG b/html/UG/Images/dtypes_fig51new.JPG
new file mode 100644
index 0000000..99ce753
Binary files /dev/null and b/html/UG/Images/dtypes_fig51new.JPG differ
diff --git a/html/UG/Images/dtypes_fig57_arrowWithText.JPG b/html/UG/Images/dtypes_fig57_arrowWithText.JPG
new file mode 100644
index 0000000..a2eec7a
Binary files /dev/null and b/html/UG/Images/dtypes_fig57_arrowWithText.JPG differ
diff --git a/html/UG/Images/logo_bluegreen_txt.jpg b/html/UG/Images/logo_bluegreen_txt.jpg
new file mode 100644
index 0000000..862ace7
Binary files /dev/null and b/html/UG/Images/logo_bluegreen_txt.jpg differ
diff --git a/html/UG/03_DataModel.html b/html/UG/OldHtmlSource/03_DataModel.html
similarity index 100%
rename from html/UG/03_DataModel.html
rename to html/UG/OldHtmlSource/03_DataModel.html
diff --git a/html/UG/04_ProgModel.html b/html/UG/OldHtmlSource/04_ProgModel.html
similarity index 100%
rename from html/UG/04_ProgModel.html
rename to html/UG/OldHtmlSource/04_ProgModel.html
diff --git a/html/UG/08_TheFile.html b/html/UG/OldHtmlSource/08_TheFile.html
similarity index 100%
rename from html/UG/08_TheFile.html
rename to html/UG/OldHtmlSource/08_TheFile.html
diff --git a/html/UG/09_Groups.html b/html/UG/OldHtmlSource/09_Groups.html
similarity index 100%
rename from html/UG/09_Groups.html
rename to html/UG/OldHtmlSource/09_Groups.html
diff --git a/html/UG/10_Datasets.html b/html/UG/OldHtmlSource/10_Datasets.html
similarity index 100%
rename from html/UG/10_Datasets.html
rename to html/UG/OldHtmlSource/10_Datasets.html
diff --git a/html/UG/11_Datatypes.html b/html/UG/OldHtmlSource/11_Datatypes.html
similarity index 100%
rename from html/UG/11_Datatypes.html
rename to html/UG/OldHtmlSource/11_Datatypes.html
diff --git a/html/UG/12_Dataspaces.html b/html/UG/OldHtmlSource/12_Dataspaces.html
similarity index 100%
rename from html/UG/12_Dataspaces.html
rename to html/UG/OldHtmlSource/12_Dataspaces.html
diff --git a/html/UG/13_Attributes.html b/html/UG/OldHtmlSource/13_Attributes.html
similarity index 100%
rename from html/UG/13_Attributes.html
rename to html/UG/OldHtmlSource/13_Attributes.html
diff --git a/html/UG/13_ErrorHandling.html b/html/UG/OldHtmlSource/13_ErrorHandling.html
similarity index 100%
rename from html/UG/13_ErrorHandling.html
rename to html/UG/OldHtmlSource/13_ErrorHandling.html
diff --git a/html/UG/14_PropertyLists.html b/html/UG/OldHtmlSource/14_PropertyLists.html
similarity index 100%
rename from html/UG/14_PropertyLists.html
rename to html/UG/OldHtmlSource/14_PropertyLists.html
diff --git a/html/UG/17_Additional.html b/html/UG/OldHtmlSource/17_Additional.html
similarity index 100%
rename from html/UG/17_Additional.html
rename to html/UG/OldHtmlSource/17_Additional.html
diff --git a/html/UG/99_SelectedPassages.html b/html/UG/OldHtmlSource/99_SelectedPassages.html
similarity index 100%
rename from html/UG/99_SelectedPassages.html
rename to html/UG/OldHtmlSource/99_SelectedPassages.html
diff --git a/html/UG/H5_newUG.book b/html/UG/OldHtmlSource/H5_newUG.book
similarity index 100%
rename from html/UG/H5_newUG.book
rename to html/UG/OldHtmlSource/H5_newUG.book
diff --git a/html/UG/H5_newUG_Front.book b/html/UG/OldHtmlSource/H5_newUG_Front.book
similarity index 100%
rename from html/UG/H5_newUG_Front.book
rename to html/UG/OldHtmlSource/H5_newUG_Front.book
diff --git a/html/UG/H5_newUG_TOC.html b/html/UG/OldHtmlSource/H5_newUG_TOC.html
similarity index 100%
rename from html/UG/H5_newUG_TOC.html
rename to html/UG/OldHtmlSource/H5_newUG_TOC.html
diff --git a/html/UG/H5_newUG_Title.html b/html/UG/OldHtmlSource/H5_newUG_Title.html
similarity index 100%
rename from html/UG/H5_newUG_Title.html
rename to html/UG/OldHtmlSource/H5_newUG_Title.html
diff --git a/html/UG/ObjectsIdentifiers.html b/html/UG/OldHtmlSource/ObjectsIdentifiers.html
similarity index 100%
rename from html/UG/ObjectsIdentifiers.html
rename to html/UG/OldHtmlSource/ObjectsIdentifiers.html
diff --git a/html/UG/UG_nav11Datatypes.html b/html/UG/OldHtmlSource/OldHtmlSource/UG_nav11Datatypes.html
similarity index 100%
copy from html/UG/UG_nav11Datatypes.html
copy to html/UG/OldHtmlSource/OldHtmlSource/UG_nav11Datatypes.html
diff --git a/html/UG/Part1SplitterPg.html b/html/UG/OldHtmlSource/Part1SplitterPg.html
similarity index 100%
rename from html/UG/Part1SplitterPg.html
rename to html/UG/OldHtmlSource/Part1SplitterPg.html
diff --git a/html/UG/Part2SplitterPg.html b/html/UG/OldHtmlSource/Part2SplitterPg.html
similarity index 100%
rename from html/UG/Part2SplitterPg.html
rename to html/UG/OldHtmlSource/Part2SplitterPg.html
diff --git a/html/UG/Part3SplitterPg.html b/html/UG/OldHtmlSource/Part3SplitterPg.html
similarity index 100%
rename from html/UG/Part3SplitterPg.html
rename to html/UG/OldHtmlSource/Part3SplitterPg.html
diff --git a/html/UG/OldHtmlSource/UG_UpdateStatus.html b/html/UG/OldHtmlSource/UG_UpdateStatus.html
new file mode 100644
index 0000000..2929357
--- /dev/null
+++ b/html/UG/OldHtmlSource/UG_UpdateStatus.html
@@ -0,0 +1,46 @@
+<html>
+<head>
+<title>Update Status</title>
+</head>
+
+<body>
+
+<h1 align="center">HDF5 User’s Guide Update Status</h1>
+
+<br />
+<p>The <cite>HDF5 User’s Guide</cite> has been updated 
+for HDF5 Release 1.8.13. These updates have been made since the 1.8.12 
+version of this document was published in November 2013.</p>
+
+<p>The main updates are the following:</p>
+    <ul>
+        <li>The “Properties and Property Lists in HDF5” 
+        chapter was added. This chapter gives a general overview of 
+        how property lists are used by the HDF5 Library.</li>
+        <li>The 
+        <a href="../Advanced/FreeingMemory/FreeingMemoryAllocatedByTheHdf5Library.pdf">
+        <em>Freeing Memory Allocated by the HDF5 Library</em></a> 
+        topic was added to the “Additional Resources” chapter. 
+        This topic describes how inconsistent memory management can 
+        cause heap corruption or resource leaks and possible solutions.</li>
+        <li>The 
+        <a href="../Advanced/ModifiedRegionWrites/ModifiedRegionWrites.pdf">
+        <em>Modified Region Writes</em></a> topic was added to the 
+        “Additional Resources” chapter. This topic describes 
+        how to set write operations for in-memory files so that only 
+        modified regions are written to storage. This feature is 
+        available when the Core (Memory) VFD is used.</li>
+        
+    </ul>
+
+<p>We welcome feedback on the documentation. Please send your comments to 
+<a href="mailto:docs at hdfgroup.org"><code>docs at hdfgroup.org</code></a>.
+</p>
+<br />
+<div align="left"><font color="999999" size="-1"><i>
+    Last modified: 9 May 2014
+    </i></font></div>
+    
+
+</body>
+</html>
diff --git a/html/UG/UG_UseWith18.html b/html/UG/OldHtmlSource/UG_UseWith18.html
similarity index 100%
rename from html/UG/UG_UseWith18.html
rename to html/UG/OldHtmlSource/UG_UseWith18.html
diff --git a/html/UG/UG_feedback.html b/html/UG/OldHtmlSource/UG_feedback.html
similarity index 100%
rename from html/UG/UG_feedback.html
rename to html/UG/OldHtmlSource/UG_feedback.html
diff --git a/html/UG/UG_frame.html b/html/UG/OldHtmlSource/UG_frame.html
similarity index 100%
rename from html/UG/UG_frame.html
rename to html/UG/OldHtmlSource/UG_frame.html
diff --git a/html/UG/UG_frame03DataModel.html b/html/UG/OldHtmlSource/UG_frame03DataModel.html
similarity index 100%
rename from html/UG/UG_frame03DataModel.html
rename to html/UG/OldHtmlSource/UG_frame03DataModel.html
diff --git a/html/UG/UG_frame04ProgModel.html b/html/UG/OldHtmlSource/UG_frame04ProgModel.html
similarity index 100%
rename from html/UG/UG_frame04ProgModel.html
rename to html/UG/OldHtmlSource/UG_frame04ProgModel.html
diff --git a/html/UG/UG_frame08TheFile.html b/html/UG/OldHtmlSource/UG_frame08TheFile.html
similarity index 100%
rename from html/UG/UG_frame08TheFile.html
rename to html/UG/OldHtmlSource/UG_frame08TheFile.html
diff --git a/html/UG/UG_frame09Groups.html b/html/UG/OldHtmlSource/UG_frame09Groups.html
similarity index 100%
rename from html/UG/UG_frame09Groups.html
rename to html/UG/OldHtmlSource/UG_frame09Groups.html
diff --git a/html/UG/UG_frame10Datasets.html b/html/UG/OldHtmlSource/UG_frame10Datasets.html
similarity index 100%
rename from html/UG/UG_frame10Datasets.html
rename to html/UG/OldHtmlSource/UG_frame10Datasets.html
diff --git a/html/UG/UG_frame11Datatypes.html b/html/UG/OldHtmlSource/UG_frame11Datatypes.html
similarity index 100%
rename from html/UG/UG_frame11Datatypes.html
rename to html/UG/OldHtmlSource/UG_frame11Datatypes.html
diff --git a/html/UG/UG_frame12Dataspaces.html b/html/UG/OldHtmlSource/UG_frame12Dataspaces.html
similarity index 100%
rename from html/UG/UG_frame12Dataspaces.html
rename to html/UG/OldHtmlSource/UG_frame12Dataspaces.html
diff --git a/html/UG/UG_frame13Attributes.html b/html/UG/OldHtmlSource/UG_frame13Attributes.html
similarity index 100%
rename from html/UG/UG_frame13Attributes.html
rename to html/UG/OldHtmlSource/UG_frame13Attributes.html
diff --git a/html/UG/UG_frame13ErrorHandling.html b/html/UG/OldHtmlSource/UG_frame13ErrorHandling.html
similarity index 100%
rename from html/UG/UG_frame13ErrorHandling.html
rename to html/UG/OldHtmlSource/UG_frame13ErrorHandling.html
diff --git a/html/UG/UG_frame14PropertyLists.html b/html/UG/OldHtmlSource/UG_frame14PropertyLists.html
similarity index 100%
rename from html/UG/UG_frame14PropertyLists.html
rename to html/UG/OldHtmlSource/UG_frame14PropertyLists.html
diff --git a/html/UG/UG_frame17SpecialTopics.html b/html/UG/OldHtmlSource/UG_frame17SpecialTopics.html
similarity index 100%
rename from html/UG/UG_frame17SpecialTopics.html
rename to html/UG/OldHtmlSource/UG_frame17SpecialTopics.html
diff --git a/html/UG/UG_frameObjectsIdentifiers.html b/html/UG/OldHtmlSource/UG_frameObjectsIdentifiers.html
similarity index 100%
rename from html/UG/UG_frameObjectsIdentifiers.html
rename to html/UG/OldHtmlSource/UG_frameObjectsIdentifiers.html
diff --git a/html/UG/UG_front.html b/html/UG/OldHtmlSource/UG_front.html
similarity index 97%
rename from html/UG/UG_front.html
rename to html/UG/OldHtmlSource/UG_front.html
index 3aee605..626b91f 100644
--- a/html/UG/UG_front.html
+++ b/html/UG/OldHtmlSource/UG_front.html
@@ -17,9 +17,9 @@
 <h1>HDF5 User's Guide</h1>
 <br>
 <br>
-<h3>HDF5 Release 1.8.15
+<h3>HDF5 Release 1.8.13
     <br>
-    <br>May 2015</h3>
+    <br>May 2014</h3>
 
  
 <hr>
diff --git a/html/UG/UG_nav00.html b/html/UG/OldHtmlSource/UG_nav00.html
similarity index 99%
rename from html/UG/UG_nav00.html
rename to html/UG/OldHtmlSource/UG_nav00.html
index deb66d5..87a9921 100644
--- a/html/UG/UG_nav00.html
+++ b/html/UG/OldHtmlSource/UG_nav00.html
@@ -256,7 +256,7 @@
 </font>
 <font size="-2" face="tahoma,arial,sans-serif"><SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 27 April 2015");
+document.writeln("Last modified: 14 May 2014");
 -->
 </SCRIPT>
 </font>
diff --git a/html/UG/UG_nav03DataModel.html b/html/UG/OldHtmlSource/UG_nav03DataModel.html
similarity index 100%
rename from html/UG/UG_nav03DataModel.html
rename to html/UG/OldHtmlSource/UG_nav03DataModel.html
diff --git a/html/UG/UG_nav04ProgModel.html b/html/UG/OldHtmlSource/UG_nav04ProgModel.html
similarity index 100%
rename from html/UG/UG_nav04ProgModel.html
rename to html/UG/OldHtmlSource/UG_nav04ProgModel.html
diff --git a/html/UG/UG_nav08TheFile.html b/html/UG/OldHtmlSource/UG_nav08TheFile.html
similarity index 100%
rename from html/UG/UG_nav08TheFile.html
rename to html/UG/OldHtmlSource/UG_nav08TheFile.html
diff --git a/html/UG/UG_nav09Groups.html b/html/UG/OldHtmlSource/UG_nav09Groups.html
similarity index 100%
rename from html/UG/UG_nav09Groups.html
rename to html/UG/OldHtmlSource/UG_nav09Groups.html
diff --git a/html/UG/UG_nav10Datasets.html b/html/UG/OldHtmlSource/UG_nav10Datasets.html
similarity index 100%
rename from html/UG/UG_nav10Datasets.html
rename to html/UG/OldHtmlSource/UG_nav10Datasets.html
diff --git a/html/UG/UG_nav11Datatypes.html b/html/UG/OldHtmlSource/UG_nav11Datatypes.html
similarity index 100%
rename from html/UG/UG_nav11Datatypes.html
rename to html/UG/OldHtmlSource/UG_nav11Datatypes.html
diff --git a/html/UG/UG_nav12Dataspaces.html b/html/UG/OldHtmlSource/UG_nav12Dataspaces.html
similarity index 100%
rename from html/UG/UG_nav12Dataspaces.html
rename to html/UG/OldHtmlSource/UG_nav12Dataspaces.html
diff --git a/html/UG/UG_nav13Attributes.html b/html/UG/OldHtmlSource/UG_nav13Attributes.html
similarity index 100%
rename from html/UG/UG_nav13Attributes.html
rename to html/UG/OldHtmlSource/UG_nav13Attributes.html
diff --git a/html/UG/UG_nav13ErrorHandling.html b/html/UG/OldHtmlSource/UG_nav13ErrorHandling.html
similarity index 100%
rename from html/UG/UG_nav13ErrorHandling.html
rename to html/UG/OldHtmlSource/UG_nav13ErrorHandling.html
diff --git a/html/UG/UG_nav14PropertyLists.html b/html/UG/OldHtmlSource/UG_nav14PropertyLists.html
similarity index 100%
rename from html/UG/UG_nav14PropertyLists.html
rename to html/UG/OldHtmlSource/UG_nav14PropertyLists.html
diff --git a/html/UG/UG_nav17SpecialTopics.html b/html/UG/OldHtmlSource/UG_nav17SpecialTopics.html
similarity index 100%
rename from html/UG/UG_nav17SpecialTopics.html
rename to html/UG/OldHtmlSource/UG_nav17SpecialTopics.html
diff --git a/html/UG/UG_navObjectsIdentifiers.html b/html/UG/OldHtmlSource/UG_navObjectsIdentifiers.html
similarity index 99%
rename from html/UG/UG_navObjectsIdentifiers.html
rename to html/UG/OldHtmlSource/UG_navObjectsIdentifiers.html
index daf5a41..785320b 100644
--- a/html/UG/UG_navObjectsIdentifiers.html
+++ b/html/UG/OldHtmlSource/UG_navObjectsIdentifiers.html
@@ -159,7 +159,7 @@
 <br />
 <b>III. <a href="17_Additional.html" TARGET="CONTENT">Additional Resources</a>
       </b><br />
-<b>IV. <a href="http://www.hdfgroup.org/ftp/HDF5/examples/examples-by-api/">
+<b>IV. <a href="http://www.hdfgroup.org/HDF5/examples/">
       Code Examples</a></b><br />
 
     <font color="#555555">
diff --git a/html/UG/index.html b/html/UG/OldHtmlSource/index.html
similarity index 100%
rename from html/UG/index.html
rename to html/UG/OldHtmlSource/index.html
diff --git a/html/UG/process.txt b/html/UG/OldHtmlSource/process.txt
similarity index 100%
rename from html/UG/process.txt
rename to html/UG/OldHtmlSource/process.txt
diff --git a/html/UG/UG_UpdateStatus.html b/html/UG/UG_UpdateStatus.html
deleted file mode 100644
index fe65607..0000000
--- a/html/UG/UG_UpdateStatus.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html>
-<head>
-<title>Update Status</title>
-</head>
-
-<body>
-
-<h1 align="center">HDF5 User’s Guide Update Status</h1>
-
-<br />
-<p>No changes have been made to the <cite>HDF5 User’s Guide</cite> 
-for HDF5 Release 1.8.15. </p>
-
-
-<p>We welcome feedback on the documentation. Please send your comments to 
-<a href="mailto:docs at hdfgroup.org"><code>docs at hdfgroup.org</code></a>.
-</p>
-<br />
-<div align="left"><font color="999999" size="-1"><i>
-    Last modified: 27 April 2015
-    </i></font></div>
-    
-
-</body>
-</html>
diff --git a/html/_topic/loc_id+name_obj.htm b/html/_topic/loc_id+name_obj.htm
index 72cf492..5a3afb2 100644
--- a/html/_topic/loc_id+name_obj.htm
+++ b/html/_topic/loc_id+name_obj.htm
@@ -94,11 +94,11 @@ the limitations are mentioned in the function’s reference manual entry.
 
 <p>
 For a related discussion of the structure of HDF5 files and HDF5 path names, 
-see “<a href="../UG/03_DataModel.html#Structure">The 
+see “<a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDataModelAndFileStructure%2FThe_HDF5_Data_Model_and_File_Structure.htm%23TOC_1_4_The_Structure_of_anbc-14&rhtocid=1.3">The 
 Structure of an HDF5 File</a>”
 (particularly the subsection “HDF5 Path Names and Navigation”)
-in the “<a href="../UG/UG_frame03DataModel.html">HDF5 
-Data Model and File Structure</a>&rdquo chapter
+in the “<a href="../UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDataModelAndFileStructure%2FThe_HDF5_Data_Model_and_File_Structure.htm">HDF5 
+Data Model and File Structure</a>” chapter
 of the <cite>HDF5 User’s Guide</cite>.
  
 
diff --git a/html/ddl.html b/html/ddl.html
index dcc6366..212e010 100644
--- a/html/ddl.html
+++ b/html/ddl.html
@@ -38,7 +38,7 @@
     -->
 </td>
 <td valign=top align=right>
-    <a href="UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 </td></tr>
 </table>
@@ -627,7 +627,7 @@ GROUP "/" {
     -->
 </td>
 <td valign=top align=right>
-    <a href="UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 </td></tr>
 </table>
diff --git a/html/doc-info.html b/html/doc-info.html
index 6a9da65..dff0d49 100644
--- a/html/doc-info.html
+++ b/html/doc-info.html
@@ -19,14 +19,14 @@
 
 
 <?php
-$page_title = "HDF5 Documentation: Releases 1.6.10 and 1.8.15"; 
+$page_title = "HDF5 Documentation: Releases 1.6.10 and 1.8.16"; 
 include ("../../links.php"); 
 include ("../../includes/header.html"); 
 ?>
 <fieldset><h1>HDF5 Documentation</H1></fieldset>
 
 <p align=left>
-    <A HREF="./index.html">Release 1.8.15</A>
+    <A HREF="./index.html">Release 1.8.16</A>
     <code>  </code>
     <A HREF="../doc1.6/index.html">Release 1.6.10</A>
 
@@ -35,24 +35,86 @@ include ("../../includes/header.html");
 
 <p>
 The HDF Group currently supports only the HDF5 Release 1.8.x series.
-This page provides a link to Release 1.6.x series documentation 
+<p>
+This page also provides a link to Release 1.6.x series documentation 
 for users who have not yet been able to upgrade.
+This series is no longer supported.
+<p>
+In new development, The HDF Group is working toward HDF5 Release 1.10.0.  
+This release is due in 2016 and will soon be entering the alpha and 
+beta test phases.
 <!--
 The HDF Group currently supports two concurrent releases of HDF5.
 Since there are substantial differences in these releases, this page 
 enables users to locate the desired documentation set.
 -->
 </p>
-<hr>
 
-<h2>HDF5 Release 1.8.15</h2>
 
+<br /> 
+<br />
+
+
+<h2><hr style="border:solid 2px black;">
+Upcoming Development Release
+<hr></h2>
+
+<h2>HDF5 Release 1.10.0_alpha/beta</h2>
+
+<p>Release 1.10.0 is due in 2016 and the alpha and beta test cycle will 
+   soon commence.
+   <p>
+   New features will be introduced in stages throughout the 
+   test cycle and will be documented at the link below as they appear.
+   Developers are encouraged to test these features in new projects 
+   and with existing applications.  
+   Feedback to The HDF Group regarding failures, bugs, or strengths 
+   will be very much appreciated.
+   Send email to help-at-hdfgroup-dot-org. 
+   </p>
+   <p>
+   The alpha and beta level software should not be used in product
+   development as the behavior and/or interfaces may change.
+   </p>
+
+<h4>New Feature Documentation</h4>
+<p>Documentation for new features in HDF5 Release 1.10.0 will be posted 
+   here as each feature is released into the alpha and beta testing 
+   cycle:</p>
+<p>
+    <ul>
+      <ul>
+        <li class="li2"><A HREF="/HDF5/docNewFeatures/index.html">Documentation 
+            for new HDF5 features</A></li>
+      </ul>
+    </ul>
+</p>
+
+Existing features will be the same as in HDF5 Release 1.8.16, 
+which is documented here: 
+<p>
+    <ul>
+      <ul>
+        <li class="li2"><A HREF="./index.html">http://hdfgroup.org/HDF5/doc/</A></li>
+      </ul>
+    </ul>
+</p>
+
+<br /> 
+<br />
+
+
+<h2><hr style="border:solid 2px black;">
+Current Stable Releases
+<hr></h2>
 
-<p>Release 1.8.15 is the current release.  
+<h2>HDF5 Release 1.8.16</h2>
+
+<p>Release 1.8.16 is the current release.  
    New projects are strongly encouraged to use this release as it contains 
    many new features, file optimizations, and performance enhancements.</p>
 
-<p><h4>Release 1.8.15 Documentation (latest release):</h4></p>
+<p><h4>Release 1.8.16 Documentation (latest release):</h4></p>
 <p>
     <ul>
       <ul>
@@ -61,10 +123,11 @@ enables users to locate the desired documentation set.
     </ul>
 </p>
 
+
 <hr>
 <h2>HDF5 Release 1.6.10</h2>
 
-<p>Release 1.6.10 was the last release in the HDF5 Release 1.6.x series
+<p>Release 1.6.10 was the last release in the HDF5 Release 1.6.x series.
 This series is no longer supported.</p>
 
 <p><h4>Release 1.6.10 Documentation:</h4></p>
diff --git a/html/ed_libs/Footer-THGonly.htm b/html/ed_libs/Footer-THGonly.htm
index 72cd7aa..43d1fad 100644
--- a/html/ed_libs/Footer-THGonly.htm
+++ b/html/ed_libs/Footer-THGonly.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="./Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.15, May 2015.
+          Describes HDF5 Release 1.8.16, November 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer-THGonly2.htm b/html/ed_libs/Footer-THGonly2.htm
index 4c8493f..36f6285 100644
--- a/html/ed_libs/Footer-THGonly2.htm
+++ b/html/ed_libs/Footer-THGonly2.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.15, May 2015.
+          Describes HDF5 Release 1.8.16, November 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer-THGonly3.htm b/html/ed_libs/Footer-THGonly3.htm
index 8f816c4..63aed02 100644
--- a/html/ed_libs/Footer-THGonly3.htm
+++ b/html/ed_libs/Footer-THGonly3.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="../../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.15, May 2015.
+          Describes HDF5 Release 1.8.16, November 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer.htm b/html/ed_libs/Footer.htm
index 54a1ecb..1bacaf7 100644
--- a/html/ed_libs/Footer.htm
+++ b/html/ed_libs/Footer.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="./Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.15, May 2015.
+          Describes HDF5 Release 1.8.16, November 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer2.htm b/html/ed_libs/Footer2.htm
index dca8c0d..5cb8626 100644
--- a/html/ed_libs/Footer2.htm
+++ b/html/ed_libs/Footer2.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.15, May 2015.
+          Describes HDF5 Release 1.8.16, November 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer3.htm b/html/ed_libs/Footer3.htm
index e0d5017..21ec7d5 100644
--- a/html/ed_libs/Footer3.htm
+++ b/html/ed_libs/Footer3.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="../../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.15, May 2015.
+          Describes HDF5 Release 1.8.16, November 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/NavBar_RM.lbi b/html/ed_libs/NavBar_RM.lbi
index 80d8d20..db207dc 100644
--- a/html/ed_libs/NavBar_RM.lbi
+++ b/html/ed_libs/NavBar_RM.lbi
@@ -27,11 +27,12 @@ In the
 <a href="../RM/RM_H5E.html">H5E</a>  
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
-<a href="../RM/RM_H5I.html">H5I</a> 
+<a href="../RM/RM_H5I.html">H5I</a>  
+<a href="../RM/RM_H5L.html">H5L</a> 
 <br>
-<a href="../RM/RM_H5L.html">H5L</a>  
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
diff --git a/html/ed_libs/NavBar_RMHL.lbi b/html/ed_libs/NavBar_RMHL.lbi
index 6af5918..e7722a0 100755
--- a/html/ed_libs/NavBar_RMHL.lbi
+++ b/html/ed_libs/NavBar_RMHL.lbi
@@ -30,10 +30,11 @@ In the
 <a href="../RM/RM_H5F.html">H5F</a>  
 <a href="../RM/RM_H5G.html">H5G</a>  
 <a href="../RM/RM_H5I.html">H5I</a>  
-<br>
 <a href="../RM/RM_H5L.html">H5L</a>  
+<br>
 <a href="../RM/RM_H5O.html">H5O</a>  
 <a href="../RM/RM_H5P.html">H5P</a>  
+<a href="../RM/RM_H5PL.html">H5PL</a>  
 <a href="../RM/RM_H5R.html">H5R</a>  
 <a href="../RM/RM_H5S.html">H5S</a>  
 <a href="../RM/RM_H5T.html">H5T</a>  
diff --git a/html/fortran/FortranFlags.html b/html/fortran/FortranFlags.html
index 484be97..ad65bac 100644
--- a/html/fortran/FortranFlags.html
+++ b/html/fortran/FortranFlags.html
@@ -38,7 +38,7 @@ HDF5 Fortran Datatypes, Flags, Utility Functions
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 </td></tr>
 </table>
@@ -106,7 +106,7 @@ are listed in <a href="../RM/PredefDTypes.html">HDF5 Predefined Datatypes</a>.
 
 HDF5 Fortran flags have the same meanings as the C flags defined in the
 <a href="../RM/RM_H5Front.html"><cite>HDF5 Reference Manual</cite></a> and the
-<a href="../UG/UG_frame.html"><cite>HDF5 User’s Guide</cite></a>.
+<a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html"><cite>HDF5 User’s Guide</cite></a>.
 
 
 <h4>File access flags</h4>
@@ -469,7 +469,7 @@ the development of HDF5 Fortran applications.
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 </td></tr>
 </table>
diff --git a/html/fortran/index.html b/html/fortran/index.html
index 7b96a36..0d3b58f 100644
--- a/html/fortran/index.html
+++ b/html/fortran/index.html
@@ -37,7 +37,7 @@ HDF5 Fortran Library
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 </td></tr>
 </table>
@@ -267,7 +267,7 @@ display transposed data, if data is written from a Fortran program.
     -->
 </td>
 <td valign=top align=right>
-    <a href="../UG/index.html">HDF5 User's Guide</a> <br>
+    <a href="../UG/HDF5_Users_Guide-Responsive HTML5/index.html">HDF5 User’s Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
 </td></tr>
 </table>
diff --git a/html/index.html b/html/index.html
index 41382bc..4afc6c5 100644
--- a/html/index.html
+++ b/html/index.html
@@ -256,7 +256,7 @@
 <td bgcolor="#FFFFFF" valign="top" align="center" colspan="3">
     <br />
     <font size="5" color="#004488">HDF5 Library</font>
-    <br /><font size="4" color="#004488">Release 1.8.15, May 2015
+    <br /><font size="4" color="#004488">Release 1.8.16, November 2015
     </font>
 </td>
 </tr>
@@ -265,13 +265,33 @@
         <td align="left" valign="top" width="47%">
         <table width="100%">
           <tr><td valign="top" align="left">
-            <a href="UG/index.html">HDF5 User’s Guide</a>
-            <font size="-1">
+          <!--
+            <a href="UG/index.html">HDF5 User’s Guide 
+            (HTML, 1.8.15)</a>
+            <br />
+            <a href="http://www.hdfgroup.org/HDF5/doc/PSandPDF/HDF5_UsersGuide.PDF">
+            HDF5 User’s Guide (PDF, 1.8.8)</a>
+            <br />
+            <font size="-1">Detailed guide covering critical HDF5 
+            features</font>
+            <br /><br />
+            *** the following have been generated with FrameMaker ***
+            <br />
+            -->
+            <a href="UG/HDF5_Users_Guide-Responsive HTML5/index.html">
+            HDF5 User’s Guide<font size="-1"></a>
              
-            (<a href="http://www.hdfgroup.org/HDF5/doc/PSandPDF/HDF5_UsersGuide.PDF">PDF for Release 1.8.8</a>)
+            <a href="UG/HDF5_Users_Guide.pdf">(PDF)</a></font>
+            <br />
+            <font size="-1">Detailed guide covering critical HDF5 
+            features</font>
             <br />
-            Detailed guide covering critical HDF5 features
+            <!--
+            <a href="UG/HDF5_Users_Guide-ePub.epub">
+            HDF5 User’s Guide (FM, eBook, 1.8.15)</a>
+            <br /><br />
             </font>
+            -->
           </td></tr>
           <tr><td valign="top" align="left">
             <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a>
@@ -290,10 +310,8 @@
           </td></tr>
           <tr><td valign="top" align="left">
             <a href="http://www.hdfgroup.org/HDF5-FAQ.html">FAQs</a>
-<!--
-            <br /><font size="-1">Answers to frequently asked questions 
-            about HDF5</font>
--->
+            <br />
+            <font size="-1">Frequently asked questions</font>
           </td></tr>
           <tr><td valign="top" align="left">
             <hr align="left" width="50%">
@@ -401,7 +419,7 @@
 -->
         <br />
         <!-- hhmts start -->
-        Last modified: 13 May 2015
+        Last modified: 13 November 2015
         <!-- hhmts end -->
 
         <p>
diff --git a/release_docs/HISTORY-1_8.txt b/release_docs/HISTORY-1_8.txt
index 3d10317..4737fce 100644
--- a/release_docs/HISTORY-1_8.txt
+++ b/release_docs/HISTORY-1_8.txt
@@ -3,6 +3,7 @@ HDF5 History
 
 This file contains development history of HDF5 1.8 branch
 
+17.      Release Information for hdf5-1.8.15
 16.      Release Information for hdf5-1.8.14
 15.      Release Information for hdf5-1.8.13
 14.      Release Information for hdf5-1.8.12
@@ -23,6 +24,984 @@ This file contains development history of HDF5 1.8 branch
 [Search on the string '%%%%' for section breaks of each release.]
 
 
+%%%%1.8.15%%%%   
+
+
+HDF5 version 1.8.15 released on 2015-05-04
+================================================================================
+
+INTRODUCTION
+============
+
+This document describes the differences between HDF5-1.8.14 and 
+HDF5-1.8.15, and contains information on the platforms tested and 
+known problems in HDF5-1.8.15. 
+
+Links to the HDF5 source code, documentation, and additional materials
+can be found on the HDF5 web page at:
+
+     http://www.hdfgroup.org/products/hdf5/
+
+The HDF5 release can be obtained from:
+
+     http://www.hdfgroup.org/HDF5/release/obtain5.html
+
+User documentation for HDF5 can be accessed directly at this location: 
+
+     http://www.hdfgroup.org/HDF5/doc/
+
+All new and modified APIs are listed in detail in the "HDF5 Software Changes 
+from Release to Release" document at this location:
+
+     http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html
+
+If you have any questions or comments, please send them to the HDF Help Desk:
+
+     help at hdfgroup.org
+
+
+CONTENTS
+========
+
+- New Features
+- Support for New Platforms, Languages, and Compilers
+- Bug Fixes since HDF5-1.8.14
+- Supported Platforms
+- Supported Configuration Features Summary
+- More Tested Platforms
+- Known Problems
+
+
+New Features
+============
+
+    Configuration
+    -------------
+    - CMake
+    
+      Improvements made to the CMake build system.
+        
+      The default options were changed to align with the Autotools configure
+      defaults. CMake configure files now support components when packaged
+      with CPack. Windows CPack supports WiX packaging, and will look for
+      WiX and NSIS in the standard locations. 
+      
+      The CMake minimum has been changed to 3.1.
+      
+      (ADB - 2015/04/01 HDFFV-8074, 8968, 9006)
+      
+    - cmakehdf5 for Cmake building.
+      Added configure options to support the building of Fortran or CXX API,
+      to enable/disable testings. Use "cmakehdf5 --help" for details.
+      (AKC - 2014/12/09 HDFFV-8932)
+
+    - Building Shared and Parallel Made Explicit
+
+      When --enable-parallel is specified, configure used to disable
+      shared by default.
+
+      Removed the restriction for building shared when parallel is
+      enabled. --disable-shared has to be used explicitly if user
+      wishes to disable shared libraries.
+
+      (MSC - 2015/02/19 HDFFV-9069)
+
+    - Inferring Parallel Compilers
+
+      configure was trying to infer if a compiler is a parallel
+      compiler with MPI support and enable parallel even if the user
+      did not explicitly enable parallel. This should not happen.
+
+      Disabled inferring parallel compilers to enable parallel HDF5
+      build. --enable-parallel has to be used explicitly to build
+      parallel HDF5 regardless of the compiler type being used.
+
+      (MSC - 2015/02/19 HDFFV-9068)
+
+    - Large File Support Configuration Option
+      
+      Removed the option to enable or disable large file support. It will
+      always be enabled.
+      
+      (MSC - 2015/02/19 HDFFV-9097)
+
+    - Removed Configuration Feature
+
+      When configure detected that the CodeWarrior compiler was being used it
+      would define a symbol that caused a test in test/tfile.c to be skipped
+      due to a broken CodeWarrior open() command.
+
+      Since this only masks the problem instead of fixing it and we don't
+      support CodeWarrior anyway, this functionality was removed.
+
+      (DER - 2015/02/21, HDFFV-9080)
+
+    - VMS Build/Test Files Have Been Removed
+
+      HDF5 no longer supports VMS, and the files were getting out of date.
+      Since we have no access to a VMS machine, there is no way for us to
+      maintain them.
+
+      A Subversion tag was created at:
+
+        https://svn.hdfgroup.uiuc.edu/tags/vms_last_support_1_8
+
+      immediately before removing the files.
+
+      (DER - 2015-02-26, HDFFV-9147)
+
+    - Removal of --with-default-vfd configure Option
+
+      In theory, this option was intended to allow setting a default
+      VFD that would be used by the library. In practice, the feature
+      only accepted the POSIX (SEC2) VFD (already the default) and
+      the stdio VFD (a demo VFD not intended for production use). The
+      inability to pass key VFD parameters at configure time limits the
+      full implementation of this feature, so it was retired.
+
+      (DER - 2015-02-26, HDFFV-9081)
+
+    - Direct VFD configure Behavior
+
+      The configure options for Linux now allow the Direct VFD to build
+      without passing additional compiler options/defines like _GNU_SOURCE.
+      Passing --enable-direct-vfd is now all that is needed to enable
+      the feature.
+
+      The Direct VFD is now disabled by default since it is intended for
+      specialized audiences. It was previously enabled by default, but the
+      configure script did not set correct POSIX levels, etc. making this
+      a moot point.
+
+      Note that the Direct VFD can only be configured on Linux when
+      the O_DIRECT flag to open()/create() and posix_memalign() function
+      are available. This is unchanged from previous behavior.
+
+      (DER - 2015-02-26, HDFFV-9057, 7567, 9088, 7566)
+
+    - _POSIX_C_SOURCE, _GNU_SOURCE, and _BSD_SOURCE No Longer Exported 
+      to h5cc and Other Compiler Wrappers
+
+      The _POSIX_C_SOURCE, _GNU_SOURCE, and _BSD_SOURCE definitions are 
+      not required for using API functions and may conflict with user 
+      code requirements.
+
+      (DER - 2015-03-08, HDFFV-9152)
+
+    - Removed the --enable-filters Option from configure
+
+      This option allowed the user to disable selected internal filters,
+      presumably to make the library smaller. It has been removed since
+      it saved little space (the internal filters are small with respect
+      to the overall library size) and was not generally extendible to
+      the library at large due to the large number of #ifdefs that would
+      be required.
+
+      Note that this features applied to internal filters such as shuffle
+      and n-bit and not external filters like gzip or Szip. Those are still
+      enabled or disabled via their own configure options.
+
+      (DER - 2015-03-08, HDFFV-9086)
+
+    - Removed Obsolete Time Functionality from configure and the C Library
+
+      The library contained some residual functionality from obsolete
+      time zone handling code. This has been removed, and the configure
+      checks for the time functions have been cleaned up.
+
+      * Lumped all the time functionality together in configure.ac.
+        This was previously more spread out due to Solaris issues
+        with the ordering of certain checks.
+
+      * Removed processing that handles __tm_gmtoff members of struct
+        tm. (libc-4)
+
+      * Removed BSDgettimeofday(). (IRIX 5.3)
+
+      * Removed timezone struct handling in gettimeofday() (considered
+        harmful).
+
+      Note that the HDF5 Library stores timestamps in a platform-independent
+      manner, so old files can still be read. This only affects converting
+      system time to HDF5 timestamps.
+
+      The library currently uses the tm_gmtoff member of the tm struct
+      (preferred, if available) or the timezone global variable to
+      construct HDF5 timestamps.
+
+      (DER - 2015-03-09, HDFFV-9083 and 9085)
+
+    - Added -D_DEFAULT_SOURCE to CPPFLAGS on Linux Systems
+
+      This is the replacement for -D_BSD_SOURCE in versions of glibc since 2.19.
+      Since both are defined, it should work for all versions of glibc. Defining
+      both suppresses the warning about defining _BSD_SOURCE.
+
+      (NAF - 2015-04-02, HDFFV-9079)
+
+    Library
+    -------
+    - Added Memory Allocation Functions that Use the Library's Allocator
+
+      HDF5 filters may need to allocate or resize the buffer that is passed
+      to them from the library. If the filter has been compiled separately
+      from the library, it and the library may use different memory
+      allocation libraries for the (re)allocation and free calls. This can
+      cause heap corruption and crashes. This is particularly a problem on
+      Windows since each C run-time library is implemented as a separate
+      shared library, but can also show up on POSIX systems when debug or
+      high-performance allocation libraries are in use.
+
+      Two new functions (H5allocate_memory() and H5resize_memory()) were
+      added to the HDF5 C library. These functions have the same semantics as
+      malloc/calloc and realloc, respectively. Their primary purpose is to
+      allow filter authors to allocate or resize memory using the same
+      memory allocation library as the HDF5 library. Filter authors are
+      highly encouraged to use these new functions in place of malloc,
+      calloc, and realloc. They should also use the H5free_memory() call when
+      freeing memory.
+
+      Note that the filters provided with the library (zlib, szip, etc.) do
+      not experience the problems that these new functions are intended to
+      fix. This work only applies to third-party filters that are compiled
+      separately from the library.
+
+      (DER - 2015-04-01, HDFFV-9100)
+ 
+    - H5Pset_istore_k and H5Pset_sym_k
+
+      These two functions didn't check the value of the input parameter "ik". 
+      When 2*ik exceeded 2 bytes of storage, data was lost in the file; 
+      for example, some chunks would be overwritten.  
+
+      Added validation of "ik" to not exceed the max v1 btree entries (2 bytes)
+      to these two routines.
+
+      (VC - 2015-03-24, HDFFV-9173)
+
+    - Added Functions to Control the Value of H5PL_no_plugin_g without 
+      Using an Environment Variable
+      
+      Sometimes it is necessary for an application to disable the use of 
+      dynamically loaded plugin libraries without requiring the library to 
+      be built with plugin support disabled or to set an environment 
+      variable to disable plugin support globally.
+      
+      Two new functions (H5PLset_loading_state() and H5PLget_loading_state())
+      were added to the HDF5 C Library. These functions require a parameter 
+      that indicates which type of dynamically loaded plugin is enabled or 
+      disabled.
+      
+      (ADB - 2015-03-17, HDFFV-8520)
+      
+    Parallel Library
+    ----------------
+    - MPI_Finalize and HDF5 Library Shutdown
+
+      Calling HDF5 routines after MPI_Finalize has been closed should
+      not be done, since those routines might call MPI functions that
+      would not be possible to do after finalizing the MPI library.
+
+      Attached an attribute destroy callback to MPI_COMM_SELF that
+      shuts down the HDF5 library when MPI_COMM_SELF is destroyed,
+      in other words, on MPI_Finalize. This should fix several issues 
+      that users see when they forget to close HDF5 objects before 
+      calling MPI_Finalize().  
+
+      (MSC - 2015/02/25, HDFFV-883)
+ 
+    Tools
+    -----
+    - None
+
+    High-Level APIs
+    ---------------
+    - None
+
+    Fortran API
+    -----------
+    - Added Global Variables 
+    
+      These new global variables are equivalent to the C definitions 
+      without the '_F':
+      
+      H5G_UDLINK_F  
+      H5G_SAME_LOC_F
+      H5O_TYPE_UNKNOWN_F
+      H5O_TYPE_GROUP_F
+      H5O_TYPE_DATASET_F
+      H5O_NAMED_DATATYPE_F
+      H5O_TYPE_NTYPES_F
+      
+      (MSB - 2015/02/03, HDFFV-9040)
+
+
+    C++ API
+    -------
+    - New Wrappers for C Functions H5P[s/g]et_libver_bounds
+
+      Wrappers were added to class H5::FileAccPropList for the 
+      C Functions H5Pget_libver_bounds and H5Pset_libver_bounds.
+
+      (BMR, 2015/04/06, Part of HDFFV-9167)
+
+    - New Wrappers to Get the Object Header's Version
+
+      The following wrappers are added to class H5::CommonFG
+      Returns the object header version of an object in a file or group,
+      given the object's name.
+      
+      unsigned childObjVersion(const char* objname) const;
+      unsigned childObjVersion(const H5std_string& objname) const;
+
+      (BMR, 2015/04/06)
+
+    - New DataType Constructor
+
+      Added a DataType constructor that takes a PredType object, and this
+      constructor will invoke H5Tcopy to generate another datatype id 
+      from a predefined datatype.
+
+      (BMR, 2015/04/06)
+
+
+Support for New Platforms, Languages, and Compilers
+===================================================
+    - Support for Linux 3.10.0-123.20.1.el7 added (LK - 2015/04/01) 
+    - Support for Mac OS X Yosemite 10.10 added (AKC - 2015/03/04, HDFFV-9007)
+    - Support for AIX 6.1 added and AIX 5.3 is retired. (AKC - 2015/01/09)
+
+Bug Fixes since HDF5-1.8.14
+===========================
+
+    Configuration
+    -------------
+    - Make uninstall generated "test: argument expected".
+      The error is due to $EXAMPLETOPDIR is used without setting a value first.
+
+      Fixed by assign it with the proper value.
+
+      (AKC - 2015/04/29, HDFFV-9298) 
+
+    - Windows Installer Incorrect Display of PATH Environment Variable
+    
+      In the Windows installer, the dialog box where the user can elect to
+      add the product's bin path to the %PATH% environment variable displayed
+      an incorrect path. This path was missing the C:\Program Files part
+      and used the POSIX file separator '/' before the bin (<path>/bin,
+      instead of <path>\bin).
+      
+      The dialog box text was changed to simply say that the product's bin
+      path would be added instead of explicitly displaying the path.
+      This is in line with most installers. The reason for not fixing the 
+      displayed path instead is that it is difficult to pass the correct
+      path from CPack to the NSIS installer for display.
+
+      Note that this was never a code issue - it was just a display
+      problem. The installer always did the right thing when updating the
+      environment variable.
+
+      (DER - 2014/11/14, HDFFV-9016)
+
+    Library
+    -------
+    - Incorrect Usage of List in CMake COMPILE_DEFINITIONS set_property
+    
+      The CMake command set_property with COMPILE_DEFINITIONS property
+      needs a quoted semi-colon separated list of values. CMake will
+      transform the list to a series of -D{value} for the compile.
+      
+      (ADB - 2014/12/09, HDFV-9041)
+      
+    - Fixed Compile Errors on Windows w/ Visual Studio and CMake When
+      UNICODE is Defined
+    
+      The HDF5 Library could not be built on Windows with Visual Studio when
+      UNICODE was defined. This was due to the incorrect use of the TEXT() 
+      macro and some Win32 API functions that take TCHAR parameters. The faulty
+      code was a part of the filter plugin functionality. This was a
+      compile-time error that only affected users who build HDF5 from source
+      and define UNICODE, usually when HDF5 is being built as a part of a
+      larger product. There were no run-time effects.
+      
+      These errors caused no problems when UNICODE was not defined. HDF5 is
+      normally not built with UNICODE defined and the binaries were
+      unaffected.
+      
+      The fix was to remove the TEXT() macro and explicitly use the
+      'A' form of the Win32 API calls, which expect char strings instead of
+      wchar_t strings.
+      
+      Note that HDF5 currently does not support Unicode file paths on Windows.
+      
+      (DER - 2015/02/22, HDFFV-8927)
+
+    - Addition of Error Tracing Functionality to Several C API Calls
+
+      A bug in a text processing script caused API calls that return a
+      pointer to not receive error tracing macros/functionality.
+
+      The bug has been corrected and error tracing functionality has been
+      added to the affected API calls. These functions will now correctly
+      print trace information when library errors are encountered.
+
+      (DER - 2015/02/26, HDFFV-9141)
+
+    - H5Rdereference Now Checks for HADDR_UNDEF or Uninitialized References
+
+      When passed HADDR_UNDEF or uninitialized references, the previous 
+      behavior of H5Rdereference was to continue to process the reference 
+      as a valid address. 
+      
+      H5Rdereference was changed to return immediately (with an error 
+      message) if the references are HADDR_UNDEF or uninitialized.
+
+      (MSB - 2015/3/10, HDFFV-7959)
+
+    - Fixed Bugs in H5Sextent_copy
+
+      H5Sextent_copy would not free the previous extent, resulting in a memory
+      leak.  Also, H5Sextent_copy would not update the number of elements
+      selected if the selection was "all", causing various problems.  These
+      issues have been fixed.
+
+      (NAF - 2015/04/02)
+
+
+    Parallel Library
+    ----------------
+    - Fixed a Potential Memory Error
+      
+      Fixed a potential memory error when performing parallel I/O on a 
+      dataset with a single chunk, and at least one process has nothing 
+      to do.
+      
+      (NAF - 2015/02/16)
+
+    - Parallel Test Problem Fixed
+      
+      Fixed problem with parallel tests where they failed beyond a
+      certain number of ranks. All tests should work for any arbitrary
+      number of ranks. 
+      
+      (MSC - 2014/11/06, HDFFV-1027,8962,8963)
+
+    - MPE Support
+
+      Enabling MPE was causing HDF5 build to fail. Support for it was
+      dropped at some point in time.
+
+      Fixed problem with enabling MPE. Users should use the community
+      maintained MPE on github (http://git.mpich.org/mpe.git/). 
+
+      (MSC - 2015/02/20, HDFFV-9135)
+
+    Performance
+    -------------
+    - None
+
+    Tools
+    -----
+    - h5repack crashed on enumerated 8-bit type.
+
+      Previous version 1.8.14 introduced an error that caused the reading
+      of enumerated 8-bit type nested in compound type to fail.
+
+      Fixed library code responsible for reading the particular type.
+      (AKC - 2015.03/31, HDFFV-8667)
+
+    - h52gif crashed non-8bit images.
+
+      h52gif crashed if instructed to convert images other than 8bit images.
+
+      h52gif could handle only 8bit images. Added code to detect non-8bit
+      images and flag them as failure.  Update tool document page to reflect
+      the limit.
+      (AKC - 2015/03/31, HDFFV-8957)
+
+    - perform/benchpar.c retired.
+
+      benchpar.c has not been built for a long time and its original purpose
+      is not needed any more.
+      (AKC - 2014/12/19, HDFFV-8156)
+
+    - Source perform/ directory moved to tools/perform.
+      The perform directory is moved to tools/perform for easier maintenance.
+      (AKC - 2014/12/17, HDFFV-9046)
+      
+    Fortran API
+    ------------
+    - Fortran Fails with --enable-fortran2003 and Intel 15.x Compilers
+      
+      Added BIND(C) to the offending APIs. 
+
+      The Fortran Library (--enable-fortran2003) now works using Intel 15.x 
+      without the need for any additional compilers flags. 
+      
+      (MSB - 2015/1/26, HDFFV-9049)
+
+    - h5tenum_insert_f Does Not Work with Default 8 Byte Integers 
+      (xlf compiler)
+      
+      In the Fortran 90 API, 'value' is no longer cast into the C int type. 
+      Therefore, if h5tenum_insert_f is passed an 8 byte integer (via -i8) 
+      then 'value' is written as the same type as the default Fortran 
+      integer type (which can be 8 bytes).
+      
+      A new Fortran 2003 API was added which is more in line with the C 
+      API and users are strongly encouraged to use the Fortran 2003 API 
+      instead of the Fortran 90 API.
+
+      SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
+      INTEGER(HID_T)  , INTENT(IN) :: type_id
+      CHARACTER(LEN=*), INTENT(IN) :: name
+      TYPE(C_PTR)     , INTENT(IN) :: value
+      INTEGER, INTENT(OUT) :: hdferr
+
+      (MSB - 2015/2/19, HDFFV-8908)
+
+    - Some Fortran APIs Never Returned the Error State
+      
+      Some Fortran APIs never returned the error state: they 
+      would always return a positive number. The APIs include 
+      the following:
+      
+      h5fget_file_image_f
+      h5lget_name_by_idx_f
+      h5oget_comment_by_name_f
+
+      They were corrected to return a negative number as described in 
+      the Reference Manual if an error occurred. 
+
+      (MSB - 2015/3/19, HDF5-239)
+
+    - Fixed h5pget_class_f 
+
+      h5pget_class_f never correlated the class identifier to the property 
+      list class name as indicated in the HDF5 Reference Manual; it instead 
+      returned a property list class identifier as an INTEGER. The INTEGER 
+      needed to be of type INTEGER(HID_T) to be correct.
+
+      The h5pget_class_f API was changed to return an INTEGER(HID_T) 
+      property list class identifier instead of an INTEGER. This mimics the 
+      intended behavior of the C API.
+
+      (MSB - 2015/3/16, HDFFV5-9162)
+
+    C++ API
+    ------
+    - Combined Two H5File::getObjCount Overloaded Methods
+
+      The following two methods
+      
+      ssize_t getObjCount(unsigned types) const;
+      ssize_t getObjCount() const;
+      
+      were combined into one:
+      
+      ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const;
+
+      (BMR - 2015/04/06)
+
+    - Many Warnings Were Removed
+
+      Many warnings such as conversion, unused variables, missing base
+      class initialization, and initializing base classes in wrong order 
+      were removed.
+
+      (BMR, 2015/04/06)
+
+    - Functionality Deprecation
+
+      The following two constructors of classes AbstractDs, IdComponent,
+      H5Location, and H5Object are no longer appropriate after the data member
+      "id" had been moved from IdComponent to the sub-classes in previous
+      releases.
+      
+      <Classname>(const hid_t h5_id);
+      <Classname>(const <Classname>& original);
+      
+      The copy constructors were no-op and removed in 1.8.15.  The other
+      constructors will be removed from 1.10 release, and then from 1.8.17
+      if their removal does not cause any problems.
+
+      (BMR, 2015-04-06)
+
+
+    High-Level APIs:
+    ------
+    - Suppress Warnings from Flex/Bison-generated Code
+
+      Warning suppression #pragmas, etc. have been added to H5LTparse.c and
+      H5LTanalyze.c. We have no control over this code since it's created by
+      a generator.
+
+      (DER - 2015/03/08 - HDFFV-9149)
+
+    - Changed hdf5_hl.h to Include the HDF5 Main Library "hdf5.h"
+
+      User's no longer need to include both hdf5_hl.h and hdf5.h
+
+      (MSB - 2015/2/14, HDFFV-8685)
+
+   
+    - H5PTcreate_fl Does Not Convert to Memory Datatype
+
+      H5PTcreate_fl now converts to the table's native memory datatype 
+      to fix the problem of handling BE and LE packet tables.
+
+      (MSB - 2015/2/26 - HDFFV-9042)
+
+    - Fix for H5LT Attribute Functions
+      
+      H5LT attribute functions fail to create attributes whose name 
+      is a substring of an existing attribute.
+
+      H5LT attribute functions can now create attributes whose name 
+      is a substring of an existing attribute.
+
+      (MSB - 2015/2/24, HDFFV-9132)
+    
+
+    Fortran High-Level APIs:
+    ------------------------
+
+    - Internal Library Fix for Missing Argument Declaration
+    
+      In Interface block for h5tbmake_table_c, "max_char_size_field_names" 
+      is listed as an input, but in the argument definitions it is 
+      "INTEGER :: max_char_size". This caused no known problems with the 
+      Fortran HL API.
+
+      Fixed missing argument definition.
+       
+      (MSB - 2015/2/18, HDFFV-8559)
+      
+
+    Testing
+    -------
+    - None
+
+
+Supported Platforms
+===================
+The following platforms are supported and have been tested for this release.
+They are built with the configure process unless specified otherwise.
+
+    AIX 6.1                       xlc/xlc_r 10.1.0.5
+    (NASA G-ADA)                  xlC/xlC_r 10.1.0.5
+                                  xlf90/xlf90_r 12.1.0.6
+
+    Linux 2.6.18-308.13.1.el5PAE  GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP i686 i686 i386         compilers for 32-bit applications;
+    (jam)                             Version 4.1.2 20080704 (Red Hat 4.1.2-55)
+                                      Version 4.8.4, 4.9.2
+                                  PGI C, Fortran, C++ Compilers for 32-bit
+                                  applications;
+                                      Version 14.10-0
+                                  Intel(R) C, C++, Fortran Compiler for 32-bit
+                                  applications;
+                                      Version 15.0.1.133 (Build 20141023)
+
+    Linux 2.6.18-371.6.1.el5      GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP x86_64 GNU/Linux       compilers for 64-bit applications;
+    (koala)                           Version 4.1.2 20080704 (Red Hat 4.1.2-55)
+                                      Version 4.8.4, 4.9.2
+                                  Intel(R) C, C++, Fortran Compilers for 
+                                  applications running on Intel(R) 64; 
+                                      Version 15.0.1.133 Build 20141023
+
+    Linux 2.6.32-431.11.2.el6     GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP x86_64 GNU/Linux       compilers:
+    (platypus)                       Version 4.4.7 20120313
+                                     Version 4.8.2, Version 4.9.2
+                                  PGI C, Fortran, C++ for 64-bit target on 
+                                  x86-64;
+                                      Version 14.10-0 
+                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
+                                  compilers:
+                                     Version 15.0.1.133 Build 20141023
+
+    Linux 3.10.0-123.20.1.el7     GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP x86_64 GNU/Linux       compilers:
+    (moohan)                         Version 4.8.2 20140120 (Red Hat 4.8.2-16)
+                                  Intel(R) C Intel(R) 64 Compiler XE for
+                                  applications running on Intel(R) 64, 
+                                     Version 15.0.1.133 Build 20141023
+
+    Linux 2.6.32-431.29.2.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
+    #1 SMP ppc64 GNU/Linux        g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
+    (ostrich)                     GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
+                                  IBM XL C/C++ V13.1
+                                  IBM XL Fortran V15.1
+
+    SunOS 5.11 32- and 64-bit     Sun C 5.12 SunOS_sparc
+    (emu)                         Sun Fortran 95 8.6 SunOS_sparc
+                                  Sun C++ 5.12 SunOS_sparc
+
+    Windows 7                     Visual Studio 2008  (cmake)
+                                  Visual Studio 2010 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
+                                  Cygwin(CYGWIN_NT-6.1 1.7.34(0.285/5/3) gcc(4.9.2) compiler and gfortran)
+                                  (cmake and autotools)
+
+    Windows 7 x64                 Visual Studio 2008  (cmake)
+                                  Visual Studio 2010 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
+                                  
+    Windows 8.1                   Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
+
+    Windows 8.1 x64               Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
+
+    Mac OS X Mt. Lion 10.8.5      Apple clang/clang++ version 5.1 from Xcode 5.1
+    64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
+    (swallow/kite)                Intel icc/icpc/ifort version 14.0.2
+
+    Mac OS X Mavericks 10.9.5     Apple clang/clang++ version 6.0 from Xcode 6.1.1
+    64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
+    (wren/quail)                  Intel icc/icpc/ifort version 14.0.2
+
+    Mac OS X Yosemite 10.10.2     Apple clang/clang++ version 6.0 from Xcode 6.1.1
+    64-bit    			  gfortran GNU Fortran (GCC) 4.9.2
+    (osx1010dev/osx1010test)      Intel icc/icpc/ifort version 15.0.1
+
+
+Tested Configuration Features Summary
+=====================================
+
+    In the tables below
+          y   = tested 
+          n   = not tested in this release
+          C   = Cluster
+          W   = Workstation
+          x   = not working in this release
+          dna = does not apply
+          ( ) = footnote appears below second table
+          <blank> = testing incomplete on this feature or platform 
+
+Platform                              C         F90/   F90      C++  zlib  SZIP
+                                      parallel  F2003  parallel
+SunOS 5.11 32-bit                       n        y/y    n        y    y     y
+SunOS 5.11 64-bit                       n        y/y    n        y    y     y
+Windows 7                               y        y/y    n        y    y     y
+Windows 7 x64                           y        y/y    n        y    y     y
+Windows 7 Cygwin                        n        y/y    n        y    y     n 
+Windows 8.1                             n        y/y    n        y    y     y
+Windows 8.1 x64                         n        y/y    n        y    y     y
+Mac OS X Mountain Lion 10.8.5 64-bit    n        y/y    n        y    y     y
+Mac OS X Mavericks 10.9.5 64-bit        n        y/y    n        y    y     y
+Mac OS X Yosemeti 10.10.2 64-bit        n        y/y    n        y    y     y
+AIX 6.1 32- and 64-bit                  n        y/n    n        y    y     y
+CentOS 5.9 Linux 2.6.18-308 i686 GNU    y        y/y    y        y    y     y
+CentOS 5.9 Linux 2.6.18-308 i686 Intel  n        y/y    n        y    y     y
+CentOS 5.9 Linux 2.6.18-308 i686 PGI    n        y/y    n        y    y     y
+CentOS 5.9 Linux 2.6.18 x86_64 GNU      n        y/y    n        y    y     y
+CentOS 5.9 Linux 2.6.18 x86_64 Intel    n        y/y    n        y    y     y
+CentOS 6.4 Linux 2.6.32 x86_64 GNU      y        y/y    y        y    y     y
+CentOS 6.4 Linux 2.6.32 x86_64 Intel    n        y/y    n        y    y     y
+CentOS 6.4 Linux 2.6.32 x86_64 PGI      n        y/y    n        y    y     y
+CentOS 7.0 Linux 3.10.0 x86_64 GNU      y        y/y    y        y    y     y
+CentOS 7.0 Linux 3.10.0 x86_64 Intel    n        y/y    n        y    y     y
+Linux 2.6.32-431.11.2.el6.ppc64         n        y/n    n        y    y     y
+
+Platform                                 Shared  Shared    Shared    Thread-  
+                                         C libs  F90 libs  C++ libs  safe     
+SunOS 5.11 32-bit                          y       y         y         y        
+SunOS 5.11 64-bit                          y       y         y         y        
+Windows 7                                  y       y         y         y
+Windows 7 x64                              y       y         y         y
+Windows 7 Cygwin                           n       n         n         y
+Windows 8.1                                y       y         y         y
+Windows 8.1 x64                            y       y         y         y
+Mac OS X Mountain Lion 10.8.5 64-bit       y       n         y         y        
+Mac OS X Mavericks 10.9.5 64-bit           y       n         y         y
+Mac OS X Yosemeti 10.10.2 64-bit           y       n         y         y
+AIX 6.1 32- and 64-bit                     y       n         n         y        
+CentOS 5.9 Linux 2.6.18-308 i686 GNU       y       y         y         y        
+CentOS 5.9 Linux 2.6.18-308 i686 Intel     y       y         y         n        
+CentOS 5.9 Linux 2.6.18-308 i686 PGI       y       y         y         n        
+CentOS 5.9 Linux 2.6.18 x86_64 GNU         y       y         y         y        
+CentOS 5.9 Linux 2.6.18 x86_64 Intel       y       y         y         n        
+CentOS 6.4 Linux 2.6.32 x86_64 GNU         y       y         y         n
+CentOS 6.4 Linux 2.6.32 x86_64 Intel       y       y         y         n
+CentOS 6.4 Linux 2.6.32 x86_64 PGI         y       y         y         n     
+CentOS 7.0 Linux 3.10.0 x86_64 GNU         y       y         y         n
+CentOS 7.0 Linux 3.10.0 x86_64 Intel       y       y         y         n
+Linux 2.6.32-431.11.2.el6.ppc64            y       y         y         n 
+
+Compiler versions for each platform are listed in the preceding
+"Supported Platforms" table.
+
+
+More Tested Platforms
+=====================
+The following platforms are not supported but have been tested for this release.
+
+    Linux 2.6.18-308.13.1.el5PAE  MPICH mpich 3.1.3 compiled with
+    #1 SMP i686 i686 i386             gcc 4.9.2 and gfortran 4.9.2
+    (jam)                         g95 (GCC 4.0.3 (g95 0.94!)
+
+    Linux 2.6.18-431.11.2.el6     MPICH mpich 3.1.3 compiled with
+    #1 SMP x86_64 GNU/Linux           gcc 4.9.2 and gfortran 4.9.2
+    (platypus)                    g95 (GCC 4.0.3 (g95 0.94!)   
+
+    FreeBSD 8.2-STABLE i386       gcc 4.5.4 [FreeBSD] 20110526
+    (loyalty)                     gcc 4.6.1 20110527
+                                  g++ 4.6.1 20110527
+                                  gfortran 4.6.1 20110527
+
+    FreeBSD 8.2-STABLE amd64      gcc 4.5.4 [FreeBSD] 20110526
+    (freedom)                     gcc 4.6.1 20110527
+                                  g++ 4.6.1 20110527
+                                  gfortran 4.6.1 20110527
+
+    Debian7.5.0 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux
+                                  gcc (Debian 4.7.2-5) 4.7.2
+                                  GNU Fortran (Debian 4.7.2-5) 4.7.2
+                                  (cmake and autotools)
+
+    Fedora20 3.15.3-200.fc20.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
+                                  gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1)
+                                  GNU Fortran (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1)
+                                  (cmake and autotools)
+
+    SUSE 13.1 3.11.10-17-desktop #1 SMP PREEMPT x86_64 x86_64 x86_64 GNU/Linux
+                                  gcc (SUSE Linux) 4.8.1
+                                  GNU Fortran (SUSE Linux) 4.8.1
+                                  (cmake and autotools)
+
+    Ubuntu 14.04 3.13.0-35-generic #62-Ubuntu SMP x86_64 GNU/Linux
+                                  gcc (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
+                                  GNU Fortran (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
+                                  (cmake and autotools)
+    
+    hopper.nersc.gov              PrgEnv-gnu/5.2.40
+                                  gcc (GCC) 4.9.2 20141030 (Cray Inc.)
+                                  GNU Fortran (GCC) 4.9.2 20141030 (Cray Inc.)
+                                  g++ (GCC) 4.9.2 20141030 (Cray Inc.)
+
+
+Known Problems
+==============
+* On Windows platforms in debug configurations, the VFD flush1 tests will fail
+  with the split and multi VFD drivers. These tests will display a modal debug 
+  dialog which must be answered or wait for the test timeout to expire.
+  (ADB - 2014/06/23 - HDFFV-8851)
+
+* CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv
+  catches some undefined behavior in the alignment algorithm of the macro DETECT_I
+  in H5detect.c (Issue 8147).  Since the algorithm is trying to detect the alignment
+  of integers, ideally the flag -fcatch-undefined-behavior shouldn't to be used for
+  H5detect.c. In the future, we can separate flags for H5detect.c from the rest of
+  the library. (SLU - 2013/10/16)
+
+* Make provided by Solaris fails in "make check". Solaris users should use
+  gmake to build and install the HDF5 software. (AKC - 2013/10/08 - HDFFV-8534)
+
+* The C++ and FORTRAN bindings are not currently working on FreeBSD with the
+  native release 8.2 compilers (4.2.1), but are working with gcc 4.6 from the
+  ports (and probably gcc releases after that).
+  (QAK - 2012/10/19)
+
+* The following h5dump test case fails in BG/P machines (and potentially other
+  machines that use a command script to launch executables):
+
+   h5dump --no-compact-subset -d "AHFINDERDIRECT::ah_centroid_t[0] it=0 tl=0"
+     tno-subset.h5
+  
+  This is due to the embedded spaces in the dataset name being interpreted
+  by the command script launcher as meta-characters, thus passing three
+  arguments to h5dump's -d flag. The command passes if run by hand, just
+  not via the test script.
+  (AKC - 2012/05/03)
+
+* The STDIO VFD does not work on some architectures, possibly due to 32/64
+  bit or large file issues.  The basic STDIO VFD test is known to fail on
+  64-bit SunOS 5.10 on SPARC when built with -m64 and 32-bit OS X/Darwin
+  10.7.0.  The STDIO VFD test has been disabled while we investigate and
+  a fix should appear in a future release.
+  (DER - 2011/10/14 - HDFFV-8235)
+
+* h5diff can report inconsistent results when comparing datasets of enum type
+  that contain invalid values.  This is due to how enum types are handled in
+  the library and will be addressed in a future release.
+  (DER - 2011/10/14 - HDFFV-7527)
+
+* The links test can fail under the stdio VFD due to some issues with external
+  links.  This will be investigated and fixed in a future release.
+  (DER - 2011/10/14 - HDFFV-7768)
+
+* After the shared library support was fixed for some bugs, it was discovered
+  that "make prefix=XXX install" no longer works for shared libraries. It
+  still works correctly for static libraries. Therefore, if you want to
+  install the HDF5 shared libraries in a location such as /usr/local/hdf5,
+  you need to specify the location via the --prefix option during configure 
+  time. E.g, ./configure --prefix=/usr/local/hdf5 ...
+  (AKC - 2011/05/07 - HDFFV-7583)
+
+* The parallel test, t_shapesame, in testpar/, may run for a long time and may
+  be terminated by the alarm signal.  If that happens, one can increase the
+  alarm seconds (default is 1200 seconds = 20 minutes) by setting the
+  environment variable, $HDF5_ALARM_SECONDS, to a larger value such as 3600
+  (60 minutes).  Note that the t_shapesame test may fail in some systems 
+  (see the "While working on the 1.8.6 release..." problem below).  If 
+  it does, it will waste more time if $HDF5_ALARM_SECONDS is set
+  to a larger value.
+  (AKC - 2011/05/07)
+
+* Shared Fortran libraries are not quite working on AIX. While they are
+  generated when --enable-shared is specified, the fortran and hl/fortran
+  tests fail. the issue. HL and C++ shared libraries should now be 
+  working as intended, however.
+  (MAM - 2011/04/20)
+
+* While working on the 1.8.6 release of HDF5, a bug was discovered that can
+  occur when reading from a dataset in parallel shortly after it has been
+  written to collectively. The issue was exposed by a new test in the parallel
+  HDF5 test suite, but had existed before that. We believe the problem lies with
+  certain MPI implementations and/or file systems.
+
+  We have provided a pure MPI test program, as well as a standalone HDF5
+  program, that can be used to determine if this is an issue on your system.
+  They should be run across multiple nodes with a varying number of processes.
+  These programs can be found at:
+  http://www.hdfgroup.org/ftp/HDF5/examples/known_problems/
+  (NAF - 2011/01/19)
+
+* All the VFL drivers aren't backward compatible.  In H5FDpublic.h, the
+  structure H5FD_class_t changed in 1.8.  There is new parameter added to
+  get_eoa and set_eoa callback functions.  A new callback function
+  get_type_map was added in.  The public function H5FDrealloc was taken
+  out in 1.8.  The problem only happens when users define their own driver
+  for 1.6 and try to plug in 1.8 library.  Because there's only one user 
+  complaining about it, we (Elena, Quincey, and I) decided to leave it as 
+  it is (see bug report #1279).  Quincey will make a plan for 1.10.
+  (SLU - 2010/02/02)
+
+* The --enable-static-exec configure flag will only statically link libraries
+  if the static version of that library is present. If only the shared version
+  of a library exists (i.e., most system libraries on Solaris, AIX, and Mac,
+  for example, only have shared versions), the flag should still result in a 
+  successful compilation, but note that the installed executables will not be 
+  fully static. Thus, the only guarantee on these systems is that the 
+  executable is statically linked with just the HDF5 library.
+  (MAM - 2009/11/04)
+  
+* A dataset created or rewritten with a v1.6.3 library or after cannot be read 
+  with the v1.6.2 library or before when the Fletcher32 EDC filter is enabled.
+  There was a bug in the calculation of the Fletcher32 checksum in the 
+  library before v1.6.3; the checksum value was not consistent between big-
+  endian and little-endian systems.  This bug was fixed in Release 1.6.3.  
+  However, after fixing the bug, the checksum value was no longer the same as 
+  before on little-endian system.  Library releases after 1.6.4 can still read 
+  datasets created or rewritten with an HDF5 library of v1.6.2 or before.  
+  (SLU - 2005/06/30)
+
+
 %%%%1.8.14%%%%   
 
 
diff --git a/release_docs/INSTALL b/release_docs/INSTALL
index 1e339c3..0fb2787 100644
--- a/release_docs/INSTALL
+++ b/release_docs/INSTALL
@@ -48,6 +48,9 @@ CONTENTS
 
         6. Support
 
+        A. Building and testing with other compilers
+        A.1.  Building and testing with Intel compilers
+        A.2.  Building and testing with PGI compilers
 
 *****************************************************************************
 
@@ -581,3 +584,49 @@ CONTENTS
         Support is described in the README file.
 
 
+*****************************************************************************
+                                APPENDICES
+*****************************************************************************
+
+A. Building and testing with other compilers
+A.1.  Building and testing with Intel compilers
+        When Intel compilers are used (icc or ecc), you will need to modify
+        the generated "libtool" program after configuration is finished.
+        On or around line 104 of the libtool file, there are lines which 
+        look like:
+
+            # How to pass a linker flag through the compiler.
+            wl=""
+
+        Change these lines to this:
+
+            # How to pass a linker flag through the compiler.
+            wl="-Wl,"
+
+        UPDATE: This is now done automatically by the configure script. 
+        However, if you still experience a problem, you may want to check this 
+        line in the libtool file and make sure that it has the correct value.
+
+A.2.  Building and testing with PGI compilers
+        When PGI C and C++ compilers are used (pgcc or pgCC), you will need to 
+        modify the generated "libtool" program after configuration is finished.
+        On or around line 104 of the libtool file, there are lines which 
+        look like this:
+
+            # How to pass a linker flag through the compiler.
+            wl=""
+
+        Change these lines to this:
+
+            # How to pass a linker flag through the compiler.
+            wl="-Wl,"
+
+        UPDATE: This is now done automatically by the configure script. However,
+        if you still experience a problem, you may want to check this line in
+        the libtool file and make sure that it has the correct value.
+
+        To build the HDF5 C++ Library with pgCC (version 4.0 and later), set
+        the environment variable CXX to "pgCC -tlocal"
+            setenv CXX "pgCC -tlocal"
+        before running the configure script.
+
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt
index 7f67eb2..d088432 100644
--- a/release_docs/INSTALL_CMake.txt
+++ b/release_docs/INSTALL_CMake.txt
@@ -4,11 +4,11 @@
 ************************************************************************
 
                      Table of Contents
-                     
+
 Section I:    Preconditions
-Section II:   Quick Step Building HDF5 Libraries with CMake Script Mode 
+Section II:   Quick Step Building HDF5 Libraries with CMake Script Mode
 Section III:  Quick Step Building HDF5 Libraries with CMake Command Mode
-Section IV:   Further considerations                                                           
+Section IV:   Further considerations
 Section V:    Options for building HDF5 Libraries with CMake command line
 Section VI:   CMake option defaults for HDF5
 Section VII:  User Defined Options for HDF5 Libraries with CMake
@@ -20,7 +20,7 @@ Section VIII: Options for platform configuration files
 ========================================================================
 I. Preconditions
 ========================================================================
-Obtaining HDF5 source code 
+Obtaining HDF5 source code
    1. Create a directory for your development; for example, "myhdfstuff".
 
    2. Obtain compressed (*.tar or *.zip) HDF5 source from
@@ -29,17 +29,21 @@ Obtaining HDF5 source code
       Uncompress the file. There should be a hdf5-1.8."X" folder.
 
 CMake version
-   1. We suggest you obtain the latest CMake from the Kitware web site. 
+   1. We suggest you obtain the latest CMake from the Kitware web site.
       The HDF5 1.8."X" product requires a minimum CMake version 3.1.0,
-      where "X" is the current HDF5 release version.                     
+      where "X" is the current HDF5 release version.
+
+Note:
+   To change the install prefix from the platform defaults initialize
+   the CMake variable, CMAKE_INSTALL_PREFIX.
 
 
 ========================================================================
 II. Quick Step Building HDF5 Libraries with CMake Script Mode
 ========================================================================
-This short set of instructions is written for users who want to quickly 
-build the HDF5 C and C++ static libraries and tools with SZIP and ZLIB 
-compression included.  This procedure will use the default settings in 
+This short set of instructions is written for users who want to quickly
+build the HDF5 C and C++ static libraries and tools with SZIP and ZLIB
+compression included.  This procedure will use the default settings in
 the config/cmake/cacheinit.cmake file.
 HDF Group recommends using the ctest script mode to build HDF5.
 
@@ -47,7 +51,7 @@ The following files referenced below are available at the HDF web site:
     http://www.hdfgroup.org/HDF5/release/cmakebuild.html
 
 Single compressed file with all the files needed, including source:
-    hdf5-1.8.15-CMake.zip or hdf5-1.8.15-CMake.tar.gz
+    hdf5-1.8.16-CMake.zip or hdf5-1.8.16-CMake.tar.gz
 
 Individual files
 -----------------------------------------------
@@ -57,7 +61,7 @@ CMake build script:
 External compression szip and zlib libraries:
     SZip.tar.gz
     ZLib.tar.gz
-    
+
 Platform configuration files:
     HDF518config.cmake
 -----------------------------------------------
@@ -65,56 +69,56 @@ Platform configuration files:
 To build HDF5 with the SZIP and ZLIB external libraries you will need to:
 
    1. Change to the development directory "myhdfstuff".
-    
+
    2. Download the SZip.tar.gz and ZLib.tar.gz to "myhdfstuff".
       Do not uncompress the files.
-       
+
    3. Download the CTestScript.cmake file to "myhdfstuff".
-      CTestScript.cmake file should not be modified.    
-       
+      CTestScript.cmake file should not be modified.
+
    4. Download the platform configuration file, HDF518config.cmake,
       to "myhdfstuff". Do not modify the file unless you want to change
       default build environment. (See http://www.hdfgroup.org/HDF5/release/chgcmkbuild.html)
 
-   5. From the "myhdfstuff" directory execute the CTest Script with the 
+   5. From the "myhdfstuff" directory execute the CTest Script with the
       following options:
 
       On 32-bit Windows with Visual Studio 2012, execute:
-         ctest -S HDF518config.cmake,32-VS2012 -C Release -VV -O hdf5.log
+         ctest -S HDF518config.cmake,BUILD_GENERATOR=VS2012 -C Release -VV -O hdf5.log
       On 64-bit Windows with Visual Studio 2012, execute:
-         ctest -S HDF518config.cmake,64-VS2012 -C Release -VV -O hdf5.log
+         ctest -S HDF518config.cmake,BUILD_GENERATOR=VS201264 -C Release -VV -O hdf5.log
       On 32-bit Windows with Visual Studio 2013, execute:
-         ctest -S HDF518config.cmake,32-VS2013 -C Release -VV -O hdf5.log
+         ctest -S HDF518config.cmake,BUILD_GENERATOR=VS2013 -C Release -VV -O hdf5.log
       On 64-bit Windows with Visual Studio 2013, execute:
-         ctest -S HDF518config.cmake,64-VS2013 -C Release -VV -O hdf5.log
+         ctest -S HDF518config.cmake,BUILD_GENERATOR=VS201364 -C Release -VV -O hdf5.log
       On Linux and Mac, execute:
-         ctest -S HDF518config.cmake -C Release -VV -O hdf5.log
+         ctest -S HDF518config.cmake,BUILD_GENERATOR=Unix -C Release -VV -O hdf5.log
 
-      The command above will configure, build, test, and create an install 
+      The command above will configure, build, test, and create an install
       package in the myhdfstuff folder. It will have the format:
           HDF5-1.8.NN-<platform>.<zip or tar.gz>
 
           On Unix, <platform> will be "Linux". A similar .sh file will also be created.
-          On Windows, <platform> will be "win64" or "win32". If you have an 
-          installer on your system, you will also see a similar file that ends 
+          On Windows, <platform> will be "win64" or "win32". If you have an
+          installer on your system, you will also see a similar file that ends
           in either .exe (NSIS) or .msi (WiX).
-           
+
       The -S option uses the script version of ctest.
-        
-      The value for the -C option (as shown above, "-C Release") must 
-      match the setting for CTEST_BUILD_CONFIGURATION in the platform 
+
+      The value for the -C option (as shown above, "-C Release") must
+      match the setting for CTEST_BUILD_CONFIGURATION in the platform
       configuration file.
-        
+
       The -VV option is for most verbose; use -V for less verbose.
-        
+
       The "-O hdf5.log" option saves the output to a log file hdf5.log.
 
    6. To install, "X" is the current release version
- 
+
       On Windows, execute:
                 HDF5-1.8."X"-win32.msi or HDF5-1.8."X"-win64.msi
       By default this program will install the hdf5 library into the
-      "C:\Program Files" directory and will create the following 
+      "C:\Program Files" directory and will create the following
       directory structure:
          HDF_Group
          --HDF5
@@ -124,14 +128,14 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
          ------lib
          ------cmake
 
-      On Linux, change to the install destination directory 
+      On Linux, change to the install destination directory
       (create it if doesn't exist) and execute:
                 <path-to>/myhdfstuff/HDF5-1.8."X"-Linux.sh
       After accepting the license, the script will prompt:
         By default the HDF5 will be installed in:
         "<current directory>/HDF5-1.8."X"-Linux"
         Do you want to include the subdirectory HDF5-1.8."X"-Linux?
-        Saying no will install in: "<current directory>" [Yn]: 
+        Saying no will install in: "<current directory>" [Yn]:
       Note that the script will create the following directory structure
       relative to the install point:
          HDF_Group
@@ -141,10 +145,10 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
          ------include
          ------lib
          ------share
-                
+
       On Mac you will find HDF5-1.8."X"-Darwin.dmg in the myhdfstuff folder. Click
       on the dmg file to proceed with installation. After accepting the license,
-      there will be a folder with the following structure:      
+      there will be a folder with the following structure:
          HDF_Group
          --HDF5
          ----1.8."X"
@@ -152,7 +156,7 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
          ------include
          ------lib
          ------share
-      
+
       By default the installation will create the bin, include, lib and cmake
       folders in the <install destination directory>/HDF_Group/HDF5/1.8."X"
 
@@ -160,47 +164,47 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
 ========================================================================
 III. Quick Step Building HDF5 C Static Libraries and Tools with CMake
 ========================================================================
-Notes: This short set of instructions is written for users who want to 
-       quickly build the just the HDF5 C static library and tools from 
+Notes: This short set of instructions is written for users who want to
+       quickly build the just the HDF5 C static library and tools from
        the HDF5 source code package using the CMake command line tools.
-       
+
    Go through these steps:
 
       1. Change to the development directory "myhdfstuff".
 
       2. Uncompress the HDF5 source file
-      
+
       3. Create a folder  "build" in the "myhdfstuff" directory.
-      
-      4. Change into the "build" folder. 
-      
+
+      4. Change into the "build" folder.
+
       5. Configure the C library, tools and tests with one of the following commands:
 
          On Windows 32 bit
-           cmake -G "Visual Studio 11 2012" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X"
+           cmake -G "Visual Studio 12 2013" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X"
 
          On Windows 64 bit
-           cmake -G "Visual Studio 11 2012 Win64" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X"
-      
+           cmake -G "Visual Studio 12 2013 Win64" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X"
+
          On Linux and Mac
-           cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ../hdf5-1.8."X"
+           cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ../hdf5-1.8."X"
 
          where "X" is the current release version.
-         
+
       6. Build the C library, tools and tests with this command:
            cmake --build . --config Release
-      
+
       7. Test the C library and tools with this command:
            ctest . -C Release
-      
+
       8. Create an install image with this command:
            cpack -C Release CPackConfig.cmake
-      
-      9. To install 
+
+      9. To install
          On Windows, execute:
                 HDF5-1.8."X"-win32.msi or HDF5-1.8."X"-win64.msi
          By default this program will install the hdf5 library into the
-         "C:\Program Files" directory and will create the following 
+         "C:\Program Files" directory and will create the following
          directory structure:
             HDF_Group
             --HDF5
@@ -210,14 +214,14 @@ Notes: This short set of instructions is written for users who want to
             ------lib
             ------cmake
 
-         On Linux, change to the install destination directory 
+         On Linux, change to the install destination directory
          (create if doesn't exist) and execute:
                 <path-to>/myhdfstuff/build/HDF5-1.8."X"-Linux.sh
          After accepting the license, the script will prompt:
            By default the HDF5 will be installed in:
            "<current directory>/HDF5-1.8."X"-Linux"
            Do you want to include the subdirectory HDF5-1.8."X"-Linux?
-           Saying no will install in: "<current directory>" [Yn]: 
+           Saying no will install in: "<current directory>" [Yn]:
          Note that the script will create the following directory structure
          relative to the install point:
             HDF_Group
@@ -227,10 +231,10 @@ Notes: This short set of instructions is written for users who want to
             ------include
             ------lib
             ------share
-                
+
          On Mac you will find HDF5-1.8."X"-Darwin.dmg in the build folder. Click
          on the dmg file to proceed with installation. After accepting the license,
-         there will be a folder with the following structure:      
+         there will be a folder with the following structure:
             HDF_Group
             --HDF5
             ----1.8."X"
@@ -241,41 +245,41 @@ Notes: This short set of instructions is written for users who want to
 
 
 ========================================================================
-IV. Further considerations                                                           
+IV. Further considerations
 ========================================================================
 
    1. We suggest you obtain the latest CMake for windows from the Kitware
-      web site. The HDF5 1.8."X" product requires a minimum CMake version 3.1.0.                     
-                                                                         
+      web site. The HDF5 1.8."X" product requires a minimum CMake version 3.1.0.
+
    2. If you plan to use Zlib or Szip:
-      A. Download the binary packages and install them in a central location. 
-         For example on Windows, create a folder extlibs and install the 
+      A. Download the binary packages and install them in a central location.
+         For example on Windows, create a folder extlibs and install the
          packages there. Add the following CMake options:
             -DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib
             -DZLIB_INCLUDE_DIR:PATH=some_location/include
             -DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib
             -DSZIP_INCLUDE_DIR:PATH=some_location/include
-         where "some_location" is the full path to the extlibs folder. 
+         where "some_location" is the full path to the extlibs folder.
 
-      B. Use source packages from an SVN server by adding the following CMake 
+      B. Use source packages from an SVN server by adding the following CMake
          options:
             HDF5_ALLOW_EXTERNAL_SUPPORT:STRING="SVN"
             ZLIB_SVN_URL:STRING="http://some_location/zlib/trunk"
             SZIP_SVN_URL:STRING="http://some_location/szip/trunk"
          where "some_location" is the URL to the SVN repository. Also set
          CMAKE_BUILD_TYPE to the configuration type.
-         
-      C. Use source packages from a compressed file by adding the following 
+
+      C. Use source packages from a compressed file by adding the following
          CMake options:
             HDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ"
             ZLIB_TGZ_NAME:STRING="zlib_src.ext"
             SZIP_TGZ_NAME:STRING="szip_src.ext"
             TGZPATH:STRING="some_location"
-         where "some_location" is the URL or full path to the compressed 
+         where "some_location" is the URL or full path to the compressed
          file and ext is the type of compression file. Also set CMAKE_BUILD_TYPE
          to the configuration type during configuration
-                                    
-   3. If you are building on Apple Darwin platforms, you should add the 
+
+   3. If you are building on Apple Darwin platforms, you should add the
       following options:
           Compiler choice - use xcode by setting the ENV variables of CC and CXX
           Shared fortran is not supported, build static:
@@ -283,47 +287,47 @@ IV. Further considerations
           Additional options:
             CMAKE_ANSI_CFLAGS:STRING=-fPIC
             CTEST_USE_LAUNCHERS:BOOL=ON
-            CMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF         
-   
+            CMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
+
    4. Windows developers should install NSIS or WiX to create an install image with CPack.
       Visual Studio Express users will not be able to package HDF5 into
       an install image executable.
-   
+
    5. Developers can copy the config/cmake/cacheinit.cmake file and alter the
       the settings for the developers' environment. Then the only options needed
       on the command line are those options that are different. Example using HDF
       default cache file:
-           cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11 2012" \
+           cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 12 2013" \
                -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \
                -DCMAKE_BUILD_TYPE:STRING=Release ..
 
 Notes: CMake and HDF5
 
-   1. Using CMake for building and using HDF5 is under active development. 
-      While we have attempted to provide error-free files, please 
-      understand that development with CMake has not been extensively 
+   1. Using CMake for building and using HDF5 is under active development.
+      While we have attempted to provide error-free files, please
+      understand that development with CMake has not been extensively
       tested outside of HDF. The CMake specific files may change
       before the next release.
-            
-   2. CMake support for HDF5 development should be usable on any 
-      system where CMake is supported. Please send us any comments on 
-      how CMake support can be improved on any system. Visit the 
+
+   2. CMake support for HDF5 development should be usable on any
+      system where CMake is supported. Please send us any comments on
+      how CMake support can be improved on any system. Visit the
       KitWare site for more information about CMake.
-            
+
    3. Build and test results can be submitted to our CDash server,
       please read the HDF and CDash document at:
-                 www.hdfgroup.org/CDash/HowToSubmit. 
-            
+                 www.hdfgroup.org/CDash/HowToSubmit.
+
    4. See the appendix at the bottom of this file for examples of using
       a ctest script for building and testing. Using a ctest script is
       preferred because of its flexibility.
-            
+
 Notes: CMake in General
 
-   1. More information about using CMake can be found at the KitWare site at 
+   1. More information about using CMake can be found at the KitWare site at
          www.cmake.org.
-         
-   2. CMake uses the command line; however, the visual CMake tool is 
+
+   2. CMake uses the command line; however, the visual CMake tool is
       available for the configuration step. The steps are similar for
       all the operating systems supported by CMake.
 
@@ -348,27 +352,27 @@ These five steps are described in detail below.
 
       The visual CMake executable is named "cmake-gui.exe" on Windows and should be
       available in your Start menu. For Linux, UNIX, and Mac users the
-      executable is named "cmake-gui" and can be found where CMake was 
-      installed. 
-      
-      Specify the source and build directories. 
-      
+      executable is named "cmake-gui" and can be found where CMake was
+      installed.
+
+      Specify the source and build directories.
+
       ***** Make the build and source directories different. ******
-      
-      For example on Windows, if the source is at c:\MyHDFstuff\hdf5, 
-      then use c:\MyHDFstuff\hdf5\build or c:\MyHDFstuff\build\hdf5 as the 
+
+      For example on Windows, if the source is at c:\MyHDFstuff\hdf5,
+      then use c:\MyHDFstuff\hdf5\build or c:\MyHDFstuff\build\hdf5 as the
       build directory.
-      
+
       RECOMMENDED:
-        Users can perform the configuration step without using the visual 
-        cmake-gui program. We use the file cacheinit.cmake in the 
-        config/cmake source folder for our testing. This file enables all of the 
-        basic options and we turn specific options on or off for testing 
+        Users can perform the configuration step without using the visual
+        cmake-gui program. We use the file cacheinit.cmake in the
+        config/cmake source folder for our testing. This file enables all of the
+        basic options and we turn specific options on or off for testing
         using the following command line within the build directory:
-        
+
         cmake -C <sourcepath>/config/cmake/cacheinit.cmake -G "<generator>"  [-D<options>]  <sourcepath>
-        
-        Where <generator> is    
+
+        Where <generator> is
             * MinGW Makefiles
             * NMake Makefiles
             * Unix Makefiles
@@ -391,11 +395,9 @@ These five steps are described in detail below.
                 ########################
                 # EXTERNAL cache entries
                 ########################
-                set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries" FORCE)
-                set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
+                set (CMAKE_INSTALL_FRAMEWORK_PREFIX "Library/Frameworks" CACHE STRING "Frameworks installation directory" FORCE)
                 set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
                 set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
-                set (HDF5_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
                 set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
                 set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
                 set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE)
@@ -413,6 +415,7 @@ These five steps are described in detail below.
                 set (HDF5_USE_FOLDERS ON CACHE BOOL "Enable folder grouping of projects in IDEs." FORCE)
                 set (HDF5_USE_16_API_DEFAULT OFF CACHE BOOL "Use the HDF5 1.6.x API by default" FORCE)
                 set (HDF5_ENABLE_THREADSAFE OFF CACHE BOOL "(WINDOWS)Enable Threadsafety" FORCE)
+                set (HDF_TEST_EXPRESS "2" CACHE STRING "Control testing framework (0-3)" FORCE)
                 set (HDF5_PACKAGE_EXTLIBS OFF CACHE BOOL "(WINDOWS)CPACK - include external libraries" FORCE)
                 set (HDF5_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE)
                 set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)" FORCE)
@@ -424,128 +427,128 @@ These five steps are described in detail below.
 
    2. Configure the cache settings
 
-      2.1  Visual CMake users, click the Configure button. If this is the first time you are 
-           running cmake-gui in this directory, you will be prompted for the 
-           generator you wish to use (for example on Windows, Visual Studio 11). 
-           CMake will read in the CMakeLists.txt files from the source directory and 
-           display options for the HDF5 project. After the first configure you 
+      2.1  Visual CMake users, click the Configure button. If this is the first time you are
+           running cmake-gui in this directory, you will be prompted for the
+           generator you wish to use (for example on Windows, Visual Studio 11).
+           CMake will read in the CMakeLists.txt files from the source directory and
+           display options for the HDF5 project. After the first configure you
            can adjust the cache settings and/or specify the locations of other programs.
-      
+
            Any conflicts or new values will be highlighted by the configure
-           process in red. Once you are happy with all the settings and there are no 
-           more values in red, click the Generate button to produce the appropriate 
-           build files. 
-      
-           On Windows, if you are using a Visual Studio generator, the solution and 
+           process in red. Once you are happy with all the settings and there are no
+           more values in red, click the Generate button to produce the appropriate
+           build files.
+
+           On Windows, if you are using a Visual Studio generator, the solution and
            project files will be created in the build folder.
-      
+
            On linux, if you are using the Unix Makefiles generator, the Makefiles will
            be created in the build folder.
 
       2.2  Preferred command line example on Windows in c:\MyHDFstuff\hdf5\build directory:
-      
-               cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11 2012" \
+
+               cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 12 2013" \
                -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \
                -DCMAKE_BUILD_TYPE:STRING=Release ..
 
-      2.3  On Windows, if you are using a Visual Studio Express version you must 
+      2.3  On Windows, if you are using a Visual Studio Express version you must
            be sure that the following two options are correctly set/unset:
-           
+
            HDF5_NO_PACKAGES:BOOL=ON
            HDF5_USE_FOLDERS:BOOL=OFF
-           
+
    3. Build HDF5
-   
-      On Windows, you can build HDF5 using either the Visual Studio Environment 
+
+      On Windows, you can build HDF5 using either the Visual Studio Environment
       or the command line. The command line can be used on all platforms;
       Windows, linux, Unix, and Mac.
 
       To build from the command line, navigate to your build directory and
       execute the following:
-          
-              cmake --build . --config {Debug | Release}     
-              
+
+              cmake --build . --config {Debug | Release}
+
       NOTE: "--config {Debug | Release}" may be optional on your platform. We
-            recommend choosing either Debug or Release on Windows.                                                                                      
-             
-      3.1  If you wish to use the Visual Studio environment, open the solution 
-           file in your build directory. Be sure to select either Debug or 
+            recommend choosing either Debug or Release on Windows.
+
+      3.1  If you wish to use the Visual Studio environment, open the solution
+           file in your build directory. Be sure to select either Debug or
            Release and build the solution.
-             
+
       3.2.1  The external libraries (zlib and szip) can be configured
            to allow building the libraries by downloading from an SVN repository.
            The option is 'HDF5_ALLOW_EXTERNAL_SUPPORT'; by adding the following
            configuration option:
                -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="SVN"
-               
+
            The options to control the SVN URL (config/cmake/cacheinit.cmake file) are:
                ZLIB_SVN_URL:STRING="http://${svn_url}/zlib/trunk"
                SZIP_SVN_URL:STRING="http://${svn_url}/szip/trunk"
            ${svn_url} should be changed to your location. Also define CMAKE_BUILD_TYPE
            to be the configuration type.
-           
+
       3.2.2  Or the external libraries (zlib and szip) can be configured
            to allow building the libraries by using a compressed file.
-           The option is 'HDF5_ALLOW_EXTERNAL_SUPPORT' and is enabled by 
+           The option is 'HDF5_ALLOW_EXTERNAL_SUPPORT' and is enabled by
            adding the following configuration option:
                -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ"
-               
-           The options to control the SVN URL (config/cmake/cacheinit.cmake 
+
+           The options to control the SVN URL (config/cmake/cacheinit.cmake
            file) are:
                ZLIB_TGZ_NAME:STRING="zlib_src.ext"
                SZIP_TGZ_NAME:STRING="szip_src.ext"
                TGZPATH:STRING="some_location"
-            where "some_location/xxxx_src.ext" is the URL or full path to 
-            the compressed file and where ext is the type of the compression 
+            where "some_location/xxxx_src.ext" is the URL or full path to
+            the compressed file and where ext is the type of the compression
             file such as .bz2, .tar, .tar.gz, .tgz, or .zip. Also define
             CMAKE_BUILD_TYPE to be the configuration type.
 
    4. Test HDF5
 
       To test the build, navigate to your build directory and execute:
-      
+
               ctest . -C {Debug | Release}
-              
+
       NOTE: "-C {Debug | Release}" may be optional on your platform. We
             recommend choosing either Debug or Release to match the build
-            step on Windows.                                                                                      
+            step on Windows.
 
    5. Packaging HDF5 (create an install image)
-   
+
       To package the build into a simple installer using WiX toolset or the NullSoft installer NSIS
       on Windows, or into compressed files (.tar.gz, .sh, .zip), use the CPack tool.
 
       To package the build, navigate to your build directory and execute;
-      
+
               cpack -C {Debug | Release} CPackConfig.cmake
-      
+
       NOTE: See note 8 of this document for NSIS information.
             See note 9 of this document for WiX information.
-            Also, if you are using a Visual Studio Express version or do not 
-            want to enable the packaging components, set HDF5_NO_PACKAGES 
+            Also, if you are using a Visual Studio Express version or do not
+            want to enable the packaging components, set HDF5_NO_PACKAGES
             to ON (on the command line add -DHDF5_NO_PACKAGES:BOOL=ON)
-           
-   6. The files that support building HDF5 with CMake are all the files in the 
-      config/cmake folder, the CMakeLists.txt files in each source folder, and 
-      CTestConfig.cmake. CTestConfig.cmake is specific to the internal testing 
-      performed by The HDF Group. It should be altered for the user's 
+
+   6. The files that support building HDF5 with CMake are all the files in the
+      config/cmake folder, the CMakeLists.txt files in each source folder, and
+      CTestConfig.cmake. CTestConfig.cmake is specific to the internal testing
+      performed by The HDF Group. It should be altered for the user's
       installation and needs. The cacheinit.cmake file settings are used by
-      The HDF Group for daily testing. It should be altered/ignored for the user's 
+      The HDF Group for daily testing. It should be altered/ignored for the user's
       installation and needs.
 
-   7. More information about using CMake can be found at the KitWare site, 
+   7. More information about using CMake can be found at the KitWare site,
          www.cmake.org.
-      
+
    8. Nullsoft Scriptable Install System
-      The Nullsoft Scriptable Install System (NSIS) is an open source installation 
-      system. It was created by the WinAmp authors to distribute that application, 
-      but it is now a general-purpose system which anyone might use. NSIS installers 
-      recognize /S for silent installation and /D=dir to specify the 
-      "output directory", which is where the program will be installed. These 
-      options are case-sensitive, so be sure to type them in upper case. 
+      The Nullsoft Scriptable Install System (NSIS) is an open source installation
+      system. It was created by the WinAmp authors to distribute that application,
+      but it is now a general-purpose system which anyone might use. NSIS installers
+      recognize /S for silent installation and /D=dir to specify the
+      "output directory", which is where the program will be installed. These
+      options are case-sensitive, so be sure to type them in upper case.
 
    9. WiX Toolset
-      WiX--the Windows Installer XML toolset--lets developers create installers for 
+      WiX--the Windows Installer XML toolset--lets developers create installers for
       Windows Installer, the Windows installation engine. See http://wixtoolset.org.
 
 
@@ -553,14 +556,14 @@ These five steps are described in detail below.
 VI. CMake Option Defaults for HDF5
 ========================================================================
 
-In the options listed below, there are three columns of information: 
-Option Name, Option Description, and Option Default. 
-The config/cmake/cacheinit.cmake file overrides the following values.
+In the options listed below, there are three columns of information:
+Option Name, Option Description, and Option Default.
+The config/cmake/cacheinit.cmake file can override the following values.
 
 ---------------- General Build Options ---------------------
-BUILD_SHARED_LIBS  "Build Shared Libraries"    OFF
+BUILD_SHARED_LIBS  "Build Shared Libraries"    ON
 BUILD_STATIC_EXECS "Build Static Executabless" OFF
-BUILD_TESTING      "Build HDF5 Unit Testing"   OFF
+BUILD_TESTING      "Build HDF5 Unit Testing"   ON
 
 ---------------- HDF5 Build Options ---------------------
 HDF5_BUILD_CPP_LIB  "Build HDF5 C++ Library"         ON
@@ -568,7 +571,7 @@ HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples"    ON
 HDF5_BUILD_FORTRAN  "Build FORTRAN support"          OFF
 HDF5_BUILD_HL_LIB   "Build HIGH Level HDF5 Library"  ON
 HDF5_BUILD_TOOLS    "Build HDF5 Tools"               ON
-if (HDF5_BUILD_FORTRAN) 
+if (HDF5_BUILD_FORTRAN)
     HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" ON
 
 ---------------- HDF5 Advanced Options ---------------------
@@ -591,13 +594,14 @@ HDF5_STRICT_FORMAT_CHECKS      "Whether to perform strict file format checks"
 HDF5_TEST_VFD                  "Execute tests with different VFDs"                            OFF
 HDF5_USE_16_API_DEFAULT        "Use the HDF5 1.6.x API by default"                            OFF
 HDF5_USE_FOLDERS               "Enable folder grouping of projects in IDEs."                  OFF
+HDF5_WANT_DATA_ACCURACY        "IF data accuracy is guaranteed during data conversions"       ON
 HDF5_WANT_DCONV_EXCEPTION      "exception handling functions is checked during data conversions" ON
 HDF5_ENABLE_THREADSAFE         "Enable Threadsafety"                                          OFF
-if (APPLE) 
+if (APPLE)
     HDF5_BUILD_WITH_INSTALL_NAME "Build with library install_name set to the installation path"  OFF
-if (CMAKE_BUILD_TYPE MATCHES Debug) 
+if (CMAKE_BUILD_TYPE MATCHES Debug)
     HDF5_ENABLE_TRACE          "Enable API tracing capability"               ON
-if (HDF5_TEST_VFD) 
+if (HDF5_TEST_VFD)
     HDF5_TEST_FHEAP_VFD        "Execute fheap test with different VFDs"      ON
 
 ---------------- External Library Options ---------------------
@@ -606,7 +610,7 @@ HDF5_ENABLE_SZIP_SUPPORT    "Use SZip Filter"                        OFF
 HDF5_ENABLE_Z_LIB_SUPPORT   "Enable Zlib Filters"                    OFF
 ZLIB_USE_EXTERNAL           "Use External Library Building for ZLIB" 0
 SZIP_USE_EXTERNAL           "Use External Library Building for SZIP" 0
-if (HDF5_ENABLE_SZIP_SUPPORT) 
+if (HDF5_ENABLE_SZIP_SUPPORT)
     HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding"      OFF
 if (WINDOWS)
     H5_DEFAULT_PLUGINDIR    "%ALLUSERSPROFILE%/hdf5/lib/plugin"
@@ -623,9 +627,9 @@ VII. User Defined Options for HDF5 Libraries with CMake
 Support for User Defined macros and options has been added. The file
 UserMacros.cmake has an example of the technique. In the folder,
 config/cmake/UserMacros, is an implementation for Windows Visual Studio
-users for linking libraries to the static CRT - Windows_MT.cmake. 
+users for linking libraries to the static CRT - Windows_MT.cmake.
 
-Copy the contents of the file, both macro and option, into the 
+Copy the contents of the file, both macro and option, into the
 UserMacros.cmake file. Then enable the option to the CMake configuration,
 build and test process.
 
@@ -635,20 +639,106 @@ VIII. Options for Platform Configuration Files
 
 Below is the HDF518config.cmake ctest script with extra comments.
 Execute:
-       ctest -S HDF518config.cmake -C Release -V -O hdf518.log
+       ctest -S HDF518config.cmake,BUILD_GENERATOR=xxx -C Release -V -O hdf518.log
 The same scripts can be used on Linux, Mac OSX or a Windows machine by
 adding an option (${CTEST_SCRIPT_ARG}) to the platform configuration script.
 
 
-#########################################################################
-### For Windows ${CTEST_SCRIPT_ARG} is one of                         ###
-###    [64-VS2013, 32-VS2013, 64-VS2012, 32-VS2012]                   ###
-### ctest -S HDF518config.cmake,32-VS2012 -C Release -V -O hdf518.log ###
-#########################################################################
+#############################################################################################
+### ${CTEST_SCRIPT_ARG} is of the form OPTION=VALUE                                       ###
+### BUILD_GENERATOR required [Unix, VS2015, VS201564, VS2013, VS201364, VS2012, VS201264] ###
+### ctest -S HDF518config.cmake,BUILD_GENERATOR=VS201264 -C Release -V -O hdf518.log      ###
+#############################################################################################
 
 cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
-set(CTEST_SOURCE_VERSION 1.8.15-pre7)
-set(CTEST_SOURCE_NAME hdf5-${CTEST_SOURCE_VERSION})
+############################################################################
+# Usage:
+#     ctest -S HDF518config.cmake,OPTION=VALUE -C Release -VV -O test.log
+# where valid options for OPTION are:
+#     BUILD_GENERATOR - The cmake build generator:
+#            Unix    * Unix Makefiles
+#            VS2015    * Visual Studio 14 2015
+#            VS201564 * Visual Studio 14 2015 Win64
+#            VS2013    * Visual Studio 12 2013
+#            VS201364 * Visual Studio 12 2013 Win64
+#            VS2012    * Visual Studio 11 2012
+#            VS201264 * Visual Studio 11 2012 Win64
+#
+#     INSTALLDIR  -  root folder where hdf5 is installed
+#     CTEST_BUILD_CONFIGURATION  - Release, Debug, etc
+#     CTEST_SOURCE_NAME  -  source folder
+#     STATIC_LIBRARIES  -  Build/use static libraries
+#     FORTRAN_LIBRARIES -  Build/use fortran libraries
+#     NO_MAC_FORTRAN  - Yes to be SHARED on a Mac
+##############################################################################
+
+set(CTEST_SOURCE_VERSION 1.8.16)
+set(CTEST_SOURCE_VERSEXT "")
+
+##############################################################################
+# handle input parameters to script.
+#BUILD_GENERATOR - which CMake generator to use, required
+#INSTALLDIR - HDF5-1.8 root folder
+#CTEST_BUILD_CONFIGURATION - Release, Debug, RelWithDebInfo
+#CTEST_SOURCE_NAME - name of source folder; HDF5-1.8
+#STATIC_LIBRARIES - Default is YES
+#FORTRAN_LIBRARIES - Default is NO
+#NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac
+if(DEFINED CTEST_SCRIPT_ARG)
+    # transform ctest script arguments of the form
+    # script.ctest,var1=value1,var2=value2
+    # to variables with the respective names set to the respective values
+    string(REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
+    foreach(current_var ${script_args})
+        if ("${current_var}" MATCHES "^([^=]+)=(.+)$")
+            set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
+        endif()
+    endforeach()
+endif()
+
+# build generator must be defined
+if(NOT DEFINED BUILD_GENERATOR)
+  message(FATAL_ERROR "BUILD_GENERATOR must be defined - Unix, VS2013, VS201364, VS2012, or VS201264")
+else()
+  if(${BUILD_GENERATOR} STREQUAL "Unix")
+    set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2015")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 14 2015")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201564")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 14 2015 Win64")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2013")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201364")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2012")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201264")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64")
+  else()
+    message(FATAL_ERROR "Invalid BUILD_GENERATOR must be - Unix, VS2013, VS201364, VS2012, or VS201264")
+  endif()
+endif()
+
+if(NOT DEFINED INSTALLDIR)
+  if(WIN32)
+    set(INSTALLDIR "C:\\Program\ Files\\myhdf5")
+  else()
+    set(INSTALLDIR "/usr/local/myhdf5")
+  endif()
+endif()
+if(NOT DEFINED CTEST_BUILD_CONFIGURATION)
+    set(CTEST_BUILD_CONFIGURATION "Release")
+endif()
+if(NOT DEFINED CTEST_SOURCE_NAME)
+    set(CTEST_SOURCE_NAME "hdf5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}")
+endif()
+if(NOT DEFINED STATIC_LIBRARIES)
+    set(STATICLIBRARIES "YES")
+endif()
+if(NOT DEFINED FORTRAN_LIBRARIES)
+    set(FORTRANLIBRARIES "NO")
+endif()
+
 set(CTEST_BINARY_NAME "build")
 set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}")
 if(WIN32)
@@ -660,40 +750,30 @@ else()
 endif()
 
 ###################################################################
-### Following Line is one of [Release, RelWithDebInfo, Debug] #####
-set(CTEST_BUILD_CONFIGURATION "Release")
-###################################################################
-
-###################################################################
 #########       Following describes compiler           ############
 if(WIN32)
   set(SITE_OS_NAME "Windows")
   set(SITE_OS_VERSION "WIN7")
-  if(${CTEST_SCRIPT_ARG} STREQUAL "64-VS2013")
-    set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64")
+  if(${BUILD_GENERATOR} STREQUAL "VS201364")
     set(SITE_OS_BITS "64")
     set(SITE_COMPILER_NAME "vs2013")
     set(SITE_COMPILER_VERSION "12")
-  elseif(${CTEST_SCRIPT_ARG} STREQUAL "32-VS2013")
-    set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2013")
     set(SITE_OS_BITS "32")
     set(SITE_COMPILER_NAME "vs2013")
     set(SITE_COMPILER_VERSION "12")
-  elseif(${CTEST_SCRIPT_ARG} STREQUAL "64-VS2012")
-    set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201264")
     set(SITE_OS_BITS "64")
     set(SITE_COMPILER_NAME "vs2012")
     set(SITE_COMPILER_VERSION "11")
-  elseif(${CTEST_SCRIPT_ARG} STREQUAL "32-VS2012")
-    set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2012")
     set(SITE_OS_BITS "32")
     set(SITE_COMPILER_NAME "vs2012")
     set(SITE_COMPILER_VERSION "11")
   endif()
 ##  Set the following to unique id your computer  ##
-  set(CTEST_SITE "WIN7${CTEST_SCRIPT_ARG}.XXXX")
+  set(CTEST_SITE "WIN7${BUILD_GENERATOR}.XXXX")
 else()
-  set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
 ##  Set the following to unique id your computer  ##
   if(APPLE)
     set(CTEST_SITE "MAC.XXXX")
@@ -707,9 +787,6 @@ endif()
 #########       Following is for submission to CDash   ############
 ###################################################################
 set(MODEL "Experimental")
-#########       Following describes computer           ############
-## following is optional to describe build ##
-set(SITE_BUILDNAME_SUFFIX "STATIC")
 ###################################################################
 
 ###################################################################
@@ -723,19 +800,25 @@ set(SITE_BUILDNAME_SUFFIX "STATIC")
 #set(LOCAL_NO_PACKAGE "TRUE")
 #####       Following controls source update                  #####
 #set(LOCAL_UPDATE "TRUE")
-set(REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8")
+set(REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8_16")
 #uncomment to use a compressed source file: *.tar on linux or mac *.zip on windows
-#set(CTEST_USE_TAR_SOURCE "${CTEST_SOURCE_VERSION}")
+#set(CTEST_USE_TAR_SOURCE "${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}")
 ###################################################################
 
 ###################################################################
 ####  Change default configuration of options in config/cmake/cacheinit.cmake file ###
 ####  format: set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DXXX:YY=ZZZZ")
 
-### uncomment/comment and change the following lines for configuration options
+###################################################################
+if(${STATICLIBRARIES})
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
+  #########       Following describes computer           ############
+  ## following is optional to describe build                       ##
+  set(SITE_BUILDNAME_SUFFIX "STATIC")
+endif()
+###################################################################
 
-### comment the following line or change OFF to ON in order to build shared libraries
-set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
+### uncomment/comment and change the following lines for other configuration options
 
 ####      ext libraries       ####
 ### ext libs from tgz
@@ -750,10 +833,15 @@ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING
 #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
 #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
 ####      fortran       ####
-### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN
-set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON")
-### disable Fortran; change OFF to ON in order to build FORTRAN libraries
-set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
+if(${FORTRANLIBRARIES})
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=ON")
+  ### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON")
+else()
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
+  ### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=OFF")
+endif()
 
 ### disable test program builds
 #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF")
@@ -764,47 +852,47 @@ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
 set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")
 
 ### change install prefix
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=install")
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=${INSTALLDIR}")
 
 ###################################################################
 
 if(WIN32)
   include(${CTEST_SCRIPT_DIRECTORY}\\CTestScript.cmake)
-  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.exe")
-    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.exe" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.exe")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.exe" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
   endif()
-  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.msi")
-    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.msi" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.msi")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.msi" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
   endif()
-  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.zip")
-    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.zip" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.zip")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-win${SITE_OS_BITS}.zip" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
   endif()
 else()
   include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake)
   if(APPLE)
-    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg")
-      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.dmg")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
     endif()
-    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz")
-      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.tar.gz")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
     endif()
-    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh")
-      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.sh")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
     endif()
   else()
     if(CYGWIN)
-      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.sh")
-        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-CYGWIN.sh")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-CYGWIN.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
       endif()
-      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.tar.gz")
-        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-CYGWIN.tar.gz")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-CYGWIN.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
       endif()
     else()
-      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh")
-        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Linux.sh")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
       endif()
-      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz")
-        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Linux.tar.gz")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}${CTEST_SOURCE_VERSEXT}-Linux.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
       endif()
     endif()
   endif()
diff --git a/release_docs/INSTALL_Cygwin.txt b/release_docs/INSTALL_Cygwin.txt
index 56fc0ae..4c92e41 100644
--- a/release_docs/INSTALL_Cygwin.txt
+++ b/release_docs/INSTALL_Cygwin.txt
@@ -71,7 +71,7 @@ Preconditions:
        http://hdfgroup.org/HDF5/doc_resource/SZIP/index.html.
       
        The latest supported public release of SZIP is available from
-       ftp://ftp.hdfgroup.org/lib-external/szip/2.1. 
+       ftp://ftp.hdfgroup.org/lib-external/szip/2.1.
     
     2.3 Additional Utilities
     
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 9428eb2..9b70b8b 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -1,28 +1,37 @@
-HDF5 version 1.8.15-patch1 released on 2015-05-28
+HDF5 version 1.8.16 released on 2015-11-10
 ================================================================================
 
 INTRODUCTION
 ============
 
-Tnhis document describes the differences between HDF5-1.8.14 and 
-HDF5-1.8.15-patch1, and contains information on the platforms tested and 
-known problems in HDF5-1.8.15-patch1. 
+This document describes the differences between HDF5-1.8.15 and
+HDF5-1.8.16, and contains information on the platforms tested and
+known problems in HDF5-1.8.16.
+For more details, see the files HISTORY-1_0-1_8_0_rc3.txt
+and HISTORY-1_8.txt in the release_docs/ directory of the HDF5 source.
 
-Links to the HDF5 source code, documentation, and additional materials
+Links to the HDF5 1.8.16 source code, documentation, and additional materials
 can be found on the HDF5 web page at:
 
      http://www.hdfgroup.org/products/hdf5/
 
-The HDF5 release can be obtained from:
+The HDF5 1.8.16 release can be obtained from:
 
      http://www.hdfgroup.org/HDF5/release/obtain5.html
 
-User documentation for HDF5 can be accessed directly at this location: 
+User documentation for 1.8.16 can be accessed directly at this location:
 
      http://www.hdfgroup.org/HDF5/doc/
 
-All new and modified APIs are listed in detail in the "HDF5 Software Changes 
-from Release to Release" document at this location:
+New features in the HDF5-1.8.x release series, including brief general
+descriptions of some new and modified APIs, are described in the "What's New
+in 1.8.0?" document:
+
+     http://www.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html
+
+All new and modified APIs are listed in detail in the "HDF5 Software Changes
+from Release to Release" document, in the section "Release 1.8.16 (current
+release) versus Release 1.8.15":
 
      http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html
 
@@ -37,7 +46,6 @@ CONTENTS
 - New Features
 - Support for New Platforms, Languages, and Compilers
 - Bug Fixes since HDF5-1.8.15
-- Bug Fixes since HDF5-1.8.14
 - Supported Platforms
 - Supported Configuration Features Summary
 - More Tested Platforms
@@ -47,241 +55,182 @@ CONTENTS
 New Features
 ============
 
-    Configuration
+    Configuration and Build
     -------------
-    - CMake
-    
-      Improvements made to the CMake build system.
-        
-      The default options were changed to align with the Autotools configure
-      defaults. CMake configure files now support components when packaged
-      with CPack. Windows CPack supports WiX packaging, and will look for
-      WiX and NSIS in the standard locations. 
-      
-      The CMake minimum has been changed to 3.1.
-      
-      (ADB - 2015/04/01 HDFFV-8074, 8968, 9006)
-      
-    - cmakehdf5 for Cmake building.
-      Added configure options to support the building of Fortran or CXX API,
-      to enable/disable testings. Use "cmakehdf5 --help" for details.
-      (AKC - 2014/12/09 HDFFV-8932)
+    - The thread-safety + high-level library combination has been marked
+      as "unsupported" in the Autotools
 
-    - Building Shared and Parallel Made Explicit
+      The global lock used by the thread-safety feature has never been
+      raised to the high-level library level, making it possible that
+      the library state could change if a context switch were to occur in
+      a high-level library call. Because of this, the combination of
+      thread-safety and high-level library is officially unsupported by
+      The HDF Group.
 
-      When --enable-parallel is specified, configure used to disable
-      shared by default.
+      In the past, although this combination has never been supported, this
+      was not enforced by the build systems. These changes will cause an
+      Autotools configure step to fail if --enable-threadsafe and
+      --enable-hl are combined unless additional options are specified.
+      Since the high-level library is built by default, this means that
+      these extra configuration options will need to be used any time
+      --enable-threadsafe is selected.
 
-      Removed the restriction for building shared when parallel is
-      enabled. --disable-shared has to be used explicitly if user
-      wishes to disable shared libraries.
+      To build with --enable-threadsafe, either:
 
-      (MSC - 2015/02/19 HDFFV-9069)
+      1) Use --disable-hl to disable the high-level library (recommended)
 
-    - Inferring Parallel Compilers
+      2) Use --enable-unsupported to build the high-level library with
+         the thread-safety feature.
 
-      configure was trying to infer if a compiler is a parallel
-      compiler with MPI support and enable parallel even if the user
-      did not explicitly enable parallel. This should not happen.
+      (DER - 2015/09/10 HDFFV-8719)
 
-      Disabled inferring parallel compilers to enable parallel HDF5
-      build. --enable-parallel has to be used explicitly to build
-      parallel HDF5 regardless of the compiler type being used.
+    - Using CMake now builds both static and shared libraries.
 
-      (MSC - 2015/02/19 HDFFV-9068)
+      The CMake files have been updated to build both static and shared
+      libraries, with tools only built statically. The packaging of the
+      libraries and tools will include cmake-config files that allows
+      projects to choose either shared or static (default) libraries
+      to be found with the find_package command using the COMPONENTS
+      keyword and a list of components. The imported libraries will
+      include any interface specific settings and dependent libraries.
 
-    - Large File Support Configuration Option
-      
-      Removed the option to enable or disable large file support. It will
-      always be enabled.
-      
-      (MSC - 2015/02/19 HDFFV-9097)
+      The default setting for BUILD_SHARED_LIBS has changed from OFF
+      to ON, which builds both static and shared libraries. The static
+      libraries are always built because of tools requirements.
 
-    - Removed Configuration Feature
+      (ADB - 2015/08/24 HDFFV-5881)
 
-      When configure detected that the CodeWarrior compiler was being used it
-      would define a symbol that caused a test in test/tfile.c to be skipped
-      due to a broken CodeWarrior open() command.
+    - Inline functions now correctly annotated with Autotools builds.
 
-      Since this only masks the problem instead of fixing it and we don't
-      support CodeWarrior anyway, this functionality was removed.
+      The method used to detect the appropriate inline markup scheme was
+      nonfunctional in Autotools builds. The Autotools have been modified
+      to correctly detect the compiler's inline markup symbol and apply it
+      to the source. Note that only a very small number of internal
+      functions are marked inline so this was not a very big change or
+      likely to significantly affect performance.
 
-      (DER - 2015/02/21, HDFFV-9080)
+      As a part of this change, the H5_inline symbol no longer appears in
+      H5pubconf.h.
 
-    - VMS Build/Test Files Have Been Removed
+      (DER - 2015/08/13 HDFFV-9119, HDFFV-9421)
 
-      HDF5 no longer supports VMS, and the files were getting out of date.
-      Since we have no access to a VMS machine, there is no way for us to
-      maintain them.
+    - Removed obsolete/unmaintained files from config/
 
-      A Subversion tag was created at:
+      Several files were removed from the config directory. These files
+      represent old operating systems, were no longer necessary, and/or
+      were no longer maintained. configure.ac was updated to reflect the
+      removed files.
 
-        https://svn.hdfgroup.uiuc.edu/tags/vms_last_support_1_8
+      Removed:
 
-      immediately before removing the files.
+        craynv
+        dec-flags
+        hpux11.23
+        ia64-linux-gnu
+        nec-superux14.1
+        sv1-cray
+        x86_64-redstorm-linux-gnu
+        powerpc-ibm-aix5.x
 
-      (DER - 2015-02-26, HDFFV-9147)
+      As a part of this work, a few lines that deal with locating the
+      sys/fpu.h header on SGI machines and some OSF/1 configure lines
+      were also removed. The Solaris config was also renamed to not have
+      a version number since the version number was ignored by configure
+      as it applies to all Solaris versions.
 
-    - Removal of --with-default-vfd configure Option
+      (DER - 2015/09/04 HDFFV-9116)
 
-      In theory, this option was intended to allow setting a default
-      VFD that would be used by the library. In practice, the feature
-      only accepted the POSIX (SEC2) VFD (already the default) and
-      the stdio VFD (a demo VFD not intended for production use). The
-      inability to pass key VFD parameters at configure time limits the
-      full implementation of this feature, so it was retired.
+    - Removed the FP_TO_INTEGER_OVERFLOW_WORKS macro/defines from the library
 
-      (DER - 2015-02-26, HDFFV-9081)
+      This was for working around bugs in the Cray X1 compiler, which is no
+      longer supported.
 
-    - Direct VFD configure Behavior
+    (DER - 2015/09/09 HDFFV-9191)
 
-      The configure options for Linux now allow the Direct VFD to build
-      without passing additional compiler options/defines like _GNU_SOURCE.
-      Passing --enable-direct-vfd is now all that is needed to enable
-      the feature.
+    - Removed the H5_SW_ULONG_TO_FP_BOTTOM_BIT_WORKS and
+      H5_FP_TO_ULLONG_BOTTOM_BIT_WORKS symbols and associated code.
 
-      The Direct VFD is now disabled by default since it is intended for
-      specialized audiences. It was previously enabled by default, but the
-      configure script did not set correct POSIX levels, etc. making this
-      a moot point.
+      H5_SW_ULONG_TO_FP_BOTTOM_BIT_WORKS was a work-around on old 64-bit
+      SGI and Solaris systems.
 
-      Note that the Direct VFD can only be configured on Linux when
-      the O_DIRECT flag to open()/create() and posix_memalign() function
-      are available. This is unchanged from previous behavior.
+      H5_FP_TO_ULLONG_BOTTOM_BIT_WORKS was a work-around for old PGI
+      compilers on Linux.
 
-      (DER - 2015-02-26, HDFFV-9057, 7567, 9088, 7566)
+      Neither of these were used in any current library code and only appeared
+      in the dt_arith test.
 
-    - _POSIX_C_SOURCE, _GNU_SOURCE, and _BSD_SOURCE No Longer Exported 
-      to h5cc and Other Compiler Wrappers
+      (DER - 2015/09/09 HDFFV-9187)
 
-      The _POSIX_C_SOURCE, _GNU_SOURCE, and _BSD_SOURCE definitions are 
-      not required for using API functions and may conflict with user 
-      code requirements.
+    - Removed CONVERT_DENORMAL_FLOAT symbol and associated code from the
+      library.
 
-      (DER - 2015-03-08, HDFFV-9152)
+      This was only set in configure files for Cray and NEC computers. These
+      config files no longer exist so there is no effect on currently
+      supported platforms.
 
-    - Removed the --enable-filters Option from configure
+      (DER - 2015/09/09 HDFFV-9188)
 
-      This option allowed the user to disable selected internal filters,
-      presumably to make the library smaller. It has been removed since
-      it saved little space (the internal filters are small with respect
-      to the overall library size) and was not generally extendible to
-      the library at large due to the large number of #ifdefs that would
-      be required.
+    - Removed _BSD_SOURCE and _DEFAULT_SOURCE from configure.ac
 
-      Note that this features applied to internal filters such as shuffle
-      and n-bit and not external filters like gzip or Szip. Those are still
-      enabled or disabled via their own configure options.
+      These are old BSD-compatibility symbols that are no longer needed by
+      the library.
 
-      (DER - 2015-03-08, HDFFV-9086)
+      (DER - 2015/09/10 HDFFV-9079)
 
-    - Removed Obsolete Time Functionality from configure and the C Library
+    - Removed HW_FP_TO_LLONG_NOT_WORKS symbol and associated code from the
+      library.
 
-      The library contained some residual functionality from obsolete
-      time zone handling code. This has been removed, and the configure
-      checks for the time functions have been cleaned up.
+      This was part of a work-around for the VS.NET 2003 compiler, which is
+      no longer supported.
 
-      * Lumped all the time functionality together in configure.ac.
-        This was previously more spread out due to Solaris issues
-        with the ordering of certain checks.
+      (DER - 2015/09/10 HDFFV-9189)
 
-      * Removed processing that handles __tm_gmtoff members of struct
-        tm. (libc-4)
+    - Removed the BAD_LOG2_CODE_GENERATED symbol and associated code from the
+      library.
 
-      * Removed BSDgettimeofday(). (IRIX 5.3)
+      This was an IRIX work-around.
 
-      * Removed timezone struct handling in gettimeofday() (considered
-        harmful).
+      (DER - 2015/09/11 HDFFV-9195)
 
-      Note that the HDF5 Library stores timestamps in a platform-independent
-      manner, so old files can still be read. This only affects converting
-      system time to HDF5 timestamps.
+    - Decoupled shared object version numbers for wrapper libraries from the
+      shared object version number for the HDF5 library.  These will be
+      maintained on an individual basis according to the interface changes
+      specific to these wrapper libraries.
 
-      The library currently uses the tm_gmtoff member of the tm struct
-      (preferred, if available) or the timezone global variable to
-      construct HDF5 timestamps.
+      For HDF5 1.8.16 the shared object version numbers were changed from
+      10.0.1 to 10.1.0 for the HDF5 library due to added APIs. For the C++
+      wrapper library they were changed from 10.0.1 to 11.0.0 due to changes 
+      in existing APIs. For all other wrapper libraries the versions were 
+      changed from 10.0.1 to 10.0.2 because while the APIs had no changes
+      there have been changes in code that did not result in changes to their
+      interfaces.
 
-      (DER - 2015-03-09, HDFFV-9083 and 9085)
+      (LRK - 2015/10/28)
 
-    - Added -D_DEFAULT_SOURCE to CPPFLAGS on Linux Systems
+    Library
+    -------
 
-      This is the replacement for -D_BSD_SOURCE in versions of glibc since 2.19.
-      Since both are defined, it should work for all versions of glibc. Defining
-      both suppresses the warning about defining _BSD_SOURCE.
+    - H5F_ACC_DEBUG flag for H5Fopen/create: functionality removed
 
-      (NAF - 2015-04-02, HDFFV-9079)
+      The symbol was used to emit some extra debugging information
+      for HDF Group developers in the multi VFD. The underlying
+      functionality has been removed due to disuse. The symbol
+      remains defined since it was visible in H5Fpublic.h but it
+      has been set to zero and has no effect anywhere in the library.
 
-    Library
-    -------
-    - Added Memory Allocation Functions that Use the Library's Allocator
-
-      HDF5 filters may need to allocate or resize the buffer that is passed
-      to them from the library. If the filter has been compiled separately
-      from the library, it and the library may use different memory
-      allocation libraries for the (re)allocation and free calls. This can
-      cause heap corruption and crashes. This is particularly a problem on
-      Windows since each C run-time library is implemented as a separate
-      shared library, but can also show up on POSIX systems when debug or
-      high-performance allocation libraries are in use.
-
-      Two new functions (H5allocate_memory() and H5resize_memory()) were
-      added to the HDF5 C library. These functions have the same semantics as
-      malloc/calloc and realloc, respectively. Their primary purpose is to
-      allow filter authors to allocate or resize memory using the same
-      memory allocation library as the HDF5 library. Filter authors are
-      highly encouraged to use these new functions in place of malloc,
-      calloc, and realloc. They should also use the H5free_memory() call when
-      freeing memory.
-
-      Note that the filters provided with the library (zlib, szip, etc.) do
-      not experience the problems that these new functions are intended to
-      fix. This work only applies to third-party filters that are compiled
-      separately from the library.
-
-      (DER - 2015-04-01, HDFFV-9100)
- 
-    - H5Pset_istore_k and H5Pset_sym_k
-
-      These two functions didn't check the value of the input parameter "ik". 
-      When 2*ik exceeded 2 bytes of storage, data was lost in the file; 
-      for example, some chunks would be overwritten.  
-
-      Added validation of "ik" to not exceed the max v1 btree entries (2 bytes)
-      to these two routines.
-
-      (VC - 2015-03-24, HDFFV-9173)
-
-    - Added Functions to Control the Value of H5PL_no_plugin_g without 
-      Using an Environment Variable
-      
-      Sometimes it is necessary for an application to disable the use of 
-      dynamically loaded plugin libraries without requiring the library to 
-      be built with plugin support disabled or to set an environment 
-      variable to disable plugin support globally.
-      
-      Two new functions (H5PLset_loading_state() and H5PLget_loading_state())
-      were added to the HDF5 C Library. These functions require a parameter 
-      that indicates which type of dynamically loaded plugin is enabled or 
-      disabled.
-      
-      (ADB - 2015-03-17, HDFFV-8520)
-      
-    Parallel Library
-    ----------------
-    - MPI_Finalize and HDF5 Library Shutdown
+      (DER - 2015-05-02, HDFFV-1074)
 
-      Calling HDF5 routines after MPI_Finalize has been closed should
-      not be done, since those routines might call MPI functions that
-      would not be possible to do after finalizing the MPI library.
+    - New public API call: H5is_library_threadsafe()
 
-      Attached an attribute destroy callback to MPI_COMM_SELF that
-      shuts down the HDF5 library when MPI_COMM_SELF is destroyed,
-      in other words, on MPI_Finalize. This should fix several issues 
-      that users see when they forget to close HDF5 objects before 
-      calling MPI_Finalize().  
+      This API call indicates if the library was built with thread-
+      safety enabled.
+
+      (DER - 2015-09-01, HDFFV-9496)
+
+    Parallel Library
+    ----------------
+    - None
 
-      (MSC - 2015/02/25, HDFFV-883)
- 
     Tools
     -----
     - None
@@ -292,191 +241,101 @@ New Features
 
     Fortran API
     -----------
-    - Added Global Variables 
-    
-      These new global variables are equivalent to the C definitions 
-      without the '_F':
-      
-      H5G_UDLINK_F  
-      H5G_SAME_LOC_F
-      H5O_TYPE_UNKNOWN_F
-      H5O_TYPE_GROUP_F
-      H5O_TYPE_DATASET_F
-      H5O_NAMED_DATATYPE_F
-      H5O_TYPE_NTYPES_F
-      
-      (MSB - 2015/02/03, HDFFV-9040)
+    - None
 
 
     C++ API
     -------
-    - New Wrappers for C Functions H5P[s/g]et_libver_bounds
-
-      Wrappers were added to class H5::FileAccPropList for the 
-      C Functions H5Pget_libver_bounds and H5Pset_libver_bounds.
-
-      (BMR, 2015/04/06, Part of HDFFV-9167)
-
-    - New Wrappers to Get the Object Header's Version
+    - Class H5::ObjCreatPropList is added for the object creation property
+      list class.
 
-      The following wrappers are added to class H5::CommonFG
-      Returns the object header version of an object in a file or group,
-      given the object's name.
-      
-      unsigned childObjVersion(const char* objname) const;
-      unsigned childObjVersion(const H5std_string& objname) const;
+      Class H5::ObjCreatPropList is derived from H5::PropList and is a
+      baseclass of H5::DSetCreatPropList.  Additional property list classes
+      will be derived from H5::ObjCreatPropList when they are added to the
+      library in future releases.
 
-      (BMR, 2015/04/06)
+      (BMR, 2015/10/13, Part of HDFFV-9169)
 
-    - New DataType Constructor
+    - New Wrappers for C Functions H5P[s/g]et_attr_phase_change and
+      H5P[s/g]et_attr_creation_order.
 
-      Added a DataType constructor that takes a PredType object, and this
-      constructor will invoke H5Tcopy to generate another datatype id 
-      from a predefined datatype.
+      Wrappers were added to class H5::ObjCreatPropList for the C Functions
+      H5Pset_attr_phase_change:         H5::ObjCreatPropList::setAttrPhaseChange
+      H5Pget_attr_phase_change:         H5::ObjCreatPropList::getAttrPhaseChange
+      H5Pset_attr_creation_order:       H5::ObjCreatPropList::setAttrCrtOrder
+      H5Pget_attr_creation_order:       H5::ObjCreatPropList::getAttrCrtOrder
 
-      (BMR, 2015/04/06)
+      (BMR, 2015/10/13, Part of HDFFV-9167 and HDFFV-9169)
 
 
 Support for New Platforms, Languages, and Compilers
 ===================================================
-    - Support for Linux 3.10.0-123.20.1.el7 added (LK - 2015/04/01) 
-    - Support for Mac OS X Yosemite 10.10 added (AKC - 2015/03/04, HDFFV-9007)
-    - Support for AIX 6.1 added and AIX 5.3 is retired. (AKC - 2015/01/09)
+    - Added VS2015 with Intel Fortran 16 to supported Windows 7 platforms
 
 
 Bug Fixes since HDF5-1.8.15
 ===========================
-    Library
-    -------
-    - Reverted the change to the H5api_adpt.h (rev. 26678) that caused 
-      compilation errors for the C++ HDF5 applications. 
-     (EIP - 2015/05/28, HDFFV-9384)
-
-
-Bug Fixes since HDF5-1.8.14
-===========================
 
     Configuration
     -------------
-    - Make uninstall generated "test: argument expected".
-      The error is due to $EXAMPLETOPDIR is used without setting a value first.
 
-      Fixed by assign it with the proper value.
+    - CMake test for long long printf format improved
 
-      (AKC - 2015/04/29, HDFFV-9298) 
+      The CMake configuration test for determining the printf format string
+      for printing a long long integer was fixed. The test would crash
+      when executed with VS2015.
 
-    - Windows Installer Incorrect Display of PATH Environment Variable
-    
-      In the Windows installer, the dialog box where the user can elect to
-      add the product's bin path to the %PATH% environment variable displayed
-      an incorrect path. This path was missing the C:\Program Files part
-      and used the POSIX file separator '/' before the bin (<path>/bin,
-      instead of <path>\bin).
-      
-      The dialog box text was changed to simply say that the product's bin
-      path would be added instead of explicitly displaying the path.
-      This is in line with most installers. The reason for not fixing the 
-      displayed path instead is that it is difficult to pass the correct
-      path from CPack to the NSIS installer for display.
-
-      Note that this was never a code issue - it was just a display
-      problem. The installer always did the right thing when updating the
-      environment variable.
-
-      (DER - 2014/11/14, HDFFV-9016)
+      (ADB - 2015-10-21 HDFFV-9488)
 
     Library
     -------
-    - Incorrect Usage of List in CMake COMPILE_DEFINITIONS set_property
-    
-      The CMake command set_property with COMPILE_DEFINITIONS property
-      needs a quoted semi-colon separated list of values. CMake will
-      transform the list to a series of -D{value} for the compile.
-      
-      (ADB - 2014/12/09, HDFV-9041)
-      
-    - Fixed Compile Errors on Windows w/ Visual Studio and CMake When
-      UNICODE is Defined
-    
-      The HDF5 Library could not be built on Windows with Visual Studio when
-      UNICODE was defined. This was due to the incorrect use of the TEXT() 
-      macro and some Win32 API functions that take TCHAR parameters. The faulty
-      code was a part of the filter plugin functionality. This was a
-      compile-time error that only affected users who build HDF5 from source
-      and define UNICODE, usually when HDF5 is being built as a part of a
-      larger product. There were no run-time effects.
-      
-      These errors caused no problems when UNICODE was not defined. HDF5 is
-      normally not built with UNICODE defined and the binaries were
-      unaffected.
-      
-      The fix was to remove the TEXT() macro and explicitly use the
-      'A' form of the Win32 API calls, which expect char strings instead of
-      wchar_t strings.
-      
-      Note that HDF5 currently does not support Unicode file paths on Windows.
-      
-      (DER - 2015/02/22, HDFFV-8927)
-
-    - Addition of Error Tracing Functionality to Several C API Calls
-
-      A bug in a text processing script caused API calls that return a
-      pointer to not receive error tracing macros/functionality.
-
-      The bug has been corrected and error tracing functionality has been
-      added to the affected API calls. These functions will now correctly
-      print trace information when library errors are encountered.
-
-      (DER - 2015/02/26, HDFFV-9141)
-
-    - H5Rdereference Now Checks for HADDR_UNDEF or Uninitialized References
-
-      When passed HADDR_UNDEF or uninitialized references, the previous 
-      behavior of H5Rdereference was to continue to process the reference 
-      as a valid address. 
-      
-      H5Rdereference was changed to return immediately (with an error 
-      message) if the references are HADDR_UNDEF or uninitialized.
-
-      (MSB - 2015/3/10, HDFFV-7959)
-
-    - Fixed Bugs in H5Sextent_copy
-
-      H5Sextent_copy would not free the previous extent, resulting in a memory
-      leak.  Also, H5Sextent_copy would not update the number of elements
-      selected if the selection was "all", causing various problems.  These
-      issues have been fixed.
-
-      (NAF - 2015/04/02)
+    - VS2015 removed global variable timezone
 
+      The usage of the global variable timezone was modified for VS2015 by
+      adding an alias to Windows builds.
 
-    Parallel Library
-    ----------------
-    - Fixed a Potential Memory Error
-      
-      Fixed a potential memory error when performing parallel I/O on a 
-      dataset with a single chunk, and at least one process has nothing 
-      to do.
-      
-      (NAF - 2015/02/16)
+      (ADB - 2015-10-23 HDFFV-9550)
 
-    - Parallel Test Problem Fixed
-      
-      Fixed problem with parallel tests where they failed beyond a
-      certain number of ranks. All tests should work for any arbitrary
-      number of ranks. 
-      
-      (MSC - 2014/11/06, HDFFV-1027,8962,8963)
+    - Fix potential error in H5Iclear_type
 
-    - MPE Support
+      If the ID type's close callback could close another ID of the same type,
+      H5Iclear_type could occasionally run into problems due to the inner
+      workings of the skip list package.  This could potentially cause an
+      error on library shutdown without calling H5Iclear_type directly.  This
+      issue has been fixed.
 
-      Enabling MPE was causing HDF5 build to fail. Support for it was
-      dropped at some point in time.
+      (NAF - 2015-08-12)
 
-      Fixed problem with enabling MPE. Users should use the community
-      maintained MPE on github (http://git.mpich.org/mpe.git/). 
+    - Fix uninitialized memory in dataspace selection code
 
-      (MSC - 2015/02/20, HDFFV-9135)
+      When creating a dataspace with H5Screate and setting the extent with
+      H5Sextent_copy, the selection offset was not initialized, potentially
+      causing invalid I/O.  There may be other cases where this happened.
+      Modified the library to always initialize the offset.
+
+      (NAF - 2015-09-08)
+
+    - Truncate file in H5Fflush() if EOA != EOF to avoid file
+      corruption in certain scenarios
+
+      In the following scenario, the resulting HDF5 file would be
+      incorrectly corrupted because the truncate operation
+      was at some point wrongly moved out of the flush operation:
+          - Create a new file with a single dataset.
+          - Write parts of the dataset (make sure that some values at
+            the end of the dataset are not initialized).
+          - Flush the file.
+          - Crash the program.
+          - Try to open the file with h5dump or h5debug, but the
+            resulting file is corrupted.
+
+      (MSC - 2015-06-15 HDFFV-9418)
+
+
+    Parallel Library
+    ----------------
+    -
+      (XYZ - YYYY/MM/DD HDFFV-####)
 
     Performance
     -------------
@@ -484,181 +343,59 @@ Bug Fixes since HDF5-1.8.14
 
     Tools
     -----
-    - h5repack crashed on enumerated 8-bit type.
-
-      Previous version 1.8.14 introduced an error that caused the reading
-      of enumerated 8-bit type nested in compound type to fail.
+    - VS2015 changed the default format for printing of exponents
 
-      Fixed library code responsible for reading the particular type.
-      (AKC - 2015.03/31, HDFFV-8667)
+      VS2015 default format for exponents changed with the elimination
+      of the leading '0'. CMake now tests for the VS2015 compiler and
+      adjusts which reference files are used by tests.
 
-    - h52gif crashed non-8bit images.
+      (ADB - 2015-10-23 HDFFV-9550)
 
-      h52gif crashed if instructed to convert images other than 8bit images.
+    - Fixed h5repack with user-defined filters
 
-      h52gif could handle only 8bit images. Added code to detect non-8bit
-      images and flag them as failure.  Update tool document page to reflect
-      the limit.
-      (AKC - 2015/03/31, HDFFV-8957)
+      h5repack would throw a buffer overrun exception on Windows when
+      parsing a user-defined filter ID of 5 digits. A local variable in
+      the parse routine was not of sufficient size.
 
-    - perform/benchpar.c retired.
+      (ADB - 2015/09/01 HDFFV-9515)
 
-      benchpar.c has not been built for a long time and its original purpose
-      is not needed any more.
-      (AKC - 2014/12/19, HDFFV-8156)
-
-    - Source perform/ directory moved to tools/perform.
-      The perform directory is moved to tools/perform for easier maintenance.
-      (AKC - 2014/12/17, HDFFV-9046)
-      
     Fortran API
     ------------
-    - Fortran Fails with --enable-fortran2003 and Intel 15.x Compilers
-      
-      Added BIND(C) to the offending APIs. 
-
-      The Fortran Library (--enable-fortran2003) now works using Intel 15.x 
-      without the need for any additional compilers flags. 
-      
-      (MSB - 2015/1/26, HDFFV-9049)
-
-    - h5tenum_insert_f Does Not Work with Default 8 Byte Integers 
-      (xlf compiler)
-      
-      In the Fortran 90 API, 'value' is no longer cast into the C int type. 
-      Therefore, if h5tenum_insert_f is passed an 8 byte integer (via -i8) 
-      then 'value' is written as the same type as the default Fortran 
-      integer type (which can be 8 bytes).
-      
-      A new Fortran 2003 API was added which is more in line with the C 
-      API and users are strongly encouraged to use the Fortran 2003 API 
-      instead of the Fortran 90 API.
-
-      SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
-      INTEGER(HID_T)  , INTENT(IN) :: type_id
-      CHARACTER(LEN=*), INTENT(IN) :: name
-      TYPE(C_PTR)     , INTENT(IN) :: value
-      INTEGER, INTENT(OUT) :: hdferr
-
-      (MSB - 2015/2/19, HDFFV-8908)
-
-    - Some Fortran APIs Never Returned the Error State
-      
-      Some Fortran APIs never returned the error state: they 
-      would always return a positive number. The APIs include 
-      the following:
-      
-      h5fget_file_image_f
-      h5lget_name_by_idx_f
-      h5oget_comment_by_name_f
-
-      They were corrected to return a negative number as described in 
-      the Reference Manual if an error occurred. 
-
-      (MSB - 2015/3/19, HDF5-239)
-
-    - Fixed h5pget_class_f 
-
-      h5pget_class_f never correlated the class identifier to the property 
-      list class name as indicated in the HDF5 Reference Manual; it instead 
-      returned a property list class identifier as an INTEGER. The INTEGER 
-      needed to be of type INTEGER(HID_T) to be correct.
-
-      The h5pget_class_f API was changed to return an INTEGER(HID_T) 
-      property list class identifier instead of an INTEGER. This mimics the 
-      intended behavior of the C API.
-
-      (MSB - 2015/3/16, HDFFV5-9162)
+    - None
+
 
     C++ API
     ------
-    - Combined Two H5File::getObjCount Overloaded Methods
-
-      The following two methods
-      
-      ssize_t getObjCount(unsigned types) const;
-      ssize_t getObjCount() const;
-      
-      were combined into one:
-      
-      ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const;
-
-      (BMR - 2015/04/06)
+    - Removed memory leaks
 
-    - Many Warnings Were Removed
+      The static global constant objects were changed to constant references
+      referencing dynamically allocated objects.  This ensures that the clean-up
+      process in the C++ library occurs before the termination of the C library
+      and prevents memory leaks because the previous global constants were not
+      properly deleted before the C library termination.
 
-      Many warnings such as conversion, unused variables, missing base
-      class initialization, and initializing base classes in wrong order 
-      were removed.
+      (BMR, 2015/10/13, HDFFV-9529)
 
-      (BMR, 2015/04/06)
+    - Fixed the problem about identifiers being closed prematurely.
 
-    - Functionality Deprecation
+      The C++ library needs to increment the ID's reference counter when it is
+      duplicated in the form of C++ objects, but not when the ID is obtained
+      from a C function.  With this approach, both problems, prematurely
+      closing ID's and memory leaks due to ID's not being closed, should be
+      eliminated.
 
-      The following two constructors of classes AbstractDs, IdComponent,
-      H5Location, and H5Object are no longer appropriate after the data member
-      "id" had been moved from IdComponent to the sub-classes in previous
-      releases.
-      
-      <Classname>(const hid_t h5_id);
-      <Classname>(const <Classname>& original);
-      
-      The copy constructors were no-op and removed in 1.8.15.  The other
-      constructors will be removed from 1.10 release, and then from 1.8.17
-      if their removal does not cause any problems.
-
-      (BMR, 2015-04-06)
+      (BMR, 2015/10/15, HDFFV-7947)
 
 
     High-Level APIs:
     ------
-    - Suppress Warnings from Flex/Bison-generated Code
-
-      Warning suppression #pragmas, etc. have been added to H5LTparse.c and
-      H5LTanalyze.c. We have no control over this code since it's created by
-      a generator.
-
-      (DER - 2015/03/08 - HDFFV-9149)
-
-    - Changed hdf5_hl.h to Include the HDF5 Main Library "hdf5.h"
-
-      User's no longer need to include both hdf5_hl.h and hdf5.h
-
-      (MSB - 2015/2/14, HDFFV-8685)
-
-   
-    - H5PTcreate_fl Does Not Convert to Memory Datatype
-
-      H5PTcreate_fl now converts to the table's native memory datatype 
-      to fix the problem of handling BE and LE packet tables.
-
-      (MSB - 2015/2/26 - HDFFV-9042)
-
-    - Fix for H5LT Attribute Functions
-      
-      H5LT attribute functions fail to create attributes whose name 
-      is a substring of an existing attribute.
-
-      H5LT attribute functions can now create attributes whose name 
-      is a substring of an existing attribute.
+    - None
 
-      (MSB - 2015/2/24, HDFFV-9132)
-    
 
     Fortran High-Level APIs:
     ------------------------
+    - None
 
-    - Internal Library Fix for Missing Argument Declaration
-    
-      In Interface block for h5tbmake_table_c, "max_char_size_field_names" 
-      is listed as an input, but in the argument definitions it is 
-      "INTEGER :: max_char_size". This caused no known problems with the 
-      Fortran HL API.
-
-      Fixed missing argument definition.
-       
-      (MSB - 2015/2/18, HDFFV-8559)
-      
 
     Testing
     -------
@@ -674,65 +411,47 @@ They are built with the configure process unless specified otherwise.
     (NASA G-ADA)                  xlC/xlC_r 10.1.0.5
                                   xlf90/xlf90_r 12.1.0.6
 
-    Linux 2.6.18-308.13.1.el5PAE  GNU C (gcc), Fortran (gfortran), C++ (g++)
-    #1 SMP i686 i686 i386         compilers for 32-bit applications;
-    (jam)                             Version 4.1.2 20080704 (Red Hat 4.1.2-55)
-                                      Version 4.8.4, 4.9.2
-                                  PGI C, Fortran, C++ Compilers for 32-bit
-                                  applications;
-                                      Version 15.4-0
-                                  Intel(R) C, C++, Fortran Compiler for 32-bit
-                                  applications;
-                                      Version 15.0.1.133 (Build 20141023)
-
-    Linux 2.6.18-371.6.1.el5      GNU C (gcc), Fortran (gfortran), C++ (g++)
-    #1 SMP x86_64 GNU/Linux       compilers for 64-bit applications;
-    (koala)                           Version 4.1.2 20080704 (Red Hat 4.1.2-55)
-                                      Version 4.8.4, 4.9.2
-                                  Intel(R) C, C++, Fortran Compilers for 
-                                  applications running on Intel(R) 64; 
-                                      Version 15.0.1.133 Build 20141023
-
-    Linux 2.6.32-431.11.2.el6     GNU C (gcc), Fortran (gfortran), C++ (g++)
+    Linux 2.6.32-573.3.1.el6    GNU C (gcc), Fortran (gfortran), C++ (g++)
     #1 SMP x86_64 GNU/Linux       compilers:
     (platypus)                       Version 4.4.7 20120313
-                                     Version 4.8.2, Version 4.9.2
-                                  PGI C, Fortran, C++ for 64-bit target on 
+                                     Version 4.8.4, Version 5.2.0
+                                  PGI C, Fortran, C++ for 64-bit target on
                                   x86-64;
-                                      Version 15.4-0
+                                      Version 15.7-0
                                   Intel(R) C (icc), C++ (icpc), Fortran (icc)
                                   compilers:
-                                     Version 15.0.1.133 Build 20141023
+                                     Version 15.0.3.187 Build 20150407
+                                  MPICH 3.1.4 compiled with GCC 4.9.3
 
-    Linux 3.10.0-123.20.1.el7     GNU C (gcc), Fortran (gfortran), C++ (g++)
-    #1 SMP x86_64 GNU/Linux       compilers:
-    (moohan)                         Version 4.8.2 20140120 (Red Hat 4.8.2-16)
-                                  Intel(R) C Intel(R) 64 Compiler XE for
-                                  applications running on Intel(R) 64, 
-                                     Version 15.0.1.133 Build 20141023
-
-    Linux 2.6.32-431.29.2.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
-    #1 SMP ppc64 GNU/Linux        g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
-    (ostrich)                     GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
+    Linux 2.6.32-504.8.1.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
+    #1 SMP ppc64 GNU/Linux        g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
+    (ostrich)                     GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
                                   IBM XL C/C++ V13.1
                                   IBM XL Fortran V15.1
 
+    Linux 3.10.0-229.14.1.el7   GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP x86_64 GNU/Linux       compilers:
+    (kituo/moohan)                  Version 4.8.3 20140911 (Red Hat 4.8.3-9)
+                                    Version 5.2.0
+                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
+                                  compilers:
+                                     Version 15.0.3.187 Build 20150407
+                                  MPICH 3.1.4 compiled with GCC 4.9.3
+
     SunOS 5.11 32- and 64-bit     Sun C 5.12 SunOS_sparc
     (emu)                         Sun Fortran 95 8.6 SunOS_sparc
                                   Sun C++ 5.12 SunOS_sparc
 
-    Windows 7                     Visual Studio 2008  (cmake)
-                                  Visual Studio 2010 w/ Intel Fortran 14 (cmake)
-                                  Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+    Windows 7                     Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                   Visual Studio 2013 w/ Intel Fortran 15 (cmake)
-                                  Cygwin(CYGWIN_NT-6.1 1.7.34(0.285/5/3) gcc(4.9.2) compiler and gfortran)
+                                  Visual Studio 2015 w/ Intel Fortran 16 (cmake)
+                                  Cygwin(CYGWIN_NT-6.1 2.2.1(0.289/5/3) gcc(4.9.3) compiler and gfortran)
                                   (cmake and autotools)
 
-    Windows 7 x64                 Visual Studio 2008  (cmake)
-                                  Visual Studio 2010 w/ Intel Fortran 14 (cmake)
-                                  Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+    Windows 7 x64                 Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                   Visual Studio 2013 w/ Intel Fortran 15 (cmake)
-                                  
+                                  Visual Studio 2015 w/ Intel Fortran 16 (cmake)
+
     Windows 8.1                   Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                   Visual Studio 2013 w/ Intel Fortran 15 (cmake)
 
@@ -741,29 +460,29 @@ They are built with the configure process unless specified otherwise.
 
     Mac OS X Mt. Lion 10.8.5      Apple clang/clang++ version 5.1 from Xcode 5.1
     64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
-    (swallow/kite)                Intel icc/icpc/ifort version 14.0.2
+    (swallow/kite)                Intel icc/icpc/ifort version 15.0.3
 
-    Mac OS X Mavericks 10.9.5     Apple clang/clang++ version 6.0 from Xcode 6.1.1
-    64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
-    (wren/quail)                  Intel icc/icpc/ifort version 14.0.2
+    Mac OS X Mavericks 10.9.5     Apple clang/clang++ version 6.0 from Xcode 6.2.0
+    64-bit    			  gfortran GNU Fortran (GCC) 4.9.2
+    (wren/quail)                  Intel icc/icpc/ifort version 15.0.3
 
-    Mac OS X Yosemite 10.10.2     Apple clang/clang++ version 6.0 from Xcode 6.1.1
+    Mac OS X Yosemite 10.10.5     Apple clang/clang++ version 6.0 from Xcode 7.0.0
     64-bit    			  gfortran GNU Fortran (GCC) 4.9.2
-    (osx1010dev/osx1010test)      Intel icc/icpc/ifort version 15.0.1
+    (osx1010dev/osx1010test)      Intel icc/icpc/ifort version 15.0.3
 
 
 Tested Configuration Features Summary
 =====================================
 
     In the tables below
-          y   = tested 
+          y   = tested
           n   = not tested in this release
           C   = Cluster
           W   = Workstation
           x   = not working in this release
           dna = does not apply
           ( ) = footnote appears below second table
-          <blank> = testing incomplete on this feature or platform 
+          <blank> = testing incomplete on this feature or platform
 
 Platform                              C         F90/   F90      C++  zlib  SZIP
                                       parallel  F2003  parallel
@@ -771,49 +490,39 @@ SunOS 5.11 32-bit                       n        y/y    n        y    y     y
 SunOS 5.11 64-bit                       n        y/y    n        y    y     y
 Windows 7                               y        y/y    n        y    y     y
 Windows 7 x64                           y        y/y    n        y    y     y
-Windows 7 Cygwin                        n        y/y    n        y    y     n 
+Windows 7 Cygwin                        n        y/y    n        y    y     n
 Windows 8.1                             n        y/y    n        y    y     y
 Windows 8.1 x64                         n        y/y    n        y    y     y
 Mac OS X Mountain Lion 10.8.5 64-bit    n        y/y    n        y    y     y
 Mac OS X Mavericks 10.9.5 64-bit        n        y/y    n        y    y     y
-Mac OS X Yosemeti 10.10.2 64-bit        n        y/y    n        y    y     y
+Mac OS X Yosemeti 10.10.5 64-bit        n        y/y    n        y    y     y
 AIX 6.1 32- and 64-bit                  n        y/n    n        y    y     y
-CentOS 5.9 Linux 2.6.18-308 i686 GNU    y        y/y    y        y    y     y
-CentOS 5.9 Linux 2.6.18-308 i686 Intel  n        y/y    n        y    y     y
-CentOS 5.9 Linux 2.6.18-308 i686 PGI    n        y/y    n        y    y     y
-CentOS 5.9 Linux 2.6.18 x86_64 GNU      n        y/y    n        y    y     y
-CentOS 5.9 Linux 2.6.18 x86_64 Intel    n        y/y    n        y    y     y
-CentOS 6.4 Linux 2.6.32 x86_64 GNU      y        y/y    y        y    y     y
-CentOS 6.4 Linux 2.6.32 x86_64 Intel    n        y/y    n        y    y     y
-CentOS 6.4 Linux 2.6.32 x86_64 PGI      n        y/y    n        y    y     y
-CentOS 7.0 Linux 3.10.0 x86_64 GNU      y        y/y    y        y    y     y
-CentOS 7.0 Linux 3.10.0 x86_64 Intel    n        y/y    n        y    y     y
+CentOS 6.7 Linux 2.6.32 x86_64 GNU      y        y/y    y        y    y     y
+CentOS 6.7 Linux 2.6.32 x86_64 Intel    n        y/y    n        y    y     y
+CentOS 6.7 Linux 2.6.32 x86_64 PGI      n        y/y    n        y    y     y
+CentOS 7.1 Linux 3.10.0 x86_64 GNU      y        y/y    y        y    y     y
+CentOS 7.1 Linux 3.10.0 x86_64 Intel    n        y/y    n        y    y     y
 Linux 2.6.32-431.11.2.el6.ppc64         n        y/n    n        y    y     y
 
-Platform                                 Shared  Shared    Shared    Thread-  
-                                         C libs  F90 libs  C++ libs  safe     
-SunOS 5.11 32-bit                          y       y         y         y        
-SunOS 5.11 64-bit                          y       y         y         y        
+Platform                                 Shared  Shared    Shared    Thread-
+                                         C libs  F90 libs  C++ libs  safe
+SunOS 5.11 32-bit                          y       y         y         y
+SunOS 5.11 64-bit                          y       y         y         y
 Windows 7                                  y       y         y         y
 Windows 7 x64                              y       y         y         y
 Windows 7 Cygwin                           n       n         n         y
 Windows 8.1                                y       y         y         y
 Windows 8.1 x64                            y       y         y         y
-Mac OS X Mountain Lion 10.8.5 64-bit       y       n         y         y        
+Mac OS X Mountain Lion 10.8.5 64-bit       y       n         y         y
 Mac OS X Mavericks 10.9.5 64-bit           y       n         y         y
-Mac OS X Yosemeti 10.10.2 64-bit           y       n         y         y
-AIX 6.1 32- and 64-bit                     y       n         n         y        
-CentOS 5.9 Linux 2.6.18-308 i686 GNU       y       y         y         y        
-CentOS 5.9 Linux 2.6.18-308 i686 Intel     y       y         y         n        
-CentOS 5.9 Linux 2.6.18-308 i686 PGI       y       y         y         n        
-CentOS 5.9 Linux 2.6.18 x86_64 GNU         y       y         y         y        
-CentOS 5.9 Linux 2.6.18 x86_64 Intel       y       y         y         n        
-CentOS 6.4 Linux 2.6.32 x86_64 GNU         y       y         y         n
-CentOS 6.4 Linux 2.6.32 x86_64 Intel       y       y         y         n
-CentOS 6.4 Linux 2.6.32 x86_64 PGI         y       y         y         n     
-CentOS 7.0 Linux 3.10.0 x86_64 GNU         y       y         y         n
-CentOS 7.0 Linux 3.10.0 x86_64 Intel       y       y         y         n
-Linux 2.6.32-431.11.2.el6.ppc64            y       y         y         n 
+Mac OS X Yosemeti 10.10.5 64-bit           y       n         y         y
+AIX 6.1 32- and 64-bit                     y       n         n         y
+CentOS 6.7 Linux 2.6.32 x86_64 GNU         y       y         y         y
+CentOS 6.7 Linux 2.6.32 x86_64 Intel       y       y         y         y
+CentOS 6.7 Linux 2.6.32 x86_64 PGI         y       y         y         y
+CentOS 7.1 Linux 3.10.0 x86_64 GNU         y       y         y         y
+CentOS 7.1 Linux 3.10.0 x86_64 Intel       y       y         y         y
+Linux 2.6.32-431.11.2.el6.ppc64            y       y         y         y
 
 Compiler versions for each platform are listed in the preceding
 "Supported Platforms" table.
@@ -823,23 +532,21 @@ More Tested Platforms
 =====================
 The following platforms are not supported but have been tested for this release.
 
-    Linux 2.6.18-308.13.1.el5PAE  MPICH mpich 3.1.3 compiled with
-    #1 SMP i686 i686 i386             gcc 4.9.2 and gfortran 4.9.2
-    (jam)                         g95 (GCC 4.0.3 (g95 0.94!)
+    Linux 2.6.18-431.11.2.el6     g95 (GCC 4.0.3 (g95 0.94!)
+    #1 SMP x86_64 GNU/Linux
+    (platypus)
 
-    Linux 2.6.18-431.11.2.el6     MPICH mpich 3.1.3 compiled with
-    #1 SMP x86_64 GNU/Linux           gcc 4.9.2 and gfortran 4.9.2
-    (platypus)                    g95 (GCC 4.0.3 (g95 0.94!)   
+    Mac OS X El Capitan 10.11     Apple clang/clang++ version 7.0.0 from Xcode 7.0.1
+    64-bit    			  gfortran GNU Fortran (GCC) 5.2.0
+    (VM)
 
-    FreeBSD 8.2-STABLE i386       gcc 4.5.4 [FreeBSD] 20110526
-    (loyalty)                     gcc 4.6.1 20110527
-                                  g++ 4.6.1 20110527
-                                  gfortran 4.6.1 20110527
+    Windows 7                     Visual Studio 2008  (cmake)
+
+    Windows 7 x64                 Visual Studio 2008  (cmake)
 
-    FreeBSD 8.2-STABLE amd64      gcc 4.5.4 [FreeBSD] 20110526
-    (freedom)                     gcc 4.6.1 20110527
-                                  g++ 4.6.1 20110527
-                                  gfortran 4.6.1 20110527
+    Windows 10                    Visual Studio 2013 w/ Intel Fortran 15 (cmake)
+
+    Windows 10 x64                Visual Studio 2013 w/ Intel Fortran 15 (cmake)
 
     Debian7.5.0 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux
                                   gcc (Debian 4.7.2-5) 4.7.2
@@ -860,7 +567,7 @@ The following platforms are not supported but have been tested for this release.
                                   gcc (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
                                   GNU Fortran (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
                                   (cmake and autotools)
-    
+
     hopper.nersc.gov              PrgEnv-gnu/5.2.40
                                   gcc (GCC) 4.9.2 20141030 (Cray Inc.)
                                   GNU Fortran (GCC) 4.9.2 20141030 (Cray Inc.)
@@ -870,7 +577,7 @@ The following platforms are not supported but have been tested for this release.
 Known Problems
 ==============
 * On Windows platforms in debug configurations, the VFD flush1 tests will fail
-  with the split and multi VFD drivers. These tests will display a modal debug 
+  with the split and multi VFD drivers. These tests will display a modal debug
   dialog which must be answered or wait for the test timeout to expire.
   (ADB - 2014/06/23 - HDFFV-8851)
 
@@ -894,7 +601,7 @@ Known Problems
 
    h5dump --no-compact-subset -d "AHFINDERDIRECT::ah_centroid_t[0] it=0 tl=0"
      tno-subset.h5
-  
+
   This is due to the embedded spaces in the dataset name being interpreted
   by the command script launcher as meta-characters, thus passing three
   arguments to h5dump's -d flag. The command passes if run by hand, just
@@ -921,7 +628,7 @@ Known Problems
   that "make prefix=XXX install" no longer works for shared libraries. It
   still works correctly for static libraries. Therefore, if you want to
   install the HDF5 shared libraries in a location such as /usr/local/hdf5,
-  you need to specify the location via the --prefix option during configure 
+  you need to specify the location via the --prefix option during configure
   time. E.g, ./configure --prefix=/usr/local/hdf5 ...
   (AKC - 2011/05/07 - HDFFV-7583)
 
@@ -929,16 +636,16 @@ Known Problems
   be terminated by the alarm signal.  If that happens, one can increase the
   alarm seconds (default is 1200 seconds = 20 minutes) by setting the
   environment variable, $HDF5_ALARM_SECONDS, to a larger value such as 3600
-  (60 minutes).  Note that the t_shapesame test may fail in some systems 
-  (see the "While working on the 1.8.6 release..." problem below).  If 
+  (60 minutes).  Note that the t_shapesame test may fail in some systems
+  (see the "While working on the 1.8.6 release..." problem below).  If
   it does, it will waste more time if $HDF5_ALARM_SECONDS is set
   to a larger value.
   (AKC - 2011/05/07)
 
 * Shared Fortran libraries are not quite working on AIX. While they are
-  generated when --enable-shared is specified, the fortran and hl/fortran
-  tests fail. the issue. HL and C++ shared libraries should now be 
-  working as intended, however.
+  generated when --enable-shared is specified, the Fortran and HL/Fortran
+  tests fail. HL and C++ shared libraries should now be working as intended,
+  however.
   (MAM - 2011/04/20)
 
 * While working on the 1.8.6 release of HDF5, a bug was discovered that can
@@ -954,31 +661,31 @@ Known Problems
   http://www.hdfgroup.org/ftp/HDF5/examples/known_problems/
   (NAF - 2011/01/19)
 
-* All the VFL drivers aren't backward compatible.  In H5FDpublic.h, the
+* All of the VFL drivers aren't backward compatible.  In H5FDpublic.h, the
   structure H5FD_class_t changed in 1.8.  There is new parameter added to
   get_eoa and set_eoa callback functions.  A new callback function
   get_type_map was added in.  The public function H5FDrealloc was taken
   out in 1.8.  The problem only happens when users define their own driver
-  for 1.6 and try to plug in 1.8 library.  Because there's only one user 
-  complaining about it, we (Elena, Quincey, and I) decided to leave it as 
+  for 1.6 and try to plug in 1.8 library.  Because there's only one user
+  complaining about it, we (Elena, Quincey, and I) decided to leave it as
   it is (see bug report #1279).  Quincey will make a plan for 1.10.
   (SLU - 2010/02/02)
 
 * The --enable-static-exec configure flag will only statically link libraries
   if the static version of that library is present. If only the shared version
   of a library exists (i.e., most system libraries on Solaris, AIX, and Mac,
-  for example, only have shared versions), the flag should still result in a 
-  successful compilation, but note that the installed executables will not be 
-  fully static. Thus, the only guarantee on these systems is that the 
+  for example, only have shared versions), the flag should still result in a
+  successful compilation, but note that the installed executables will not be
+  fully static. Thus, the only guarantee on these systems is that the
   executable is statically linked with just the HDF5 library.
   (MAM - 2009/11/04)
-  
-* A dataset created or rewritten with a v1.6.3 library or after cannot be read 
+
+* A dataset created or rewritten with a v1.6.3 library or after cannot be read
   with the v1.6.2 library or before when the Fletcher32 EDC filter is enabled.
-  There was a bug in the calculation of the Fletcher32 checksum in the 
+  There was a bug in the calculation of the Fletcher32 checksum in the
   library before v1.6.3; the checksum value was not consistent between big-
-  endian and little-endian systems.  This bug was fixed in Release 1.6.3.  
-  However, after fixing the bug, the checksum value was no longer the same as 
-  before on little-endian system.  Library releases after 1.6.4 can still read 
-  datasets created or rewritten with an HDF5 library of v1.6.2 or before.  
+  endian and little-endian systems.  This bug was fixed in Release 1.6.3.
+  However, after fixing the bug, the checksum value was no longer the same as
+  before on little-endian systems. Library releases after 1.6.4 can still read
+  datasets created or rewritten with an HDF5 library of v1.6.2 or before.
   (SLU - 2005/06/30)
diff --git a/release_docs/USING_CMake_Examples.txt b/release_docs/USING_CMake_Examples.txt
index 0956ff1..ae46877 100644
--- a/release_docs/USING_CMake_Examples.txt
+++ b/release_docs/USING_CMake_Examples.txt
@@ -2,38 +2,33 @@
 * Build and Test HDF5 Examples with CMake                              *
 ************************************************************************
 
-Notes: This short instruction is written for users who want to quickly 
+Notes: This short instruction is written for users who want to quickly
        test the installation of HDF5 by using the CMake tools to build
        and test the HDF5 Examples. The following instructions will show
        the default usage and then present common changes for non-default
        installations.
        For more information, see the USING_HDF5_CMake.txt file.
-       
-       More information about using CMake can be found at the KitWare 
+
+       More information about using CMake can be found at the KitWare
        site, www.cmake.org.
-         
+
        CMake uses the command line and these instructions use the script
        method of the ctest command.
 
 
 ========================================================================
-I. Preconditions                                                           
+I. Preconditions
 ========================================================================
 
    1. We suggest you obtain the latest CMake for windows from the Kitware
-      web site. The HDF5 1.8.x product requires a minimum CMake version 
-      of 3.1.0.                     
-                                                                         
-   2. You have installed the HDF5 library built with CMake, by executing 
-      the HDF Install Utility (the *.exe file in the binary package for 
-      Windows or the *.sh on Linux). If you are using a Windows platform, 
-      you can obtain a pre-built Windows binary from The HDF Group's website 
-      at www.hdfgroup.org. See Section "III. Common changes to the 
-      HDF518_Examples.cmake file", for the line to change the location.
-                                                                         
-   3. On Windows, you have installed the 7Zip package. See Section "III. 
-      Common changes to the HDF518_Examples.cmake file", for the line to 
-      change the command.
+      web site. The HDF5 1.8.x product requires a minimum CMake version
+      of 3.1.0.
+
+   2. You have installed the HDF5 library built with CMake, by executing
+      the HDF Install Utility (the *.msi file in the binary package for
+      Windows or the *.sh on Linux). If you are using a Windows platform,
+      you can obtain a pre-built Windows binary from The HDF Group's website
+      at www.hdfgroup.org.
 
 
 
@@ -42,42 +37,39 @@ II. Building HDF5 Examples with CMake
 ========================================================================
 
 Files in the HDF5 install directory:
-       HDF5Examples-0.1.1-Source.zip (or HDF5Examples-0.1.1-Source.tar.gz)
+       HDF5Examples folder
        HDF518_Examples.cmake
-       
+
 Default installation process:
        Create a directory to run the examples, i.e. \test_hdf5.
-       Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, uncompress.
-       Copy HDF518_Examples.cmake to this directory.
-       Edit line 8 of the HDF518_Examples.cmake file and change the INSTALLDIR 
-           to the HDF5 install location.
-       
-       Execute from this directory:
-          ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log
-
-The script will use the examples folder HDF5Examples-0.1.1-Source,
-   and create a build directory inside the HDF5Examples-0.1.1-Source directory.
-   It will then configure, build, and execute the examples. All the log files
-   will be found under the build\Testing\Temporary directory, check these for
-   errors.
-   
-The amount of script information can be increased by adding -V to the ctest
-   command. Even more information can be shown by adding -VV instead of -V.
+       Copy HDF5Examples folder to this directory.
+       Copy HDF5_Examples.cmake to this directory.
+       The default source folder is defined as "HDF5Examples". It can be changed
+           with the CTEST_SOURCE_NAME script option.
+       The default installation folder is defined as "@CMAKE_INSTALL_PREFIX@".
+           It can be changed with the INSTALLDIR script option.
+       The default ctest configuration is defined as "Release". It can be changed
+           with the CTEST_BUILD_CONFIGURATION script option. Note that this must
+           be the same as the value used with the -C command line option.
+       The default build configuration is defined to build and use static libraries.
+           Shared libraries can be used with the STATIC_LIBRARIES script option set to "NO".
+       Other options can be changed by editing the HDF518_Examples.cmake file.
+
+       If the defaults are okay, execute from this directory:
+           ctest -S HDF518_Examples.cmake -C Release -V -O test.log
+       If the defaults need change, execute from this directory:
+           ctest -S HDF518_Examples.cmake,CTEST_SOURCE_NAME=MyExamples,INSTALLDIR=MyLocation -C Release -V -O test.log
+
+    When executed, the ctest script will save the results to the log file, test.log, as
+    indicated by the ctest command. If you wish the to see more build and test information,
+    add "-VV" to the ctest command. The output should show;
+          100% tests passed, 0 tests failed out of 156.
 
 
 ========================================================================
-III. Common changes to the HDF518_Examples.cmake file
+III. Other changes to the HDF518_Examples.cmake file
 ========================================================================
 
-Line 8: change the INSTALLDIR to a different HDF5 install location.
-
-Line 14: uncomment to allow Mac machines to build shared examples.
-
-Line 15: uncomment to build and test Fortran examples.
-
-Line 16: comment to NOT build and test Fortran examples with F2003 option.
-
-Line 17: uncomment to use a compressed source file.
-
-Line 71: change the CTEST_7Z_COMMAND to a different unzip program.
+Line 45-48: uncomment to use a source tarball or zipfile;
+     Add script option "TAR_SOURCE=MySource.tar".
 
diff --git a/release_docs/USING_HDF5_CMake.txt b/release_docs/USING_HDF5_CMake.txt
index 514cced..7c4a36f 100644
--- a/release_docs/USING_HDF5_CMake.txt
+++ b/release_docs/USING_HDF5_CMake.txt
@@ -2,60 +2,60 @@
 * Build and Install HDF5 Applications with CMake                       *
 ************************************************************************
 
-Notes: This short instruction is written for users who want to quickly 
-       build HDF5 applications using the CMake tools. Users can adapt 
-       these instructions for their own applications. For more information, 
+Notes: This short instruction is written for users who want to quickly
+       build HDF5 applications using the CMake tools. Users can adapt
+       these instructions for their own applications. For more information,
        see the "Minimum C Project Files for CMake" section.
-       
-       More information about using CMake can be found at the KitWare 
+
+       More information about using CMake can be found at the KitWare
        site, www.cmake.org.
-         
-       CMake uses the command line; however, the visual CMake tool is 
+
+       CMake uses the command line; however, the visual CMake tool is
        available for the configuration step. The steps are similar for
        all of the operating systems supported by CMake.
-       
+
        NOTES:
-         1. Using CMake for building and using HDF5 is under active 
-            development. While we have attempted to provide error-free 
-            files, please understand that development with CMake has not 
-            been extensively tested outside of HDF. The CMake specific 
+         1. Using CMake for building and using HDF5 is under active
+            development. While we have attempted to provide error-free
+            files, please understand that development with CMake has not
+            been extensively tested outside of HDF. The CMake specific
             files may change before the next release.
-            
-         2. CMake for HDF5 development should be usable on any system 
-            where CMake is supported. Please send us any comments on how 
-            CMake support can be improved on any system. 
-            
-         3. See the appendix at the bottom of this file for an example 
-            of using a ctest script for building and testing. See 
+
+         2. CMake for HDF5 development should be usable on any system
+            where CMake is supported. Please send us any comments on how
+            CMake support can be improved on any system.
+
+         3. See the appendix at the bottom of this file for an example
+            of using a ctest script for building and testing. See
             INSTALL_CMake.txt for more information.
 
 
 
 ========================================================================
-I. Preconditions                                                           
+I. Preconditions
 ========================================================================
 
    1. We suggest you obtain the latest CMake for windows from the Kitware
-      web site. The HDF5 1.8.x product requires a minimum CMake version 
-      of 3.1.0.                     
-                                                                         
-   2. You have installed the HDF5 library built with CMake, by executing 
-      the HDF Install Utility (the *.exe file in the binary package for 
-      Windows). If you are using a Windows platform, you can obtain a 
-      pre-built Windows binary from The HDF Group's website at 
+      web site. The HDF5 1.8.x product requires a minimum CMake version
+      of 3.1.0.
+
+   2. You have installed the HDF5 library built with CMake, by executing
+      the HDF Install Utility (the *.msi file in the binary package for
+      Windows). If you are using a Windows platform, you can obtain a
+      pre-built Windows binary from The HDF Group's website at
       www.hdfgroup.org.
 
-   3. Set the environment variable HDF5_DIR to the installed location of 
-      the config files for HDF5. On Windows: 
-            HDF5_DIR=C:/Program Files/HDF_Group/HDF5/1.8.x/cmake/hdf5
-      
+   3. Set the environment variable HDF5_DIR to the installed location of
+      the config files for HDF5. On Windows:
+            HDF5_DIR=C:/Program Files/HDF_Group/HDF5/1.8.x/cmake
+
       (Note there are no quote characters used on Windows and all platforms
       use forward slashes)
 
    4. Created separate source and build directories.
       (CMake commands are executed in the build directory)
 
-   5. Created a CMakeLists.txt file(s) for your source. See Section III 
+   5. Created a CMakeLists.txt file(s) for your source. See Section III
       below.
 
 
@@ -65,6 +65,7 @@ II. Building HDF5 Applications with CMake
 ========================================================================
 
 Go through these steps to build HDF5 applications with CMake.
+   (The application must support building with CMake.)
 
    1. Run CMake
    2. Configure the cache settings
@@ -79,31 +80,31 @@ These steps are described in more detail below.
 
       The visual CMake executable is named "cmake-gui.exe" on Windows and should be
       available in your Start menu. For Linux, UNIX, and Mac users the
-      executable is named "cmake-gui" and can be found where CMake was 
-      installed. 
-      
-      Specify the source and build directories. Make the build and source 
-      directories different. For example on Windows, if the source is at 
-      c:\MyHDFstuff\hdf5, then use c:\MyHDFstuff\hdf5\build or 
-      c:\MyHDFstuff\build\hdf5 for the build directory. 
-      
+      executable is named "cmake-gui" and can be found where CMake was
+      installed.
+
+      Specify the source and build directories. Make the build and source
+      directories different. For example on Windows, if the source is at
+      c:\MyHDFstuff\hdf5, then use c:\MyHDFstuff\hdf5\build or
+      c:\MyHDFstuff\build\hdf5 for the build directory.
+
       PREFERRED:
-        Users can perform the configuration step without using the visual 
-        cmake-gui program. The following is an example command line 
+        Users can perform the configuration step without using the visual
+        cmake-gui program. The following is an example command line
         configuration step executed within the build directory:
-        
+
         cmake -G "<generator>"  [-D<options>]  <sourcepath>
-        
-        Where <generator> is    
+
+        Where <generator> is
             * MinGW Makefiles
             * NMake Makefiles
             * Unix Makefiles
-            * Visual Studio 12
-            * Visual Studio 12 Win64
-            * Visual Studio 11
-            * Visual Studio 11 Win64
-            * Visual Studio 10
-            * Visual Studio 10 Win64
+            * Visual Studio 12 2013
+            * Visual Studio 12 2013 Win64
+            * Visual Studio 11 2012
+            * Visual Studio 11 2012 Win64
+            * Visual Studio 10 2010
+            * Visual Studio 10 2010 Win64
 
         <options> is:
             * BUILD_TESTING:BOOL=ON
@@ -111,63 +112,63 @@ These steps are described in more detail below.
 
    2. Configure the cache settings
 
-      2.1  Visual CMake users, click the Configure button. If this is the first time you are 
-           running cmake-gui in this directory, you will be prompted for the 
-           generator you wish to use (for example on Windows, Visual Studio 10). 
-           CMake will read in the CMakeLists.txt files from the source directory and 
-           display options for the HDF5 project. After the first configure you 
+      2.1  Visual CMake users, click the Configure button. If this is the first time you are
+           running cmake-gui in this directory, you will be prompted for the
+           generator you wish to use (for example on Windows, Visual Studio 12 2013).
+           CMake will read in the CMakeLists.txt files from the source directory and
+           display options for the HDF5 project. After the first configure you
            can adjust the cache settings and/or specify locations of other programs.
-      
+
            Any conflicts or new values will be highlighted by the configure
-           process in red. Once you are happy with all the settings and there are no 
-           more values in red, click the Generate button to produce the appropriate 
-           build files. 
-      
-           On Windows, if you are using a Visual Studio generator, the solution and 
+           process in red. Once you are happy with all the settings and there are no
+           more values in red, click the Generate button to produce the appropriate
+           build files.
+
+           On Windows, if you are using a Visual Studio generator, the solution and
            project files will be created in the build folder.
-      
+
            On linux, if you are using the Unix Makefiles generator, the Makefiles will
            be created in the build folder.
 
       2.2  Alternative command line example on Windows in c:\MyHDFstuff\hdf5\build directory:
-      
+
            cmake -G "Visual Studio 11" -DBUILD_TESTING:BOOL=ON ..
 
    3. Build HDF5 Applications
-   
-      On Windows, you can build HDF5 applications using either the Visual Studio Environment 
+
+      On Windows, you can build HDF5 applications using either the Visual Studio Environment
       or the command line. The command line is normally used on linux, Unix, and Mac.
 
       To build from the command line, navigate to your build directory and
       execute the following:
-          
-              cmake --build . --config {Debug | Release}     
-              
+
+              cmake --build . --config {Debug | Release}
+
       NOTE: "--config {Debug | Release}" may be optional on your platform. We
             recommend choosing either Debug or Release on Windows. If you are
-            using the pre-built binaries from HDF, use Release.                                                                                     
-             
-      3.1  If you wish to use the Visual Studio environment, open the solution 
-           file in your build directory. Be sure to select either Debug or 
+            using the pre-built binaries from HDF, use Release.
+
+      3.1  If you wish to use the Visual Studio environment, open the solution
+           file in your build directory. Be sure to select either Debug or
            Release and build the solution.
-             
+
    4. Test HDF5 Applications
 
       To test the build, navigate to your build directory and execute:
-      
+
               ctest . -C {Debug | Release}
-              
+
       NOTE: "-C {Debug | Release}" may be optional on your platform. We
             recommend choosing either Debug or Release to match the build
-            step on Windows.                                                                                      
+            step on Windows.
 
-   5. The files that support building with CMake are all of the files in the 
-      config/cmake folder, the CMakeLists.txt files in each source folder, and 
-      CTestConfig.cmake. CTestConfig.cmake is specific to the internal testing 
-      performed by The HDF Group. It should be altered for the user's 
+   5. The files that support building with CMake are all of the files in the
+      config/cmake folder, the CMakeLists.txt files in each source folder, and
+      CTestConfig.cmake. CTestConfig.cmake is specific to the internal testing
+      performed by The HDF Group. It should be altered for the user's
       installation and needs. The cacheinit.cmake file settings are used by
-      The HDF Group for daily testing. It should be altered/ignored for the user's 
-      installation and needs. 
+      The HDF Group for daily testing. It should be altered/ignored for the user's
+      installation and needs.
 
 
 
@@ -175,17 +176,17 @@ These steps are described in more detail below.
 III. Minimum C Project Files for CMake
 ========================================================================
 
-Create a CMakeLists.txt file at the source root. Include the 
-following text in the file:
+Given the preconditions in section I, create a CMakeLists.txt file at the
+source root. Include the following text in the file:
 
 ##########################################################
 cmake_minimum_required (VERSION 3.1.0)
-PROJECT (HDF5MyApp C CXX)
+project (HDF5MyApp C CXX)
 
-FIND_PACKAGE (HDF5 NAMES hdf5)
-# FIND_PACKAGE (HDF5) # Find non-cmake built HDF5
+find_package (HDF5 NAMES hdf5 COMPONENTS C static)
+# find_package (HDF5) # Find non-cmake built HDF5
 INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIR})
-set (LINK_LIBS ${LINK_LIBS} ${HDF5_LIBRARIES})
+set (LINK_LIBS ${LINK_LIBS} ${HDF5_C_STATIC_LIBRARY})
 
 set (example hdf_example)
 
@@ -193,7 +194,7 @@ add_executable (${example} ${PROJECT_SOURCE_DIR}/${example}.c)
 TARGET_C_PROPERTIES (${example} " " " ")
 target_link_libraries (${example} ${LINK_LIBS})
 
-ENABLE_TESTING ()
+enable_testing ()
 include (CTest)
 
 add_test (NAME test_example COMMAND ${example})
@@ -205,66 +206,227 @@ add_test (NAME test_example COMMAND ${example})
 IV. APPENDIX
 ========================================================================
 
-Below is an example of the ctest script used by The HDF Group. See the
-Appendix in the INSTALL_CMake.txt file for the CTestScript.cmake file used
-by this script. Adjust the values as necessary. Note that the source folder
-is entered on the command line and the build folder is created as a sub-folder.
-Windows should adjust the forward slash to double backslashes, except for
-the HDF_DIR environment variable.
+Below is an example of a ctest script that can be used to build the examples.
+Adjust the values as necessary. Note that the defaults can be entered on the
+command line and the build folder is created as a sub-folder. Windows should
+adjust the forward slash to double backslashes, except for the HDF_DIR
+environment variable.
 
-NOTE: these files are available at the HDF web site:
+NOTE: this file is available at the HDF web site:
     http://www.hdfgroup.org/HDF5/release/cmakebuild.html
 
-    CTestScript.cmake
-    
-    HDF518ExamplesWindowsbinaryCMake.cmake
+    HDF518_Examples.cmake
 
 
 
 ========================================================================
 ctest
 ========================================================================
-
-############################################################################
-# Product specific script, HDF518Example.cmake, that uses the 
-# CTestScript.cmake file (see Appendix in the CMake.txt). Usage:
-# "ctest -S HDF518Example.cmake,hdf518Examples -C Release -O hdf518EX.log"
-# where hdf518Examples is the source folder relative to the location of these scripts
-############################################################################
-
 cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
 
+############################################################################
+# Usage:
+#     ctest -S HDF518_Examples.cmake,OPTION=VALUE -C Release -VV -O test.log
+# where valid options for OPTION are:
+#     BUILD_GENERATOR - The cmake build generator:
+#            Unix    * Unix Makefiles
+#            VS2015    * Visual Studio 14 2015
+#            VS201564 * Visual Studio 14 2015 Win64
+#            VS2013    * Visual Studio 12 2013
+#            VS201364 * Visual Studio 12 2013 Win64
+#            VS2012    * Visual Studio 11 2012
+#            VS201264 * Visual Studio 11 2012 Win64
+#
+#     INSTALLDIR  -  root folder where hdf5 is installed
+#     CTEST_BUILD_CONFIGURATION  - Release, Debug, etc
+#     CTEST_SOURCE_NAME  -  source folder
+#     STATIC_LIBRARIES  -  Build/use static libraries
+#     FORTRAN_LIBRARIES -  Build/use fortran libraries
+#     NO_MAC_FORTRAN  - Yes to be SHARED on a Mac
+##############################################################################
+# handle input parameters to script.
+#BUILD_GENERATOR - which CMake generator to use, required
+#INSTALLDIR - HDF5-1.8 root folder
+#CTEST_BUILD_CONFIGURATION - Release, Debug, RelWithDebInfo
+#CTEST_SOURCE_NAME - name of source folder; HDF4Examples
+#STATIC_LIBRARIES - Default is YES
+#FORTRAN_LIBRARIES - Default is NO
+##NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac)
+if(DEFINED CTEST_SCRIPT_ARG)
+    # transform ctest script arguments of the form
+    # script.ctest,var1=value1,var2=value2
+    # to variables with the respective names set to the respective values
+    string(REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
+    foreach(current_var ${script_args})
+        if ("${current_var}" MATCHES "^([^=]+)=(.+)$")
+            set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
+        endif()
+    endforeach()
+endif()
+
+# build generator must be defined
+if(NOT DEFINED BUILD_GENERATOR)
+  message(FATAL_ERROR "BUILD_GENERATOR must be defined - Unix, VS2015, VS201564, VS2013, VS201364, VS2012, or VS201264")
+else()
+  if(${BUILD_GENERATOR} STREQUAL "Unix")
+    set(CMAKE_GENERATOR "Unix Makefiles")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2015")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 14 2015")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201564")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 14 2015 Win64")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2013")
+    set(CMAKE_GENERATOR "Visual Studio 12 2013")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201364")
+    set(CMAKE_GENERATOR "Visual Studio 12 2013 Win64")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS2012")
+    set(CMAKE_GENERATOR "Visual Studio 11 2012")
+  elseif(${BUILD_GENERATOR} STREQUAL "VS201264")
+    set(CMAKE_GENERATOR "Visual Studio 11 2012 Win64")
+  else()
+    message(FATAL_ERROR "Invalid BUILD_GENERATOR must be - Unix, VS2015, VS201564, VS2013, VS201364, VS2012, or VS201264")
+  endif()
+endif()
+set(CTEST_CMAKE_GENERATOR "${CMAKE_GENERATOR}")
 set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
-set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
-set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
-set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
-set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
-set(CTEST_BUILD_CONFIGURATION "Release")
-set(MODEL "Experimental")
-
-# build generator name, see cmake generator list
-set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
-
-# machine description, can be removed on linux
-set(CTEST_SITE "machine.domain")
-set(SITE_OS_NAME "os name")
-set(SITE_OS_VERSION "os version")
-set(SITE_OS_BITS "os size")
-set(SITE_COMPILER_NAME "compiler name")
-set(SITE_COMPILER_VERSION "compiler version")
-
-# needed for source updates, change as required
-set(REPOSITORY_URL "http://svn.${hdfgroup_url}/hdf5-examples/trunk/1_8")
-
-set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/hdf5Examples-1.8")
-
-# location of the installed hdf5 (cmake configuration folder)
-set(ENV{HDF5_DIR} "/usr/share/cmake/hdf5")
-
-include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake)
 
-message("DONE")
-#################################################################################
+if(NOT DEFINED INSTALLDIR)
+  if(WIN32)
+    set(INSTALLDIR "C:\\Program\ Files\\myhdf5")
+  else()
+    set(INSTALLDIR "/usr/local/myhdf5")
+  endif()
+endif()
+if(NOT DEFINED CTEST_BUILD_CONFIGURATION)
+    set(CTEST_BUILD_CONFIGURATION "Release")
+endif()
+if(NOT DEFINED CTEST_SOURCE_NAME)
+    set(CTEST_SOURCE_NAME "HDF5Examples")
+endif()
+if(NOT DEFINED STATIC_LIBRARIES)
+    set(STATICLIBRARIES "YES")
+endif()
+if(NOT DEFINED FORTRAN_LIBRARIES)
+    set(FORTRANLIBRARIES "NO")
+endif()
+
+#TAR_SOURCE - name of tarfile
+#if(NOT DEFINED TAR_SOURCE)
+#  set(CTEST_USE_TAR_SOURCE "HDF5Examples-1.2.1-Source")
+#endif()
+
+###############################################################################################################
+#     Adjust the following SET Commands as needed
+###############################################################################################################
+if(WIN32)
+  if(${STATICLIBRARIES})
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
+  endif()
+  set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake")
+  set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build)
+  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
+  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
+else(WIN32)
+  if(${STATICLIBRARIES})
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
+  endif()
+  set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake")
+  set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib")
+  set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
+  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
+  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
+endif(WIN32)
+if(${FORTRANLIBRARIES})
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
+else()
+  set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=OFF")
+endif()
+set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF5_PACKAGE_NAME:STRING=@HDF5_PACKAGE@@HDF_PACKAGE_EXT@")
+
+###############################################################################################################
+# For any comments please contact cdashhelp at hdfgroup.org
+#
+###############################################################################################################
+
+#-----------------------------------------------------------------------------
+# MAC machines need special option
+#-----------------------------------------------------------------------------
+if(APPLE)
+  # Compiler choice
+  execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE)
+  set(ENV{CC} "${XCODE_CC}")
+  set(ENV{CXX} "${XCODE_CXX}")
+  if(NOT NO_MAC_FORTRAN)
+    # Shared fortran is not supported, build static
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
+  else()
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=OFF")
+  endif()
+  set(BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
+endif()
+
+#-----------------------------------------------------------------------------
+set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
+## --------------------------
+if(CTEST_USE_TAR_SOURCE)
+  ## Uncompress source if tar or zip file provided
+  ## --------------------------
+  if(WIN32)
+    message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip]")
+    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}\\${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
+  else()
+    message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]")
+    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
+  endif()
+
+  if(NOT rv EQUAL 0)
+    message(STATUS "extracting... [error-(${rv}) clean up]")
+    file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}")
+    message(FATAL_ERROR "error: extract of ${CTEST_SOURCE_NAME} failed")
+  endif()
+endif(CTEST_USE_TAR_SOURCE)
+
+#-----------------------------------------------------------------------------
+## Clear the build directory
+## --------------------------
+set(CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)
+if (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+  ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
+else ()
+  file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+endif ()
+
+# Use multiple CPU cores to build
+include(ProcessorCount)
+ProcessorCount(N)
+if(NOT N EQUAL 0)
+  if(NOT WIN32)
+    set(CTEST_BUILD_FLAGS -j${N})
+  endif()
+  set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N})
+endif()
+set (CTEST_CONFIGURE_COMMAND
+    "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
+)
+
+#-----------------------------------------------------------------------------
+## -- set output to english
+set($ENV{LC_MESSAGES}  "en_EN")
+
+#-----------------------------------------------------------------------------
+configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake)
+ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}")
+## NORMAL process
+## --------------------------
+ctest_start (Experimental)
+ctest_configure (BUILD "${CTEST_BINARY_DIRECTORY}")
+ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
+ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
+if(res GREATER 0)
+  message (FATAL_ERROR "tests FAILED")
+endif()
+#-----------------------------------------------------------------------------
+##############################################################################################################
 
 
 
diff --git a/release_docs/USING_HDF5_VS.txt b/release_docs/USING_HDF5_VS.txt
index 9063ea6..e07e933 100644
--- a/release_docs/USING_HDF5_VS.txt
+++ b/release_docs/USING_HDF5_VS.txt
@@ -6,83 +6,56 @@
 
 These suggestions are for Visual Studio users.
 
-Instructions for building and testing HDF5 applications using CMake can 
+Instructions for building and testing HDF5 applications using CMake can
 be found in the USING_HDF5_CMake.txt file found in this folder.
 
-The following two sections are helpful if you do not use CMake to build 
-your applications.
-                                                                        
+The following two sections are helpful if you choose to not use CMake to build
+your applications. Consult the Microsoft documentation for your product
+for more information.
+
 ========================================================================
-Using Visual Studio 2010 with HDF5 Libraries built with Visual Studio 2010
+Using Visual Studio with HDF5 Libraries
 ========================================================================
 
-   1. Set up path for external libraries and headers
-
-      The path settings will need to be in the project property sheets per project. 
-      Go to "Project" and select "Properties", find "Configuration Properties", 
-      and then "VC++ Directories".
-          
-      1.1 If you are building on 64-bit Windows, find the "Platform" dropdown
-          and select "x64".
-              
-      1.2 Add the header path to the "Include Directories" setting.
-          
-      1.3 Add the library path to the "Library Directories" setting.
-          
-      1.4 Select Linker->Input and beginning with the
-          "Additional Dependencies" line, enter the library names. The
-          external libraries should be listed first, followed by the HDF5
-          library, and then optionally the HDF5 High Level, Fortran or C++
-          libraries. For example, to compile a C++ application, enter:
-
-          szip.lib zlib.lib hdf5.lib hdf5_cpp.lib
-
-                                                                         
-==========================================================================
-Using Visual Studio 2008 with HDF5 Libraries built with Visual Studio 2008
-==========================================================================
+   1. The HDF5 binary must match with your Visual Studio version
 
    2. Set up the path for external libraries and headers
 
-      Invoke Microsoft Visual Studio and go to "Tools" and select "Options", 
-      find "Projects", and then "VC++ Directories".
-      
-      2.1 If you are building on 64-bit Windows, find the "Platform" dropdown
-          and select "x64".
+      Follow the Microsoft guidelines for adding third-party libraries.
+
+      2.1 If you are building on 64-bit Windows, be sure the binary is
+          built for the your intended "Platform"; 64-bit or 32-bit.
 
-      2.2 Find the box "Show directories for", choose "Include files", add the 
-          header path (i.e. c:\Program Files\HDF_Group\HDF5\1.8.x\include)
-          to the included directories.
+      2.2 Add the header path (i.e. c:\Program Files\HDF_Group\HDF5\1.8.x\include)
+          to the included directories settings.
 
-      2.3 Find the box "Show directories for", choose "Library files", add the
-          library path (i.e. c:\Program Files\HDF_Group\HDF5\1.8.x\lib)
+      2.3 Add the library path (i.e. c:\Program Files\HDF_Group\HDF5\1.8.x\lib)
           to the library directories.
-          
+
       2.4 If using Fortran libraries, you will also need to setup the path
           for the Intel Fortran compiler.
-          
-      2.5 Select Project->Properties->Linker->Input and beginning with the
-          "Additional Dependencies" line, enter the library names. The
-          external libraries should be listed first, followed by the HDF5
+
+      2.5 Enter the library names into the linker "Additional Dependencies" line.
+          The external libraries should be listed first, followed by the HDF5
           library, and then optionally the HDF5 High Level, Fortran or C++
           libraries. For example, to compile a C++ application, enter:
 
           szip.lib zlib.lib hdf5.lib hdf5_cpp.lib
 
 ========================================================================
-3. Helpful Pointers
+Helpful Pointers
 ========================================================================
 
     3.1 FAQ
-    
+
     Many other common questions and hints are located online and being updated
     in the HDF5 FAQ.  For Windows-specific questions, please see:
-    
+
         http://www.hdfgroup.org/HDF5/faq/windows.html
-        
+
     For all other general questions, you can look in the general FAQ:
-    
+
         http://hdfgroup.org/HDF5-FAQ.html
-    
+
 ************************************************************************
  Please send email to help at hdfgroup.org for further assistance.
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0e97ba0..9fcb28d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -640,7 +640,7 @@ add_custom_command (
 )
 
 if (GENERATE_ERROR_HEADERS)
-  find_pacakge (Perl)
+  find_package (Perl)
   if (PERL_FOUND)
     add_custom_command (
         OUTPUT ${HDF5_BINARY_DIR}/H5Edefin.h
@@ -691,8 +691,8 @@ set_source_files_properties (${HDF5_BINARY_DIR}/H5version.h GENERATED)
 set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5overflow.h)
 set_source_files_properties (${HDF5_BINARY_DIR}/H5overflow.h GENERATED)
 
-add_library (${HDF5_LIB_TARGET} ${LIB_TYPE} ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} ${LIB_TYPE} " " " ")
+add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS})
+TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS})
 if (NOT WIN32)
   target_link_libraries (${HDF5_LIB_TARGET} dl)
@@ -701,7 +701,7 @@ if (H5_HAVE_PARALLEL AND MPI_C_FOUND)
   target_link_libraries (${HDF5_LIB_TARGET} ${MPI_C_LIBRARIES})
 endif (H5_HAVE_PARALLEL AND MPI_C_FOUND)
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT ${HDF5_LIB_TARGET})
-H5_SET_LIB_OPTIONS (${HDF5_LIB_TARGET} ${HDF5_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_LIB_TARGET} ${HDF5_LIB_NAME} STATIC)
 set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
     FOLDER libraries
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
@@ -714,6 +714,41 @@ if (HDF5_ENABLE_DEBUG_APIS)
           "H5Z_DEBUG;H5VM_DEBUG;H5T_DEBUG;H5S_DEBUG;H5P_DEBUG;H5O_DEBUG;H5MM_DEBUG;H5MF_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5HG_DEBUG;H5G_DEBUG;H5F_DEBUG;H5E_DEBUG;H5D_DEBUG;H5B_DEBUG;H5AC_DEBUG"
   )
 endif (HDF5_ENABLE_DEBUG_APIS)
+set (install_targets ${HDF5_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS)
+  add_library (${HDF5_LIBSH_TARGET} SHARED ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS})
+  TARGET_C_PROPERTIES (${HDF5_LIBSH_TARGET} SHARED " " " ")
+  target_link_libraries (${HDF5_LIBSH_TARGET} ${LINK_SHARED_LIBS})
+  if (NOT WIN32)
+    target_link_libraries (${HDF5_LIBSH_TARGET} dl)
+  endif (NOT WIN32)
+  if (H5_HAVE_PARALLEL AND MPI_C_FOUND)
+    target_link_libraries (${HDF5_LIBSH_TARGET} ${MPI_C_LIBRARIES})
+  endif (H5_HAVE_PARALLEL AND MPI_C_FOUND)
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_LIBSH_TARGET}")
+  H5_SET_LIB_OPTIONS (${HDF5_LIBSH_TARGET} ${HDF5_LIB_NAME} SHARED ${HDF5_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+  if (HDF5_ENABLE_THREADSAFE)
+    set_property (TARGET ${HDF5_LIBSH_TARGET}
+        APPEND PROPERTY COMPILE_DEFINITIONS
+            "H5_HAVE_THREADSAFE"
+    )
+  endif (HDF5_ENABLE_THREADSAFE)
+
+  if (HDF5_ENABLE_DEBUG_APIS)
+    set_property (TARGET ${HDF5_LIBSH_TARGET}
+        APPEND PROPERTY COMPILE_DEFINITIONS
+            "H5Z_DEBUG;H5VM_DEBUG;H5T_DEBUG;H5S_DEBUG;H5P_DEBUG;H5O_DEBUG;H5MM_DEBUG;H5MF_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5HG_DEBUG;H5G_DEBUG;H5F_DEBUG;H5E_DEBUG;H5D_DEBUG;H5B_DEBUG;H5AC_DEBUG"
+    )
+  endif (HDF5_ENABLE_DEBUG_APIS)
+  set (install_targets ${install_targets} ${HDF5_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS)
 
 #-----------------------------------------------------------------------------
 # Add file(s) to CMake Install
@@ -734,16 +769,17 @@ endif (NOT HDF5_INSTALL_NO_DEVELOPMENT)
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} libraries)
+    INSTALL_TARGET_PDB (${HDF5_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} libraries)
   endif (BUILD_SHARED_LIBS)
-  
+
   install (
       TARGETS
-          ${HDF5_LIB_TARGET}
+          ${install_targets}
       EXPORT
           ${HDF5_EXPORTED_TARGETS}
       LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
       ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
       RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT libraries
+      FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT libraries
   )
 endif (HDF5_EXPORTED_TARGETS)
diff --git a/src/H5.c b/src/H5.c
index b73b614..8826879 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -21,17 +21,16 @@
 /***********/
 /* Headers */
 /***********/
-#include "H5private.h"		/* Generic Functions			*/
-#include "H5ACprivate.h"	/* Metadata cache			*/
-#include "H5Dprivate.h"		/* Datasets				*/
-#include "H5Eprivate.h"		/* Error handling		  	*/
-#include "H5FLprivate.h"	/* Free lists                           */
-#include "H5Lprivate.h"		/* Links		  		*/
+#include "H5private.h"          /* Generic Functions                    */
+#include "H5ACprivate.h"        /* Metadata cache                       */
+#include "H5Dprivate.h"         /* Datasets                             */
+#include "H5Eprivate.h"         /* Error handling                       */
+#include "H5FLprivate.h"        /* Free lists                           */
+#include "H5Lprivate.h"         /* Links                                */
 #include "H5MMprivate.h"        /* Memory management                    */
-#include "H5Pprivate.h"		/* Property lists			*/
-#include "H5Tprivate.h"		/* Datatypes				*/
+#include "H5Pprivate.h"         /* Property lists                       */
 #include "H5SLprivate.h"        /* Skip lists                           */
-
+#include "H5Tprivate.h"         /* Datatypes                            */
 
 /****************/
 /* Local Macros */
@@ -111,26 +110,27 @@ H5_init_library(void)
 #ifdef H5_HAVE_PARALLEL
     {
 	int mpi_initialized;
+	int mpi_finalized;
         int mpi_code;
 
 	MPI_Initialized(&mpi_initialized);
+	MPI_Finalized(&mpi_finalized);
 
 #ifdef H5_HAVE_MPE
         /* Initialize MPE instrumentation library. */
-        if (!H5_MPEinit_g)
-            {
-                int mpe_code;
-                if (mpi_initialized){
-                    mpe_code = MPE_Init_log();
-                    HDassert(mpe_code >=0);
-                    H5_MPEinit_g = TRUE;
-                }
+        if (!H5_MPEinit_g) {
+            int mpe_code;
+            if (mpi_initialized && !mpi_finalized) {
+                mpe_code = MPE_Init_log();
+                HDassert(mpe_code >=0);
+                H5_MPEinit_g = TRUE;
             }
+        }
 #endif /*H5_HAVE_MPE*/
 
         /* add an attribute on MPI_COMM_SELF to call H5_term_library
            when it is destroyed, i.e. on MPI_Finalize */
-        if (mpi_initialized) {
+        if (mpi_initialized && !mpi_finalized) {
             int key_val;
 
             if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN, 
@@ -140,6 +140,9 @@ H5_init_library(void)
 
             if(MPI_SUCCESS != (mpi_code = MPI_Comm_set_attr(MPI_COMM_SELF, key_val, NULL)))
                 HMPI_GOTO_ERROR(FAIL, "MPI_Comm_set_attr failed", mpi_code)
+
+            if(MPI_SUCCESS != (mpi_code = MPI_Comm_free_keyval(&key_val)))
+                HMPI_GOTO_ERROR(FAIL, "MPI_Comm_free_keyval failed", mpi_code)
         }
     }
 #endif /*H5_HAVE_PARALLEL*/
@@ -298,9 +301,8 @@ H5_term_library(void)
             pending += DOWN(Z);
             pending += DOWN(FD);
             pending += DOWN(P);
-#ifndef H5_VMS
             pending += DOWN(PL);
-#endif /*H5_VMS*/
+
             /* Don't shut down the error code until other APIs which use it are shut down */
             if(pending == 0)
                 pending += DOWN(E);
@@ -332,11 +334,14 @@ H5_term_library(void)
      * down if any of the below code involves using the instrumentation code.
      */
     if(H5_MPEinit_g) {
-	int mpe_code;
 	int mpi_initialized;
+	int mpi_finalized;
+	int mpe_code;
 
 	MPI_Initialized(&mpi_initialized);
-	if(mpi_initialized) {
+	MPI_Finalized(&mpi_finalized);
+
+        if (mpi_initialized && !mpi_finalized) {
 	    mpe_code = MPE_Finish_log("h5log");
 	    HDassert(mpe_code >=0);
 	} /* end if */
@@ -613,7 +618,7 @@ H5_debug_mask(const char *s)
  *
  *-------------------------------------------------------------------------
  */
-static int H5_mpi_delete_cb(MPI_Comm UNUSED comm, int UNUSED keyval, void UNUSED *attr_val, int UNUSED *flag)
+static int H5_mpi_delete_cb(MPI_Comm H5_ATTR_UNUSED comm, int H5_ATTR_UNUSED keyval, void H5_ATTR_UNUSED *attr_val, int H5_ATTR_UNUSED *flag)
 {
     H5_term_library();
     return MPI_SUCCESS;
@@ -964,6 +969,36 @@ H5free_memory(void *mem)
 } /* end H5free_memory() */
 
 

+/*-------------------------------------------------------------------------
+ * Function:	H5is_library_threadsafe
+ *
+ * Purpose:	    Checks to see if the library was built with thread-safety
+ *              enabled.
+ *
+ * Return:	    SUCCEED/FAIL
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5is_library_threadsafe(hbool_t *is_ts)
+{
+    herr_t ret_value = SUCCEED;
+
+    FUNC_ENTER_API_NOINIT
+    H5TRACE1("e", "*b", is_ts);
+
+    HDassert(is_ts);
+ 
+#ifdef H5_HAVE_THREADSAFE
+    *is_ts = TRUE;
+#else /* H5_HAVE_THREADSAFE */
+    *is_ts = FALSE;
+#endif /* H5_HAVE_THREADSAFE */
+
+    FUNC_LEAVE_API(ret_value)
+} /* end H5is_library_threadsafe() */
+
+

 #if defined(H5_HAVE_THREADSAFE) && defined(H5_BUILT_AS_DYNAMIC_LIB) \
     && defined(H5_HAVE_WIN32_API) && defined(H5_HAVE_WIN_THREADS)
 /*-------------------------------------------------------------------------
diff --git a/src/H5A.c b/src/H5A.c
index d4e970e..f1a6408 100644
--- a/src/H5A.c
+++ b/src/H5A.c
@@ -229,7 +229,7 @@ H5A_term_interface(void)
 /* ARGSUSED */
 hid_t
 H5Acreate2(hid_t loc_id, const char *attr_name, hid_t type_id, hid_t space_id,
-    hid_t acpl_id, hid_t UNUSED aapl_id)
+    hid_t acpl_id, hid_t H5_ATTR_UNUSED aapl_id)
 {
     H5A_t	        *attr = NULL;           /* Attribute created */
     H5G_loc_t           loc;                    /* Object location */
@@ -304,7 +304,7 @@ done:
 /* ARGSUSED */
 hid_t
 H5Acreate_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
-    hid_t type_id, hid_t space_id, hid_t acpl_id, hid_t UNUSED aapl_id,
+    hid_t type_id, hid_t space_id, hid_t acpl_id, hid_t H5_ATTR_UNUSED aapl_id,
     hid_t lapl_id)
 {
     H5A_t	        *attr = NULL;           /* Attribute created */
@@ -385,7 +385,7 @@ done:
     H5Aclose or resource leaks will develop.
 --------------------------------------------------------------------------*/
 hid_t
-H5Aopen(hid_t loc_id, const char *attr_name, hid_t UNUSED aapl_id)
+H5Aopen(hid_t loc_id, const char *attr_name, hid_t H5_ATTR_UNUSED aapl_id)
 {
     H5G_loc_t    	loc;            /* Object location */
     H5A_t               *attr = NULL;   /* Attribute opened */
@@ -447,7 +447,7 @@ done:
 --------------------------------------------------------------------------*/
 hid_t
 H5Aopen_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
-    hid_t UNUSED aapl_id, hid_t lapl_id)
+    hid_t H5_ATTR_UNUSED aapl_id, hid_t lapl_id)
 {
     H5G_loc_t    	loc;            /* Object location */
     H5A_t               *attr = NULL;   /* Attribute opened */
@@ -515,7 +515,7 @@ done:
 --------------------------------------------------------------------------*/
 hid_t
 H5Aopen_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
-    H5_iter_order_t order, hsize_t n, hid_t UNUSED aapl_id, hid_t lapl_id)
+    H5_iter_order_t order, hsize_t n, hid_t H5_ATTR_UNUSED aapl_id, hid_t lapl_id)
 {
     H5A_t       *attr = NULL;   /* Attribute opened */
     H5G_loc_t	loc;	        /* Object location */
@@ -638,7 +638,7 @@ H5Aread(hid_t attr_id, hid_t dtype_id, void *buf)
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null attribute buffer")
 
     /* Go write the actual data to the attribute */
-    if((ret_value = H5A_read(attr, mem_type, buf, H5AC_dxpl_id)) < 0)
+    if((ret_value = H5A_read(attr, mem_type, buf, H5AC_ind_dxpl_id)) < 0)
         HGOTO_ERROR(H5E_ATTR, H5E_READERROR, FAIL, "unable to read attribute")
 
 done:
@@ -666,6 +666,7 @@ hid_t
 H5Aget_space(hid_t attr_id)
 {
     H5A_t	*attr;                  /* Attribute object for ID */
+    H5S_t      *ds = NULL;
     hid_t	ret_value;
 
     FUNC_ENTER_API(FAIL)
@@ -675,10 +676,19 @@ H5Aget_space(hid_t attr_id)
     if(NULL == (attr = (H5A_t *)H5I_object_verify(attr_id, H5I_ATTR)))
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an attribute")
 
-    if((ret_value = H5A_get_space(attr)) < 0)
+    if(NULL == (ds = H5A_get_space(attr)))
         HGOTO_ERROR(H5E_ARGS, H5E_CANTGET, FAIL, "can't get space ID of attribute")
 
+    /* Atomize */
+    if((ret_value = H5I_register(H5I_DATASPACE, ds, TRUE)) < 0)
+        HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace atom")
+
 done:
+    if(ret_value < 0) {
+        if(ds && (H5S_close(ds) < 0))
+            HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace")
+    } /* end if */
+
     FUNC_LEAVE_API(ret_value)
 } /* H5Aget_space() */
 
@@ -703,6 +713,7 @@ hid_t
 H5Aget_type(hid_t attr_id)
 {
     H5A_t	*attr;          /* Attribute object for ID */
+    H5T_t      *dt = NULL;
     hid_t	 ret_value;     /* Return value */
 
     FUNC_ENTER_API(FAIL)
@@ -712,10 +723,19 @@ H5Aget_type(hid_t attr_id)
     if(NULL == (attr = (H5A_t *)H5I_object_verify(attr_id, H5I_ATTR)))
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an attribute")
 
-    if((ret_value = H5A_get_type(attr)) < 0)
+    if(NULL == (dt = H5A_get_type(attr)))
         HGOTO_ERROR(H5E_ARGS, H5E_CANTGET, FAIL, "can't get space ID of attribute")
 
+    /* Create an atom */
+    if((ret_value = H5I_register(H5I_DATATYPE, dt, TRUE)) < 0)
+        HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register datatype")
+
 done:
+    if(ret_value < 0) {
+        if(dt && (H5T_close(dt) < 0))
+            HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release datatype")
+    } /* end if */
+
     FUNC_LEAVE_API(ret_value)
 } /* H5Aget_type() */
 
@@ -1160,7 +1180,7 @@ H5Arename_by_name(hid_t loc_id, const char *obj_name, const char *old_attr_name,
             HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
 
         /* Call private attribute rename routine */
-        if(H5A_rename_by_name(loc, obj_name, old_attr_name, new_attr_name, lapl_id) < 0)
+        if(H5A_rename_by_name(loc, obj_name, old_attr_name, new_attr_name, lapl_id, H5AC_dxpl_id) < 0)
             HGOTO_ERROR(H5E_ATTR, H5E_CANTRENAME, FAIL, "can't rename attribute")
     } /* end if */
 
@@ -1537,7 +1557,7 @@ H5Adelete_by_idx(hid_t loc_id, const char *obj_name, H5_index_t idx_type,
     H5G_loc_reset(&obj_loc);
 
     /* Find the object's location */
-    if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0)
+    if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0)
         HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
     loc_found = TRUE;
 
@@ -1668,7 +1688,7 @@ H5Aexists_by_name(hid_t loc_id, const char *obj_name, const char *attr_name,
         if(TRUE != H5P_isa_class(lapl_id, H5P_LINK_ACCESS))
             HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID")
 
-    if((ret_value = H5A_exists_by_name(loc, obj_name, attr_name, lapl_id)) < 0)
+    if((ret_value = H5A_exists_by_name(loc, obj_name, attr_name, lapl_id, H5AC_ind_dxpl_id)) < 0)
         HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "unable to determine if attribute exists")
 
 done:
diff --git a/src/H5AC.c b/src/H5AC.c
index 42cf268..481d7a1 100644
--- a/src/H5AC.c
+++ b/src/H5AC.c
@@ -106,11 +106,6 @@ H5FL_DEFINE_STATIC(H5AC_slist_entry_t);
 /* (Global variable definition, declaration is in H5ACprivate.h also) */
 hid_t H5AC_dxpl_id=(-1);
 
-/* Private dataset transfer property list for metadata I/O calls */
-/* (Collective set and "library internal" set) */
-/* (Static variable definition) */
-static hid_t H5AC_noblock_dxpl_id=(-1);
-
 /* Dataset transfer property list for independent metadata I/O calls */
 /* (just "library internal" set - i.e. independent transfer mode) */
 /* (Global variable definition, declaration is in H5ACprivate.h also) */
@@ -257,9 +252,7 @@ H5AC_init_interface(void)
 {
 #ifdef H5_HAVE_PARALLEL
     H5P_genplist_t  *xfer_plist;    /* Dataset transfer property list object */
-    unsigned block_before_meta_write; /* "block before meta write" property value */
     unsigned coll_meta_write;       /* "collective metadata write" property value */
-    unsigned library_internal = 1;  /* "library internal" property value */
 #endif /* H5_HAVE_PARALLEL */
     herr_t ret_value = SUCCEED;     /* Return value */
 
@@ -269,7 +262,7 @@ H5AC_init_interface(void)
     /* Sanity check */
     HDassert(H5P_CLS_DATASET_XFER_g != NULL);
 
-    /* Get an ID for the blocking, collective H5AC dxpl */
+    /* Get an ID for the collective H5AC dxpl */
     if((H5AC_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0)
         HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list")
 
@@ -277,47 +270,13 @@ H5AC_init_interface(void)
     if (NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(H5AC_dxpl_id)))
         HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object")
 
-    /* Insert 'block before metadata write' property */
-    block_before_meta_write=1;
-    if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write,NULL,NULL,NULL,NULL,NULL,NULL)<0)
-        HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
-
-    /* Insert 'library internal' property */
-    if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal,NULL,NULL,NULL,NULL,NULL,NULL)<0)
-        HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
-
     /* Insert 'collective metadata write' property */
     coll_meta_write = 1;
     if(H5P_insert(xfer_plist, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write,
                   NULL, NULL, NULL, NULL, NULL, NULL) < 0)
         HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
 
-
-    /* Get an ID for the non-blocking, collective H5AC dxpl */
-    if((H5AC_noblock_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0)
-        HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list")
-
-    /* Get the property list object */
-    if (NULL == (xfer_plist = (H5P_genplist_t *)H5I_object(H5AC_noblock_dxpl_id)))
-        HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object")
-
-    /* Insert 'block before metadata write' property */
-    block_before_meta_write=0;
-    if(H5P_insert(xfer_plist,H5AC_BLOCK_BEFORE_META_WRITE_NAME,H5AC_BLOCK_BEFORE_META_WRITE_SIZE,&block_before_meta_write,NULL,NULL,NULL,NULL,NULL,NULL)<0)
-        HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
-
-    /* Insert 'library internal' property */
-    if(H5P_insert(xfer_plist,H5AC_LIBRARY_INTERNAL_NAME,H5AC_LIBRARY_INTERNAL_SIZE,&library_internal,NULL,NULL,NULL,NULL,NULL,NULL)<0)
-        HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
-
-    /* Insert 'collective metadata write' property */
-    coll_meta_write = 1;
-    if(H5P_insert(xfer_plist, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write,
-                  NULL, NULL, NULL, NULL, NULL, NULL) < 0)
-        HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
-
-
-    /* Get an ID for the non-blocking, independent H5AC dxpl */
+    /* Get an ID for the independent H5AC dxpl */
     if((H5AC_ind_dxpl_id = H5P_create_id(H5P_CLS_DATASET_XFER_g, FALSE)) < 0)
         HGOTO_ERROR(H5E_CACHE, H5E_CANTCREATE, FAIL, "unable to register property list")
 
@@ -325,29 +284,16 @@ H5AC_init_interface(void)
     if(NULL == (H5AC_ind_dxpl_g = (H5P_genplist_t *)H5I_object(H5AC_ind_dxpl_id)))
         HGOTO_ERROR(H5E_CACHE, H5E_BADATOM, FAIL, "can't get new property list object")
 
-    /* Insert 'block before metadata write' property */
-    block_before_meta_write=0;
-    if(H5P_insert(H5AC_ind_dxpl_g, H5AC_BLOCK_BEFORE_META_WRITE_NAME, H5AC_BLOCK_BEFORE_META_WRITE_SIZE, &block_before_meta_write,
-            NULL, NULL, NULL, NULL, NULL, NULL) < 0)
-        HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
-
-    /* Insert 'library internal' property */
-    if(H5P_insert(H5AC_ind_dxpl_g, H5AC_LIBRARY_INTERNAL_NAME, H5AC_LIBRARY_INTERNAL_SIZE, &library_internal,
-            NULL, NULL, NULL, NULL, NULL, NULL) < 0)
-        HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
-
     /* Insert 'collective metadata write' property */
     coll_meta_write = 0;
     if(H5P_insert(H5AC_ind_dxpl_g, H5AC_COLLECTIVE_META_WRITE_NAME, H5AC_COLLECTIVE_META_WRITE_SIZE, &coll_meta_write,
             NULL, NULL, NULL, NULL, NULL, NULL) < 0)
         HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't insert metadata cache dxpl property")
-
 #else /* H5_HAVE_PARALLEL */
     /* Sanity check */
     HDassert(H5P_LST_DATASET_XFER_ID_g!=(-1));
 
     H5AC_dxpl_id = H5P_DATASET_XFER_DEFAULT;
-    H5AC_noblock_dxpl_id = H5P_DATASET_XFER_DEFAULT;
     H5AC_ind_dxpl_id = H5P_DATASET_XFER_DEFAULT;
 
     /* Get the property list objects for the IDs */
@@ -384,19 +330,17 @@ H5AC_term_interface(void)
 
     if (H5_interface_initialize_g) {
 #ifdef H5_HAVE_PARALLEL
-        if(H5AC_dxpl_id > 0 || H5AC_noblock_dxpl_id > 0 || H5AC_ind_dxpl_id > 0) {
+        if(H5AC_dxpl_id > 0 || H5AC_ind_dxpl_id > 0) {
             /* Indicate more work to do */
             n = 1; /* H5I */
 
             /* Close H5AC dxpl */
             if(H5I_dec_ref(H5AC_dxpl_id) < 0 ||
-                    H5I_dec_ref(H5AC_noblock_dxpl_id) < 0 ||
                     H5I_dec_ref(H5AC_ind_dxpl_id) < 0)
                 H5E_clear_stack(NULL); /*ignore error*/
             else {
                 /* Reset static IDs */
                 H5AC_dxpl_id = (-1);
-                H5AC_noblock_dxpl_id = (-1);
                 H5AC_ind_dxpl_id = (-1);
 
                 /* Reset interface initialization flag */
@@ -407,7 +351,6 @@ H5AC_term_interface(void)
 #else /* H5_HAVE_PARALLEL */
             /* Reset static IDs */
             H5AC_dxpl_id=(-1);
-            H5AC_noblock_dxpl_id=(-1);
             H5AC_ind_dxpl_id=(-1);
 #endif /* H5_HAVE_PARALLEL */
             /* Reset interface initialization flag */
@@ -677,7 +620,7 @@ H5AC_dest(H5F_t *f, hid_t dxpl_id)
 #endif /* H5_HAVE_PARALLEL */
 
     /* Destroy the cache */
-    if(H5C_dest(f, dxpl_id, H5AC_noblock_dxpl_id) < 0)
+    if(H5C_dest(f, dxpl_id, H5AC_dxpl_id) < 0)
         HGOTO_ERROR(H5E_CACHE, H5E_CANTFREE, FAIL, "can't destroy cache")
     f->shared->cache = NULL;
 
@@ -690,8 +633,7 @@ H5AC_dest(H5F_t *f, hid_t dxpl_id)
         if(aux_ptr->candidate_slist_ptr != NULL)
             H5SL_close(aux_ptr->candidate_slist_ptr);
         aux_ptr->magic = 0;
-        H5FL_FREE(H5AC_aux_t, aux_ptr);
-        aux_ptr = NULL;
+        aux_ptr = H5FL_FREE(H5AC_aux_t, aux_ptr);
     } /* end if */
 #endif /* H5_HAVE_PARALLEL */
 
@@ -759,7 +701,7 @@ H5AC_expunge_entry(H5F_t *f,
 
     result = H5C_expunge_entry(f,
 		               dxpl_id,
-                               H5AC_noblock_dxpl_id,
+                               H5AC_dxpl_id,
                                type,
                                addr,
                                flags);
@@ -838,7 +780,7 @@ H5AC_flush(H5F_t *f, hid_t dxpl_id)
 #endif /* H5_HAVE_PARALLEL */
 
     /* Flush the cache */
-    if(H5C_flush_cache(f, dxpl_id, H5AC_noblock_dxpl_id, H5AC__NO_FLAGS_SET) < 0)
+    if(H5C_flush_cache(f, dxpl_id, H5AC_dxpl_id, H5AC__NO_FLAGS_SET) < 0)
         HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush cache.")
 
 done:
@@ -973,7 +915,7 @@ H5AC_insert_entry(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t add
 #endif /* H5AC__TRACE_FILE_ENABLED */
 
     /* Insert entry into metadata cache */
-    if(H5C_insert_entry(f, dxpl_id, H5AC_noblock_dxpl_id, type, addr, thing, flags) < 0)
+    if(H5C_insert_entry(f, dxpl_id, H5AC_dxpl_id, type, addr, thing, flags) < 0)
         HGOTO_ERROR(H5E_CACHE, H5E_CANTINS, FAIL, "H5C_insert_entry() failed")
 
 #if H5AC__TRACE_FILE_ENABLED
@@ -994,7 +936,7 @@ H5AC_insert_entry(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t add
 
         /* Check if we should try to flush */
         if(aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold)
-            if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0)
+            if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0)
                 HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.")
     } /* end if */
 }
@@ -1147,7 +1089,7 @@ H5AC_move_entry(H5F_t *f, const H5AC_class_t *type, haddr_t old_addr, haddr_t ne
 #ifdef H5_HAVE_PARALLEL
     /* Check if we should try to flush */
     if(NULL != aux_ptr && aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold) {
-        if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0)
+        if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0)
             HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.")
     } /* end if */
 #endif /* H5_HAVE_PARALLEL */
@@ -1309,7 +1251,7 @@ H5AC_protect(H5F_t *f,
 
     thing = H5C_protect(f,
 		        dxpl_id,
-                        H5AC_noblock_dxpl_id,
+                        H5AC_dxpl_id,
 			type,
 			addr,
 			udata,
@@ -1578,13 +1520,13 @@ H5AC_unprotect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr,
     } /* end if */
 #endif /* H5_HAVE_PARALLEL */
 
-    if(H5C_unprotect(f, dxpl_id, H5AC_noblock_dxpl_id, type, addr, thing, flags) < 0)
+    if(H5C_unprotect(f, dxpl_id, H5AC_dxpl_id, type, addr, thing, flags) < 0)
         HGOTO_ERROR(H5E_CACHE, H5E_CANTUNPROTECT, FAIL, "H5C_unprotect() failed.")
 
 #ifdef H5_HAVE_PARALLEL
     /* Check if we should try to flush */
     if((aux_ptr != NULL) && (aux_ptr->dirty_bytes >= aux_ptr->dirty_bytes_threshold)) {
-        if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0)
+        if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_TO_MIN_CLEAN) < 0)
             HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.")
     } /* end if */
 #endif /* H5_HAVE_PARALLEL */
@@ -2676,7 +2618,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr)
          */
         if ( aux_ptr->sync_point_done != NULL ) {
 
-            addr_buf_ptr = H5MM_malloc((size_t)num_entries * sizeof(haddr_t));
+            addr_buf_ptr = (haddr_t *)H5MM_malloc((size_t)num_entries * sizeof(haddr_t));
 
             if ( addr_buf_ptr == NULL ) {
 
@@ -2722,8 +2664,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr)
             }
 
             slist_entry_ptr->magic = 0;
-            H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-            slist_entry_ptr = NULL;
+            slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
             aux_ptr->c_slist_len -= 1;
 
@@ -2732,7 +2673,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr)
             /* and also remove the matching entry from the dirtied list
              * if it exists.
              */
-            if((slist_entry_ptr = H5SL_search(aux_ptr->d_slist_ptr, (void *)(&addr))) != NULL) {
+            if((slist_entry_ptr = (H5AC_slist_entry_t *)H5SL_search(aux_ptr->d_slist_ptr, (void *)(&addr))) != NULL) {
                 HDassert( slist_entry_ptr->magic == H5AC__H5AC_SLIST_ENTRY_T_MAGIC );
                 HDassert( slist_entry_ptr->addr == addr );
 
@@ -2740,8 +2681,7 @@ H5AC_broadcast_clean_list(H5AC_t * cache_ptr)
                     HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.")
 
                 slist_entry_ptr->magic = 0;
-                H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-                slist_entry_ptr = NULL;
+                slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
                 aux_ptr->d_slist_len -= 1;
 
@@ -2803,12 +2743,12 @@ done:
 #ifdef H5_HAVE_PARALLEL
 static herr_t
 H5AC_check_if_write_permitted(const H5F_t *f,
-                              hid_t UNUSED dxpl_id,
+                              hid_t H5_ATTR_UNUSED dxpl_id,
                               hbool_t * write_permitted_ptr)
 #else /* H5_HAVE_PARALLEL */
 static herr_t
-H5AC_check_if_write_permitted(const H5F_t UNUSED * f,
-                              hid_t UNUSED dxpl_id,
+H5AC_check_if_write_permitted(const H5F_t H5_ATTR_UNUSED * f,
+                              hid_t H5_ATTR_UNUSED dxpl_id,
                               hbool_t * write_permitted_ptr)
 #endif /* H5_HAVE_PARALLEL */
 {
@@ -3033,8 +2973,7 @@ H5AC_copy_candidate_list_to_buffer(H5AC_t * cache_ptr,
             HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from candidate entry slist.")
 
         slist_entry_ptr->magic = 0;
-        H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-        slist_entry_ptr = NULL;
+        slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
         aux_ptr->candidate_slist_len -= 1;
 
@@ -3201,8 +3140,7 @@ H5AC_log_deleted_entry(H5AC_t * cache_ptr,
                 HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.")
 
             slist_entry_ptr->magic = 0;
-            H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-            slist_entry_ptr = NULL;
+            slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
             aux_ptr->d_slist_len -= 1;
 
@@ -3218,8 +3156,7 @@ H5AC_log_deleted_entry(H5AC_t * cache_ptr,
                 HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from cleaned entry slist.")
 
             slist_entry_ptr->magic = 0;
-            H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-            slist_entry_ptr = NULL;
+            slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
             aux_ptr->c_slist_len -= 1;
 
@@ -3328,8 +3265,7 @@ H5AC_log_dirtied_entry(const H5AC_info_t * entry_ptr,
                     HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from clean entry slist.")
 
                 slist_entry_ptr->magic = 0;
-                H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-                slist_entry_ptr = NULL;
+                slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
                 aux_ptr->c_slist_len -= 1;
 
@@ -3380,7 +3316,7 @@ H5AC_log_flushed_entry(H5C_t * cache_ptr,
                        haddr_t addr,
                        hbool_t was_dirty,
                        unsigned flags,
-                       int UNUSED type_id)
+                       int H5_ATTR_UNUSED type_id)
 {
     herr_t               ret_value = SUCCEED;    /* Return value */
     hbool_t		 cleared;
@@ -3423,8 +3359,7 @@ H5AC_log_flushed_entry(H5C_t * cache_ptr,
             }
 
             slist_entry_ptr->magic = 0;
-            H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-            slist_entry_ptr = NULL;
+            slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
             aux_ptr->c_slist_len -= 1;
 
@@ -3445,8 +3380,7 @@ H5AC_log_flushed_entry(H5C_t * cache_ptr,
             }
 
             slist_entry_ptr->magic = 0;
-            H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-            slist_entry_ptr = NULL;
+            slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
             aux_ptr->d_slist_len -= 1;
 
@@ -3676,8 +3610,7 @@ H5AC_log_moved_entry(const H5F_t *f,
             }
 
             slist_entry_ptr->magic = 0;
-            H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
-            slist_entry_ptr = NULL;
+            slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, slist_entry_ptr);
 
             aux_ptr->c_slist_len -= 1;
 
@@ -4058,7 +3991,7 @@ H5AC_propagate_flushed_and_still_clean_entries_list(H5F_t  * f,
         HDassert( aux_ptr->c_slist_len == 0 );
     } /* end if */
     else {
-        if(H5AC_receive_and_apply_clean_list(f, dxpl_id, H5AC_noblock_dxpl_id, cache_ptr) < 0)
+        if(H5AC_receive_and_apply_clean_list(f, dxpl_id, H5AC_dxpl_id, cache_ptr) < 0)
             HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "Can't receive and/or process clean slist broadcast.")
     } /* end else */
 
@@ -4632,7 +4565,7 @@ H5AC_rsp__p0_only__flush(H5F_t *f,
     } /* end if */
 
     /* Propagate cleaned entries to other ranks. */
-    if(H5AC_propagate_flushed_and_still_clean_entries_list(f, H5AC_noblock_dxpl_id, cache_ptr) < 0)
+    if(H5AC_propagate_flushed_and_still_clean_entries_list(f, H5AC_dxpl_id, cache_ptr) < 0)
         HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't propagate clean entries list.")
 
 done:
@@ -4739,7 +4672,7 @@ H5AC_rsp__p0_only__flush_to_min_clean(H5F_t *f,
              */
             aux_ptr->write_permitted = TRUE;
 
-            result = H5C_flush_to_min_clean(f, dxpl_id, H5AC_noblock_dxpl_id);
+            result = H5C_flush_to_min_clean(f, dxpl_id, H5AC_dxpl_id);
 
             aux_ptr->write_permitted = FALSE;
 
@@ -4983,7 +4916,7 @@ H5AC_tidy_cache_0_lists(H5AC_t * cache_ptr,
                 HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from dirty entry slist.")
 
             d_slist_entry_ptr->magic = 0;
-            H5FL_FREE(H5AC_slist_entry_t, d_slist_entry_ptr);
+            d_slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, d_slist_entry_ptr);
 
             aux_ptr->d_slist_len -= 1;
 
@@ -4999,7 +4932,7 @@ H5AC_tidy_cache_0_lists(H5AC_t * cache_ptr,
                 HGOTO_ERROR(H5E_CACHE, H5E_CANTDELETE, FAIL, "Can't delete entry from clean entry slist.")
 
             c_slist_entry_ptr->magic = 0;
-            H5FL_FREE(H5AC_slist_entry_t, c_slist_entry_ptr);
+            c_slist_entry_ptr = H5FL_FREE(H5AC_slist_entry_t, c_slist_entry_ptr);
 
             aux_ptr->c_slist_len -= 1;
 
@@ -5042,7 +4975,7 @@ H5AC_flush_entries(H5F_t *f)
 
     /* Check if we have >1 ranks */
     if(f->shared->cache->aux_ptr) {
-        if(H5AC_run_sync_point(f, H5AC_noblock_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_CACHE) < 0)
+        if(H5AC_run_sync_point(f, H5AC_dxpl_id, H5AC_SYNC_POINT_OP__FLUSH_CACHE) < 0)
             HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't run sync point.")
     } /* end if */
 
diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h
index 8fa6396..724d44a 100644
--- a/src/H5ACprivate.h
+++ b/src/H5ACprivate.h
@@ -170,20 +170,10 @@ typedef H5C_t	H5AC_t;
 /* Metadata specific properties for FAPL */
 /* (Only used for parallel I/O) */
 #ifdef H5_HAVE_PARALLEL
-/* Definitions for "block before metadata write" property */
-#define H5AC_BLOCK_BEFORE_META_WRITE_NAME       "H5AC_block_before_meta_write"
-#define H5AC_BLOCK_BEFORE_META_WRITE_SIZE       sizeof(unsigned)
-#define H5AC_BLOCK_BEFORE_META_WRITE_DEF        0
-
 /* Definitions for "collective metadata write" property */
 #define H5AC_COLLECTIVE_META_WRITE_NAME         "H5AC_collective_metadata_write"
 #define H5AC_COLLECTIVE_META_WRITE_SIZE         sizeof(unsigned)
 #define H5AC_COLLECTIVE_META_WRITE_DEF          0
-
-/* Definitions for "library internal" property */
-#define H5AC_LIBRARY_INTERNAL_NAME       "H5AC_library_internal"
-#define H5AC_LIBRARY_INTERNAL_SIZE       sizeof(unsigned)
-#define H5AC_LIBRARY_INTERNAL_DEF        0
 #endif /* H5_HAVE_PARALLEL */
 
 /* Dataset transfer property list for flush calls */
diff --git a/src/H5Abtree2.c b/src/H5Abtree2.c
index 9b7dba6..8958e25 100644
--- a/src/H5Abtree2.c
+++ b/src/H5Abtree2.c
@@ -164,7 +164,7 @@ const H5B2_class_t H5A_BT2_CORDER[1]={{ /* B-tree class information */
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A_dense_fh_name_cmp(const void *obj, size_t UNUSED obj_len, void *_udata)
+H5A_dense_fh_name_cmp(const void *obj, size_t H5_ATTR_UNUSED obj_len, void *_udata)
 {
     H5A_fh_ud_cmp_t *udata = (H5A_fh_ud_cmp_t *)_udata;         /* User data for 'op' callback */
     H5A_t *attr = NULL;                 /* Pointer to attribute created from heap object */
@@ -319,7 +319,7 @@ H5A_dense_btree2_name_compare(const void *_bt2_udata, const void *_bt2_rec)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A_dense_btree2_name_encode(uint8_t *raw, const void *_nrecord, void UNUSED *ctx)
+H5A_dense_btree2_name_encode(uint8_t *raw, const void *_nrecord, void H5_ATTR_UNUSED *ctx)
 {
     const H5A_dense_bt2_name_rec_t *nrecord = (const H5A_dense_bt2_name_rec_t *)_nrecord;
 
@@ -350,7 +350,7 @@ H5A_dense_btree2_name_encode(uint8_t *raw, const void *_nrecord, void UNUSED *ct
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A_dense_btree2_name_decode(const uint8_t *raw, void *_nrecord, void UNUSED *ctx)
+H5A_dense_btree2_name_decode(const uint8_t *raw, void *_nrecord, void H5_ATTR_UNUSED *ctx)
 {
     H5A_dense_bt2_name_rec_t *nrecord = (H5A_dense_bt2_name_rec_t *)_nrecord;
 
@@ -381,8 +381,8 @@ H5A_dense_btree2_name_decode(const uint8_t *raw, void *_nrecord, void UNUSED *ct
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A_dense_btree2_name_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
-    int indent, int fwidth, const void *_nrecord, const void UNUSED *_udata)
+H5A_dense_btree2_name_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
+    int indent, int fwidth, const void *_nrecord, const void H5_ATTR_UNUSED *_udata)
 {
     const H5A_dense_bt2_name_rec_t *nrecord = (const H5A_dense_bt2_name_rec_t *)_nrecord;
 
@@ -479,7 +479,7 @@ H5A_dense_btree2_corder_compare(const void *_bt2_udata, const void *_bt2_rec)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A_dense_btree2_corder_encode(uint8_t *raw, const void *_nrecord, void UNUSED *ctx)
+H5A_dense_btree2_corder_encode(uint8_t *raw, const void *_nrecord, void H5_ATTR_UNUSED *ctx)
 {
     const H5A_dense_bt2_corder_rec_t *nrecord = (const H5A_dense_bt2_corder_rec_t *)_nrecord;
 
@@ -509,7 +509,7 @@ H5A_dense_btree2_corder_encode(uint8_t *raw, const void *_nrecord, void UNUSED *
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A_dense_btree2_corder_decode(const uint8_t *raw, void *_nrecord, void UNUSED *ctx)
+H5A_dense_btree2_corder_decode(const uint8_t *raw, void *_nrecord, void H5_ATTR_UNUSED *ctx)
 {
     H5A_dense_bt2_corder_rec_t *nrecord = (H5A_dense_bt2_corder_rec_t *)_nrecord;
 
@@ -539,8 +539,8 @@ H5A_dense_btree2_corder_decode(const uint8_t *raw, void *_nrecord, void UNUSED *
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A_dense_btree2_corder_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
-    int indent, int fwidth, const void *_nrecord, const void UNUSED *_udata)
+H5A_dense_btree2_corder_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
+    int indent, int fwidth, const void *_nrecord, const void H5_ATTR_UNUSED *_udata)
 {
     const H5A_dense_bt2_corder_rec_t *nrecord = (const H5A_dense_bt2_corder_rec_t *)_nrecord;
 
diff --git a/src/H5Adense.c b/src/H5Adense.c
index 0b73a20..a5d35fc 100644
--- a/src/H5Adense.c
+++ b/src/H5Adense.c
@@ -538,7 +538,7 @@ H5A_dense_insert(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, H5A_t *attr)
     udata.common.shared_fheap = shared_fheap;
     udata.common.name = attr->shared->name;
     udata.common.name_hash = H5_checksum_lookup3(attr->shared->name, HDstrlen(attr->shared->name), 0);
-    H5_ASSIGN_OVERFLOW(udata.common.flags, mesg_flags, unsigned, uint8_t);
+    H5_CHECKED_ASSIGN(udata.common.flags, uint8_t, mesg_flags, unsigned);
     udata.common.corder = attr->shared->crt_idx;
     udata.common.found_op = NULL;
     udata.common.found_op_data = NULL;
@@ -845,7 +845,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A__dense_copy_fh_cb(const void *obj, size_t UNUSED obj_len, void *_udata)
+H5A__dense_copy_fh_cb(const void *obj, size_t H5_ATTR_UNUSED obj_len, void *_udata)
 {
     H5A_fh_ud_cp_t *udata = (H5A_fh_ud_cp_t *)_udata;       /* User data for fractal heap 'op' callback */
     herr_t ret_value = SUCCEED;   /* Return value */
diff --git a/src/H5Aint.c b/src/H5Aint.c
index b0c068d..81fa8b0 100644
--- a/src/H5Aint.c
+++ b/src/H5Aint.c
@@ -255,7 +255,7 @@ H5A_create(const H5G_loc_t *loc, const char *name, const H5T_t *type,
     /* Get # of elements for attribute's dataspace */
     if((snelmts = H5S_GET_EXTENT_NPOINTS(attr->shared->ds)) < 0)
         HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, NULL, "dataspace is invalid")
-    H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, size_t);
+    H5_CHECKED_ASSIGN(nelmts, size_t, snelmts, hssize_t);
 
     HDassert(attr->shared->dt_size > 0);
     HDassert(attr->shared->ds_size > 0);
@@ -511,7 +511,7 @@ H5A_write(H5A_t *attr, const H5T_t *mem_type, const void *buf, hid_t dxpl_id)
     /* Get # of elements for attribute's dataspace */
     if((snelmts = H5S_GET_EXTENT_NPOINTS(attr->shared->ds)) < 0)
         HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, FAIL, "dataspace is invalid")
-    H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, size_t);
+    H5_CHECKED_ASSIGN(nelmts, size_t, snelmts, hssize_t);
 
     /* If there's actually data elements for the attribute, make a copy of the data passed in */
     if(nelmts > 0) {
@@ -624,7 +624,7 @@ H5A_read(const H5A_t *attr, const H5T_t *mem_type, void *buf, hid_t dxpl_id)
     /* Create buffer for data to store on disk */
     if((snelmts = H5S_GET_EXTENT_NPOINTS(attr->shared->ds)) < 0)
         HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, FAIL, "dataspace is invalid")
-    H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, size_t);
+    H5_CHECKED_ASSIGN(nelmts, size_t, snelmts, hssize_t);
 
     if(nelmts > 0) {
         /* Get the memory and file datatype sizes */
@@ -691,39 +691,31 @@ done:
 /*-------------------------------------------------------------------------
  * Function:	H5A_get_space
  *
- * Purpose:	Returns and ID for the dataspace of the attribute.
+ * Purpose:	Returns dataspace of the attribute.
  *
- * Return:	Success:	ID for dataspace
+ * Return:	Success:	dataspace
  *
- *		Failure:	FAIL
+ *		Failure:	NULL
  *
  * Programmer:	Mohamad Chaarawi
  *		March, 2012
  *
  *-------------------------------------------------------------------------
  */
-hid_t
+H5S_t *
 H5A_get_space(H5A_t *attr)
 {
-    H5S_t	*ds = NULL;
-    hid_t       ret_value = FAIL;
+    H5S_t *ret_value = NULL;
 
     FUNC_ENTER_NOAPI_NOINIT
 
-    /* Copy the attribute's dataspace */
-    if(NULL == (ds = H5S_copy(attr->shared->ds, FALSE, TRUE)))
-        HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, FAIL, "unable to copy dataspace")
+    HDassert(attr);
 
-    /* Atomize */
-    if((ret_value = H5I_register(H5I_DATASPACE, ds, TRUE)) < 0)
-        HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace atom")
+    /* Copy the attribute's dataspace */
+    if(NULL == (ret_value = H5S_copy(attr->shared->ds, FALSE, TRUE)))
+        HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, NULL, "unable to copy dataspace")
 
 done:
-    if(ret_value < 0 && ds) {
-        if(H5S_close(ds) < 0)
-            HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace")
-    } /* end if */
-
     FUNC_LEAVE_NOAPI(ret_value)
 } /* end H5A_get_space() */
 
@@ -731,28 +723,30 @@ done:
 /*-------------------------------------------------------------------------
  * Function:	H5A_get_type
  *
- * Purpose:	Returns and ID for the datatype of the dataset.
+ * Purpose:	Returns datatype of the dataset.
  *
- * Return:	Success:	ID for datatype
+ * Return:	Success:	datatype
  *
- *		Failure:	FAIL
+ *		Failure:	NULL
  *
  * Programmer:	Mohamad Chaarawi
  *		March, 2012
  *
  *-------------------------------------------------------------------------
  */
-hid_t
+H5T_t *
 H5A_get_type(H5A_t *attr)
 {
-    H5T_t	*dt = NULL;
-    hid_t       ret_value = FAIL;
+    H5T_t *dt = NULL;
+    H5T_t *ret_value = NULL;
 
     FUNC_ENTER_NOAPI_NOINIT
 
+    HDassert(attr);
+
     /* Patch the datatype's "top level" file pointer */
     if(H5T_patch_file(attr->shared->dt, attr->oloc.file) < 0)
-        HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, FAIL, "unable to patch datatype's file pointer")
+        HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, NULL, "unable to patch datatype's file pointer")
 
     /*
      * Copy the attribute's datatype.  If the type is a named type then
@@ -760,25 +754,21 @@ H5A_get_type(H5A_t *attr)
      * read-only.
      */
     if(NULL == (dt = H5T_copy(attr->shared->dt, H5T_COPY_REOPEN)))
-        HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, FAIL, "unable to copy datatype")
+        HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, NULL, "unable to copy datatype")
 
     /* Mark any datatypes as being in memory now */
     if(H5T_set_loc(dt, NULL, H5T_LOC_MEMORY) < 0)
-        HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "invalid datatype location")
+        HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, NULL, "invalid datatype location")
 
     /* Lock copied type */
     if(H5T_lock(dt, FALSE) < 0)
-        HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to lock transient datatype")
+        HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, NULL, "unable to lock transient datatype")
 
-    /* Create an atom */
-    if((ret_value = H5I_register(H5I_DATATYPE, dt, TRUE)) < 0)
-        HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register datatype")
+    ret_value = dt;
 
 done:
-    if(ret_value < 0) {
-        if(dt && H5T_close(dt) < 0)
-            HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release datatype")
-    } /* end if */
+    if(!ret_value && dt && (H5T_close(dt) < 0))
+        HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, NULL, "unable to release datatype")
 
     FUNC_LEAVE_NOAPI(ret_value)
 } /* end H5A_get_type() */
@@ -1190,7 +1180,7 @@ H5A_type(const H5A_t *attr)
  */
 htri_t
 H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name,
-                   hid_t lapl_id)
+                   hid_t lapl_id, hid_t dxpl_id)
 {
     H5G_loc_t   obj_loc;                /* Location used to open group */
     H5G_name_t  obj_path;            	/* Opened object group hier. path */
@@ -1206,12 +1196,12 @@ H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name,
     H5G_loc_reset(&obj_loc);
 
     /* Find the object's location */
-    if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0)
+    if(H5G_loc_find(&loc, obj_name, &obj_loc/*out*/, lapl_id, dxpl_id) < 0)
         HGOTO_ERROR(H5E_ATTR, H5E_NOTFOUND, FAIL, "object not found")
     loc_found = TRUE;
 
     /* Check if the attribute exists */
-    if((ret_value = H5O_attr_exists(obj_loc.oloc, attr_name, H5AC_ind_dxpl_id)) < 0)
+    if((ret_value = H5O_attr_exists(obj_loc.oloc, attr_name, dxpl_id)) < 0)
         HGOTO_ERROR(H5E_ATTR, H5E_CANTGET, FAIL, "unable to determine if attribute exists")
 
 done:
@@ -1246,8 +1236,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5A__compact_build_table_cb(H5O_t UNUSED *oh, H5O_mesg_t *mesg/*in,out*/,
-    unsigned sequence, unsigned UNUSED *oh_modified, void *_udata/*in,out*/)
+H5A__compact_build_table_cb(H5O_t H5_ATTR_UNUSED *oh, H5O_mesg_t *mesg/*in,out*/,
+    unsigned sequence, unsigned H5_ATTR_UNUSED *oh_modified, void *_udata/*in,out*/)
 {
     H5A_compact_bt_ud_t *udata = (H5A_compact_bt_ud_t *)_udata;   /* Operator user data */
     herr_t ret_value = H5_ITER_CONT;    /* Return value */
@@ -1687,7 +1677,7 @@ H5A_attr_iterate_table(const H5A_attr_table_t *atable, hsize_t skip,
         *last_attr = skip;
 
     /* Iterate over attribute messages */
-    H5_ASSIGN_OVERFLOW(/* To: */ u, /* From: */ skip, /* From: */ hsize_t, /* To: */ size_t)
+    H5_CHECKED_ASSIGN(u, size_t, skip, hsize_t)
     for(; u < atable->nattrs && !ret_value; u++) {
         /* Check which type of callback to make */
         switch(attr_op->op_type) {
@@ -2019,7 +2009,11 @@ H5A_attr_copy_file(const H5A_t *attr_src, H5F_t *file_dst, hbool_t *recompute_si
         *recompute_size = TRUE;
 
     /* Compute the size of the data */
-    H5_ASSIGN_OVERFLOW(attr_dst->shared->data_size, H5S_GET_EXTENT_NPOINTS(attr_dst->shared->ds) * H5T_get_size(attr_dst->shared->dt), hssize_t, size_t);
+    /* NOTE: This raises warnings. If we are going to be serious about
+     * expecting overflow here, we should implement testing similar to
+     * that described in CERT bulletins INT30-C and INT32-C.
+     */
+    H5_CHECKED_ASSIGN(attr_dst->shared->data_size, size_t, H5S_GET_EXTENT_NPOINTS(attr_dst->shared->ds) * H5T_get_size(attr_dst->shared->dt), hssize_t);
 
     /* Copy (& convert) the data, if necessary */
     if(attr_src->shared->data) {
@@ -2378,7 +2372,7 @@ done:
  */
 herr_t
 H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name,
-                   const char *new_attr_name, hid_t lapl_id)
+                   const char *new_attr_name, hid_t lapl_id, hid_t dxpl_id)
 {
     H5G_loc_t   obj_loc;                /* Location used to open group */
     H5G_name_t  obj_path;            	/* Opened object group hier. path */
@@ -2401,7 +2395,7 @@ H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_nam
         loc_found = TRUE;
 
         /* Call attribute rename routine */
-        if(H5O_attr_rename(obj_loc.oloc, H5AC_dxpl_id, old_attr_name, new_attr_name) < 0)
+        if(H5O_attr_rename(obj_loc.oloc, dxpl_id, old_attr_name, new_attr_name) < 0)
             HGOTO_ERROR(H5E_ATTR, H5E_CANTRENAME, FAIL, "can't rename attribute")
     } /* end if */
 
diff --git a/src/H5Apkg.h b/src/H5Apkg.h
index efa2b74..f5e588c 100644
--- a/src/H5Apkg.h
+++ b/src/H5Apkg.h
@@ -198,17 +198,15 @@ H5_DLL herr_t H5A_read(const H5A_t *attr, const H5T_t *mem_type, void *buf, hid_
 H5_DLL ssize_t H5A_get_name(H5A_t *attr, size_t buf_size, char *buf);
 H5_DLL H5A_t *H5A_copy(H5A_t *new_attr, const H5A_t *old_attr);
 H5_DLL herr_t H5A_get_info(const H5A_t *attr, H5A_info_t *ainfo);
-H5_DLL hid_t H5A_get_type(H5A_t *attr);
-H5_DLL hid_t H5A_get_space(H5A_t *attr);
 H5_DLL hid_t H5A_get_create_plist(H5A_t* attr);
 H5_DLL herr_t H5A_free(H5A_t *attr);
 H5_DLL herr_t H5A_close(H5A_t *attr);
 H5_DLL htri_t H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo);
 H5_DLL herr_t H5A_set_version(const H5F_t *f, H5A_t *attr);
 H5_DLL herr_t H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name,
-    const char *new_attr_name, hid_t lapl_id);
+    const char *new_attr_name, hid_t lapl_id, hid_t dxpl_id);
 H5_DLL htri_t H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name,
-    hid_t lapl_id);
+    hid_t lapl_id, hid_t dxpl_id);
 
 /* Attribute "dense" storage routines */
 H5_DLL herr_t H5A_dense_create(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo);
diff --git a/src/H5Aprivate.h b/src/H5Aprivate.h
index 6646fa2..6b62692 100644
--- a/src/H5Aprivate.h
+++ b/src/H5Aprivate.h
@@ -25,6 +25,7 @@
 /* Private headers needed by this file */
 #include "H5Gprivate.h"		/* Groups				*/
 #include "H5Oprivate.h"         /* Object headers                       */
+#include "H5Sprivate.h"         /* Dataspace                            */
 #include "H5Tprivate.h"         /* Datatypes                            */
 
 
@@ -77,6 +78,8 @@ typedef struct H5A_attr_iter_op_t {
 H5_DLL struct H5O_loc_t *H5A_oloc(H5A_t *attr);
 H5_DLL H5G_name_t *H5A_nameof(H5A_t *attr);
 H5_DLL H5T_t *H5A_type(const H5A_t *attr);
+H5_DLL H5T_t *H5A_get_type(H5A_t *attr);
+H5_DLL H5S_t *H5A_get_space(H5A_t *attr);
 H5_DLL herr_t H5O_attr_iterate_real(hid_t loc_id, const H5O_loc_t *loc,
     hid_t dxpl_id, H5_index_t idx_type, H5_iter_order_t order, hsize_t skip,
     hsize_t *last_attr, const H5A_attr_iter_op_t *attr_op, void *op_data);
diff --git a/src/H5B.c b/src/H5B.c
index 414ea67..534118e 100644
--- a/src/H5B.c
+++ b/src/H5B.c
@@ -510,22 +510,18 @@ H5B_split(H5F_t *f, hid_t dxpl_id, H5B_ins_ud_t *bt_ud, unsigned idx,
     bt_ud->bt->nchildren = nleft;
 
     /*
-     * Update sibling pointers.
+     * Update other sibling pointers.
      */
     split_bt_ud->bt->left = bt_ud->addr;
     split_bt_ud->bt->right = bt_ud->bt->right;
 
     if(H5F_addr_defined(bt_ud->bt->right)) {
-        H5B_t	*tmp_bt;
-        H5B_cache_ud_t cache_udata2;         /* User-data for metadata cache callback */
+        H5B_t   *tmp_bt;
 
-        cache_udata2.f = f;
-        cache_udata2.type = shared->type;
-        cache_udata2.rc_shared = bt_ud->bt->rc_shared;
-	if(NULL == (tmp_bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, bt_ud->bt->right, &cache_udata2, H5AC_WRITE)))
-	    HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load right sibling")
+        if(NULL == (tmp_bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, bt_ud->bt->right, &cache_udata, H5AC_WRITE)))
+            HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load right sibling")
 
-	tmp_bt->left = split_bt_ud->addr;
+        tmp_bt->left = split_bt_ud->addr;
 
         if(H5AC_unprotect(f, dxpl_id, H5AC_BT, bt_ud->bt->right, tmp_bt, H5AC__DIRTIED_FLAG) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node")
@@ -539,6 +535,7 @@ done:
             HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node")
         split_bt_ud->bt = NULL;
         split_bt_ud->addr = HADDR_UNDEF;
+        split_bt_ud->cache_flags = H5AC__NO_FLAGS_SET;
     } /* end if */
 
     FUNC_LEAVE_NOAPI(ret_value)
@@ -559,8 +556,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr,
-           void *udata)
+H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, void *udata)
 {
     /*
      * These are defined this way to satisfy alignment constraints.
@@ -609,6 +605,8 @@ H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr,
             &lt_key_changed, md_key, udata, rt_key, &rt_key_changed,
             &split_bt_ud/*out*/)) < 0)
 	HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "unable to insert key")
+
+    /* Check if the root node split */
     if(H5B_INS_NOOP == my_ins) {
         HDassert(!split_bt_ud.bt);
         HGOTO_DONE(SUCCEED)
@@ -633,7 +631,7 @@ H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr,
      */
     H5_CHECK_OVERFLOW(shared->sizeof_rnode,size_t,hsize_t);
     if(HADDR_UNDEF == (old_root_addr = H5MF_alloc(f, H5FD_MEM_BTREE, dxpl_id, (hsize_t)shared->sizeof_rnode)))
-        HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "unable to allocate file space to move root")
+	HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "unable to allocate file space to move root")
 
     /*
      * Move the node to the new location
@@ -641,7 +639,7 @@ H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr,
 
     /* Make a copy of the old root information */
     if(NULL == (new_root_bt = H5B_copy(bt_ud.bt)))
-        HGOTO_ERROR(H5E_BTREE, H5E_CANTCOPY, FAIL, "unable to copy old root");
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTCOPY, FAIL, "unable to copy old root")
 
     /* Unprotect the old root so we can move it.  Also force it to be marked
      * dirty so it is written to the new location. */
@@ -651,7 +649,7 @@ H5B_insert(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr,
 
     /* Move the location of the old root on the disk */
     if(H5AC_move_entry(f, H5AC_BT, bt_ud.addr, old_root_addr) < 0)
-        HGOTO_ERROR(H5E_BTREE, H5E_CANTSPLIT, FAIL, "unable to move B-tree root node")
+	HGOTO_ERROR(H5E_BTREE, H5E_CANTSPLIT, FAIL, "unable to move B-tree root node")
     bt_ud.addr = old_root_addr;
 
     /* Update the split b-tree's left pointer to point to the new location */
@@ -769,7 +767,7 @@ H5B_insert_child(H5B_t *bt, unsigned *bt_flags, unsigned idx,
     *bt_flags |= H5AC__DIRTIED_FLAG;
 
     FUNC_LEAVE_NOAPI(SUCCEED)
-}
+} /* end H5B_insert_child() */
 
 

 /*-------------------------------------------------------------------------
@@ -1046,6 +1044,10 @@ H5B_insert_helper(H5F_t *f, hid_t dxpl_id, H5B_ins_ud_t *bt_ud,
         else
             HDmemcpy(rt_key, H5B_NKEY(bt, shared, idx + 1), type->sizeof_nkey);
     } /* end if */
+
+    /*
+     * Handle changes/additions to children
+     */
     if(H5B_INS_CHANGE == my_ins) {
 	/*
 	 * The insertion simply changed the address for the child.
@@ -1081,7 +1083,7 @@ H5B_insert_helper(H5F_t *f, hid_t dxpl_id, H5B_ins_ud_t *bt_ud,
 	/* Insert the child */
 	if(H5B_insert_child(tmp_bt, tmp_bt_flags_ptr, idx, new_child_bt_ud.addr, my_ins, md_key) < 0)
 	    HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, H5B_INS_ERROR, "can't insert child")
-    }
+    } /* end else-if */
 
     /*
      * If this node split, return the mid key (the one that is shared
@@ -1113,7 +1115,7 @@ done:
             HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5B_INS_ERROR, "unable to unprotect new child")
 
     FUNC_LEAVE_NOAPI(ret_value)
-}
+} /* end H5B_insert_helper() */
 
 

 /*-------------------------------------------------------------------------
@@ -1134,13 +1136,12 @@ static herr_t
 H5B_iterate_helper(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr,
     H5B_operator_t op, void *udata)
 {
-    H5B_t		*bt = NULL;     /* Pointer to current B-tree node */
+    H5B_t               *bt = NULL;     /* Pointer to current B-tree node */
     H5RC_t	        *rc_shared;     /* Ref-counted shared info */
     H5B_shared_t        *shared;        /* Pointer to shared B-tree info */
     H5B_cache_ud_t      cache_udata;    /* User-data for metadata cache callback */
-    uint8_t		*native = NULL;	/* Array of keys in native format */
-    haddr_t		*child = NULL;	/* Array of child pointers */
-    herr_t		ret_value;      /* Return value */
+    unsigned            u;              /* Local index variable */
+    herr_t              ret_value = H5_ITER_CONT; /* Return value */
 
     FUNC_ENTER_NOAPI_NOINIT
 
@@ -1155,7 +1156,7 @@ H5B_iterate_helper(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t add
 
     /* Get shared info for B-tree */
     if(NULL == (rc_shared = (type->get_shared)(f, udata)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTGET, FAIL, "can't retrieve B-tree's shared ref. count object")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTGET, FAIL, "can't retrieve B-tree's shared ref. count object")
     shared = (H5B_shared_t *)H5RC_GET_OBJ(rc_shared);
     HDassert(shared);
 
@@ -1164,99 +1165,21 @@ H5B_iterate_helper(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t add
     cache_udata.type = type;
     cache_udata.rc_shared = rc_shared;
     if(NULL == (bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, addr, &cache_udata, H5AC_READ)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, H5_ITER_ERROR, "unable to load B-tree node")
-
-    if(bt->level > 0) {
-        haddr_t left_child = bt->child[0];     /* Address of left-most child in node */
-
-        /* Release current node */
-        if(H5AC_unprotect(f, dxpl_id, H5AC_BT, addr, bt, H5AC__NO_FLAGS_SET) < 0)
-            HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release B-tree node")
-        bt = NULL;
-
-	/* Keep following the left-most child until we reach a leaf node. */
-	if((ret_value = H5B_iterate_helper(f, dxpl_id, type, left_child, op, udata)) < 0)
-	    HGOTO_ERROR(H5E_BTREE, H5E_CANTLIST, H5_ITER_ERROR, "unable to list B-tree node")
-    } /* end if */
-    else {
-        unsigned nchildren;	/* Number of child pointers */
-        haddr_t	next_addr;      /* Address of next node to the right */
-
-        /* Allocate space for a copy of the native records & child pointers */
-        if(NULL == (native = H5FL_BLK_MALLOC(native_block, shared->sizeof_keys)))
-            HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, H5_ITER_ERROR, "memory allocation failed for shared B-tree native records")
-        if(NULL == (child = H5FL_SEQ_MALLOC(haddr_t, (size_t)shared->two_k)))
-            HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, H5_ITER_ERROR, "memory allocation failed for shared B-tree child addresses")
-
-        /* Cache information from this node */
-        nchildren = bt->nchildren;
-        next_addr = bt->right;
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, H5_ITER_ERROR, "unable to load B-tree node")
 
-        /* Copy the native keys & child pointers into local arrays */
-        HDmemcpy(native, bt->native, shared->sizeof_keys);
-        HDmemcpy(child, bt->child, (nchildren * sizeof(haddr_t)));
-
-        /* Release current node */
-        if(H5AC_unprotect(f, dxpl_id, H5AC_BT, addr, bt, H5AC__NO_FLAGS_SET) < 0)
-            HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release B-tree node")
-        bt = NULL;
-
-	/*
-	 * We've reached the left-most leaf.  Now follow the right-sibling
-	 * pointer from leaf to leaf until we've processed all leaves.
-	 */
-        ret_value = H5_ITER_CONT;
-	while(ret_value == H5_ITER_CONT) {
-            haddr_t	*curr_child;         /* Pointer to node's child addresses */
-            uint8_t	*curr_native;           /* Pointer to node's native keys */
-            unsigned	u;              /* Local index variable */
-
-	    /*
-	     * Perform the iteration operator, which might invoke an
-	     * application callback.
-	     */
-	    for(u = 0, curr_child = child, curr_native = native; u < nchildren && ret_value == H5_ITER_CONT; u++, curr_child++, curr_native += type->sizeof_nkey) {
-		ret_value = (*op)(f, dxpl_id, curr_native, *curr_child, curr_native + type->sizeof_nkey, udata);
-		if(ret_value < 0)
-                    HERROR(H5E_BTREE, H5E_CANTLIST, "iterator function failed");
-	    } /* end for */
-
-            /* Check for continuing iteration */
-            if(ret_value == H5_ITER_CONT) {
-                /* Check for another node */
-                if(H5F_addr_defined(next_addr)) {
-                    /* Protect the next node to the right */
-                    addr = next_addr;
-                    if(NULL == (bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, addr, &cache_udata, H5AC_READ)))
-                        HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, H5_ITER_ERROR, "B-tree node")
-
-                    /* Cache information from this node */
-                    nchildren = bt->nchildren;
-                    next_addr = bt->right;
-
-                    /* Copy the native keys & child pointers into local arrays */
-                    HDmemcpy(native, bt->native, shared->sizeof_keys);
-                    HDmemcpy(child, bt->child, nchildren * sizeof(haddr_t));
-
-                    /* Unprotect node */
-                    if(H5AC_unprotect(f, dxpl_id, H5AC_BT, addr, bt, H5AC__NO_FLAGS_SET) < 0)
-                        HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release B-tree node")
-                    bt = NULL;
-                } /* end if */
-                else
-                    /* Exit loop */
-                    break;
-            } /* end if */
-        } /* end while */
-    } /* end else */
+    /* Iterate over node's children */
+    for(u = 0; u < bt->nchildren && ret_value == H5_ITER_CONT; u++) {
+        if(bt->level > 0)
+            ret_value = H5B_iterate_helper(f, dxpl_id, type, bt->child[u], op, udata);
+        else
+            ret_value = (*op)(f, dxpl_id, H5B_NKEY(bt, shared, u), bt->child[u], H5B_NKEY(bt, shared, u + 1), udata);
+        if(ret_value < 0)
+            HERROR(H5E_BTREE, H5E_BADITER, "B-tree iteration failed");
+    } /* end for */
 
 done:
     if(bt && H5AC_unprotect(f, dxpl_id, H5AC_BT, addr, bt, H5AC__NO_FLAGS_SET) < 0)
         HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release B-tree node")
-    if(native)
-        native = H5FL_BLK_FREE(native_block, native);
-    if(child)
-        child = H5FL_SEQ_FREE(haddr_t, child);
 
     FUNC_LEAVE_NOAPI(ret_value)
 } /* end H5B_iterate_helper() */
@@ -1715,7 +1638,7 @@ H5B_delete(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, void
 
     /* Get shared info for B-tree */
     if(NULL == (rc_shared = (type->get_shared)(f, udata)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTGET, FAIL, "can't retrieve B-tree's shared ref. count object")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTGET, FAIL, "can't retrieve B-tree's shared ref. count object")
     shared = (H5B_shared_t *)H5RC_GET_OBJ(rc_shared);
     HDassert(shared);
 
@@ -1724,7 +1647,7 @@ H5B_delete(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, haddr_t addr, void
     cache_udata.type = type;
     cache_udata.rc_shared = rc_shared;
     if(NULL == (bt = (H5B_t *)H5AC_protect(f, dxpl_id, H5AC_BT, addr, &cache_udata, H5AC_WRITE)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load B-tree node")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load B-tree node")
 
     /* Iterate over all children in tree, deleting them */
     if(bt->level > 0) {
diff --git a/src/H5B2.c b/src/H5B2.c
index 6f81ced..7539a24 100644
--- a/src/H5B2.c
+++ b/src/H5B2.c
@@ -128,11 +128,11 @@ H5FL_DEFINE_STATIC(H5B2_t);
 H5B2_t *
 H5B2_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udata)
 {
-    H5B2_t	*bt2 = NULL;            /* Pointer to the B-tree */
-    H5B2_hdr_t	*hdr = NULL;            /* Pointer to the B-tree header */
+    H5B2_t      *bt2 = NULL;            /* Pointer to the B-tree */
+    H5B2_hdr_t  *hdr = NULL;            /* Pointer to the B-tree header */
     H5B2_hdr_cache_ud_t cache_udata;    /* User-data for callback */
     haddr_t     hdr_addr;               /* B-tree header address */
-    H5B2_t	*ret_value;             /* Return value */
+    H5B2_t      *ret_value;             /* Return value */
 
     FUNC_ENTER_NOAPI(NULL)
 
@@ -147,7 +147,7 @@ H5B2_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udat
 
     /* Create shared v2 B-tree header */
     if(HADDR_UNDEF == (hdr_addr = H5B2_hdr_create(f, dxpl_id, cparam, ctx_udata)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, NULL, "can't create v2 B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, NULL, "can't create v2 B-tree header")
 
     /* Create v2 B-tree wrapper */
     if(NULL == (bt2 = H5FL_MALLOC(H5B2_t)))
@@ -157,7 +157,7 @@ H5B2_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udat
     cache_udata.f = f;
     cache_udata.ctx_udata = ctx_udata;
     if(NULL == (hdr = (H5B2_hdr_t *)H5AC_protect(f, dxpl_id, H5AC_BT2_HDR, hdr_addr, &cache_udata, H5AC_WRITE)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, NULL, "unable to load B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, NULL, "unable to load B-tree header")
 
     /* Point v2 B-tree wrapper at header and bump it's ref count */
     bt2->hdr = hdr;
@@ -166,7 +166,7 @@ H5B2_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam, void *ctx_udat
 
     /* Increment # of files using this v2 B-tree header */
     if(H5B2_hdr_fuse_incr(bt2->hdr) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment file reference count on shared v2 B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment file reference count on shared v2 B-tree header")
 
     /* Set file pointer for this v2 B-tree open context */
     bt2->f = f;
@@ -299,11 +299,11 @@ H5B2_insert(H5B2_t *bt2, hid_t dxpl_id, void *udata)
 
     /* Attempt to insert record into B-tree */
     if(hdr->depth > 0) {
-        if(H5B2_insert_internal(hdr, dxpl_id, hdr->depth, NULL, &hdr->root, udata) < 0)
+        if(H5B2_insert_internal(hdr, dxpl_id, hdr->depth, NULL, &hdr->root, H5B2_POS_ROOT, udata) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, FAIL, "unable to insert record into B-tree internal node")
     } /* end if */
     else {
-        if(H5B2_insert_leaf(hdr, dxpl_id, &hdr->root, udata) < 0)
+        if(H5B2_insert_leaf(hdr, dxpl_id, &hdr->root, H5B2_POS_ROOT, udata) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, FAIL, "unable to insert record into B-tree leaf node")
     } /* end else */
 
@@ -420,12 +420,13 @@ htri_t
 H5B2_find(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_found_t op,
     void *op_data)
 {
-    H5B2_hdr_t	*hdr;                   /* Pointer to the B-tree header */
+    H5B2_hdr_t  *hdr;                   /* Pointer to the B-tree header */
     H5B2_node_ptr_t curr_node_ptr;      /* Node pointer info for current node */
     unsigned    depth;                  /* Current depth of the tree */
     int         cmp;                    /* Comparison value of records */
     unsigned    idx;                    /* Location of record which matches key */
-    htri_t	ret_value = TRUE;       /* Return value */
+    H5B2_nodepos_t curr_pos;            /* Position of the current node */
+    htri_t      ret_value = TRUE;       /* Return value */
 
     FUNC_ENTER_NOAPI(FAIL)
 
@@ -441,16 +442,39 @@ H5B2_find(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_found_t op,
     /* Make copy of the root node pointer to start search with */
     curr_node_ptr = hdr->root;
 
-    /* Current depth of the tree */
-    depth = hdr->depth;
-
     /* Check for empty tree */
     if(curr_node_ptr.node_nrec == 0)
         HGOTO_DONE(FALSE)
 
+    /* Check record against min & max records in tree, to attempt to quickly
+     *  find candidates or avoid further searching.
+     */
+    if(hdr->min_native_rec != NULL) {
+	if((cmp = (hdr->cls->compare)(udata, hdr->min_native_rec)) < 0)
+	    HGOTO_DONE(FALSE) 	/* Less than the least record--not found */ 
+	else if(cmp == 0) { /* Record is found */
+	    if(op && (op)(hdr->min_native_rec, op_data) < 0)
+                HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "'found' callback failed for B-tree find operation")
+	    HGOTO_DONE(TRUE)
+	} /* end if */
+    } /* end if */
+    if(hdr->max_native_rec != NULL) {
+	if((cmp = (hdr->cls->compare)(udata, hdr->max_native_rec)) > 0)
+	    HGOTO_DONE(FALSE) 	/* Greater than the greatest record--not found */
+	else if(cmp == 0) { /* Record is found */
+	    if(op && (op)(hdr->max_native_rec, op_data) < 0)
+                HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "'found' callback failed for B-tree find operation")
+	    HGOTO_DONE(TRUE)
+	} /* end if */
+    } /* end if */
+
+    /* Current depth of the tree */
+    depth = hdr->depth;
+
     /* Walk down B-tree to find record or leaf node where record is located */
     cmp = -1;
-    while(depth > 0 && cmp != 0) {
+    curr_pos = H5B2_POS_ROOT;
+    while(depth > 0) {
         H5B2_internal_t *internal;          /* Pointer to internal node in B-tree */
         H5B2_node_ptr_t next_node_ptr;      /* Node pointer info for next node */
 
@@ -467,6 +491,24 @@ H5B2_find(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_found_t op,
             /* Get node pointer for next node to search */
             next_node_ptr=internal->node_ptrs[idx];
 
+            /* Set the position of the next node */
+            if(H5B2_POS_MIDDLE != curr_pos) {
+                if(idx == 0) {
+                    if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                        curr_pos = H5B2_POS_LEFT;
+                    else
+                        curr_pos = H5B2_POS_MIDDLE;
+                } /* end if */
+                else if(idx == internal->nrec) {
+                    if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                        curr_pos = H5B2_POS_RIGHT;
+                    else
+                        curr_pos = H5B2_POS_MIDDLE;
+                } /* end if */
+                else
+                    curr_pos = H5B2_POS_MIDDLE;
+            } /* end if */
+
             /* Unlock current node */
             if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_INT, curr_node_ptr.addr, internal, H5AC__NO_FLAGS_SET) < 0)
                 HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node")
@@ -523,6 +565,27 @@ H5B2_find(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_found_t op,
 
                 HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "'found' callback failed for B-tree find operation")
             } /* end if */
+
+            /* Check for record being the min or max for the tree */
+            /* (Don't use 'else' for the idx check, to allow for root leaf node) */
+            if(H5B2_POS_MIDDLE != curr_pos) {
+                if(idx == 0) {
+                    if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                        if(hdr->min_native_rec == NULL)
+                            if(NULL == (hdr->min_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size)))
+                                HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree min record info")
+                        HDmemcpy(hdr->min_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size);
+                    } /* end if */
+                } /* end if */
+                if(idx == (unsigned)(leaf->nrec - 1)) {
+                    if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                        if(hdr->max_native_rec == NULL)
+                            if(NULL == (hdr->max_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size)))
+                                HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree max record info")
+                        HDmemcpy(hdr->max_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size);
+                    } /* end if */
+                } /* end if */
+            } /* end if */
         } /* end else */
 
         /* Unlock current node */
@@ -577,9 +640,6 @@ H5B2_index(H5B2_t *bt2, hid_t dxpl_id, H5_iter_order_t order, hsize_t idx,
     /* Make copy of the root node pointer to start search with */
     curr_node_ptr = hdr->root;
 
-    /* Current depth of the tree */
-    depth = hdr->depth;
-
     /* Check for empty tree */
     if(curr_node_ptr.node_nrec == 0)
         HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "B-tree has no records")
@@ -588,6 +648,9 @@ H5B2_index(H5B2_t *bt2, hid_t dxpl_id, H5_iter_order_t order, hsize_t idx,
     if(idx >= curr_node_ptr.all_nrec)
         HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "B-tree doesn't have that many records")
 
+    /* Current depth of the tree */
+    depth = hdr->depth;
+
     /* Check for reverse indexing and map requested index to appropriate forward index */
     if(order == H5_ITER_DEC)
         idx = curr_node_ptr.all_nrec - (idx + 1);
@@ -736,7 +799,7 @@ H5B2_remove(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_remove_t op,
         hbool_t depth_decreased = FALSE;  /* Flag to indicate whether the depth of the B-tree decreased */
 
         if(H5B2_remove_internal(hdr, dxpl_id, &depth_decreased, NULL, hdr->depth,
-                &(hdr->cache_info), NULL, &hdr->root, udata, op, op_data) < 0)
+                &(hdr->cache_info), NULL, H5B2_POS_ROOT, &hdr->root, udata, op, op_data) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree internal node")
 
         /* Check for decreasing the depth of the B-tree */
@@ -754,7 +817,7 @@ H5B2_remove(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_remove_t op,
         } /* end for */
     } /* end if */
     else {
-        if(H5B2_remove_leaf(hdr, dxpl_id, &hdr->root, udata, op, op_data) < 0)
+        if(H5B2_remove_leaf(hdr, dxpl_id, &hdr->root, H5B2_POS_ROOT, udata, op, op_data) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree leaf node")
     } /* end else */
 
@@ -818,7 +881,7 @@ H5B2_remove_by_idx(H5B2_t *bt2, hid_t dxpl_id, H5_iter_order_t order,
         hbool_t depth_decreased = FALSE;  /* Flag to indicate whether the depth of the B-tree decreased */
 
         if(H5B2_remove_internal_by_idx(hdr, dxpl_id, &depth_decreased, NULL, hdr->depth,
-                &(hdr->cache_info), NULL, &hdr->root, idx, op, op_data) < 0)
+                &(hdr->cache_info), NULL, &hdr->root, H5B2_POS_ROOT, idx, op, op_data) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree internal node")
 
         /* Check for decreasing the depth of the B-tree */
@@ -836,7 +899,7 @@ H5B2_remove_by_idx(H5B2_t *bt2, hid_t dxpl_id, H5_iter_order_t order,
         } /* end for */
     } /* end if */
     else {
-        if(H5B2_remove_leaf_by_idx(hdr, dxpl_id, &hdr->root, (unsigned)idx, op, op_data) < 0)
+        if(H5B2_remove_leaf_by_idx(hdr, dxpl_id, &hdr->root, H5B2_POS_ROOT, (unsigned)idx, op, op_data) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree leaf node")
     } /* end else */
 
@@ -970,6 +1033,7 @@ H5B2_modify(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_modify_t op,
 {
     H5B2_hdr_t	*hdr;                   /* Pointer to the B-tree header */
     H5B2_node_ptr_t curr_node_ptr;      /* Node pointer info for current node */
+    H5B2_nodepos_t curr_pos;            /* Position of current node */
     unsigned    depth;                  /* Current depth of the tree */
     int         cmp;                    /* Comparison value of records */
     unsigned    idx;                    /* Location of record which matches key */
@@ -990,16 +1054,17 @@ H5B2_modify(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_modify_t op,
     /* Make copy of the root node pointer to start search with */
     curr_node_ptr = hdr->root;
 
-    /* Current depth of the tree */
-    depth = hdr->depth;
-
     /* Check for empty tree */
     if(0 == curr_node_ptr.node_nrec)
         HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "B-tree has no records")
 
+    /* Current depth of the tree */
+    depth = hdr->depth;
+
     /* Walk down B-tree to find record or leaf node where record is located */
     cmp = -1;
-    while(depth > 0 && cmp != 0) {
+    curr_pos = H5B2_POS_ROOT;
+    while(depth > 0) {
         unsigned internal_flags = H5AC__NO_FLAGS_SET;
         H5B2_internal_t *internal;          /* Pointer to internal node in B-tree */
         H5B2_node_ptr_t next_node_ptr;      /* Node pointer info for next node */
@@ -1017,6 +1082,24 @@ H5B2_modify(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_modify_t op,
             /* Get node pointer for next node to search */
             next_node_ptr = internal->node_ptrs[idx];
 
+            /* Set the position of the next node */
+            if(H5B2_POS_MIDDLE != curr_pos) {
+                if(idx == 0) {
+                    if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                        curr_pos = H5B2_POS_LEFT;
+                    else
+                        curr_pos = H5B2_POS_MIDDLE;
+                } /* end if */
+                else if(idx == internal->nrec) {
+                    if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                        curr_pos = H5B2_POS_RIGHT;
+                    else
+                        curr_pos = H5B2_POS_MIDDLE;
+                } /* end if */
+                else
+                    curr_pos = H5B2_POS_MIDDLE;
+            } /* end if */
+
             /* Unlock current node */
             if(H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_INT, curr_node_ptr.addr, internal, H5AC__NO_FLAGS_SET) < 0)
                 HGOTO_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree node")
@@ -1092,6 +1175,27 @@ H5B2_modify(H5B2_t *bt2, hid_t dxpl_id, void *udata, H5B2_modify_t op,
 
                 HGOTO_ERROR(H5E_BTREE, H5E_CANTMODIFY, FAIL, "'modify' callback failed for B-tree find operation")
             } /* end if */
+
+            /* Check for modified record being the min or max for the tree */
+            /* (Don't use 'else' for the idx check, to allow for root leaf node) */
+            if(H5B2_POS_MIDDLE != curr_pos) {
+                if(idx == 0) {
+                    if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                        if(hdr->min_native_rec == NULL)
+                            if(NULL == (hdr->min_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size)))
+                                HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree min record info")
+                        HDmemcpy(hdr->min_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size);
+                    } /* end if */
+                } /* end if */
+                if(idx == (unsigned)(leaf->nrec - 1)) {
+                    if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                        if(hdr->max_native_rec == NULL)
+                            if(NULL == (hdr->max_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size)))
+                                HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree max record info")
+                        HDmemcpy(hdr->max_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size);
+                    } /* end if */
+                } /* end if */
+            } /* end if */
         } /* end else */
 
         /* Mark the node as dirty if it changed */
diff --git a/src/H5B2cache.c b/src/H5B2cache.c
index 4d4b69f..d649f74 100644
--- a/src/H5B2cache.c
+++ b/src/H5B2cache.c
@@ -15,11 +15,11 @@
 
 /*-------------------------------------------------------------------------
  *
- * Created:		H5B2cache.c
- *			Jan 31 2005
- *			Quincey Koziol <koziol at ncsa.uiuc.edu>
+ * Created:     H5B2cache.c
+ *              Jan 31 2005
+ *              Quincey Koziol <koziol at hdfgroup.org>
  *
- * Purpose:		Implement v2 B-tree metadata cache methods.
+ * Purpose:     Implement v2 B-tree metadata cache methods.
  *
  *-------------------------------------------------------------------------
  */
@@ -70,17 +70,17 @@
 
 /* Metadata cache callbacks */
 static H5B2_hdr_t *H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5B2__cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_hdr_t *hdr, unsigned UNUSED * flags_ptr);
+static herr_t H5B2__cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_hdr_t *hdr, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5B2__cache_hdr_dest(H5F_t *f, H5B2_hdr_t *hdr);
 static herr_t H5B2__cache_hdr_clear(H5F_t *f, H5B2_hdr_t *hdr, hbool_t destroy);
 static herr_t H5B2__cache_hdr_size(const H5F_t *f, const H5B2_hdr_t *hdr, size_t *size_ptr);
 static H5B2_internal_t *H5B2__cache_internal_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5B2__cache_internal_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_internal_t *i, unsigned UNUSED * flags_ptr);
+static herr_t H5B2__cache_internal_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_internal_t *i, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5B2__cache_internal_dest(H5F_t *f, H5B2_internal_t *internal);
 static herr_t H5B2__cache_internal_clear(H5F_t *f, H5B2_internal_t *i, hbool_t destroy);
 static herr_t H5B2__cache_internal_size(const H5F_t *f, const H5B2_internal_t *i, size_t *size_ptr);
 static H5B2_leaf_t *H5B2__cache_leaf_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5B2__cache_leaf_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_leaf_t *l, unsigned UNUSED * flags_ptr);
+static herr_t H5B2__cache_leaf_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_leaf_t *l, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5B2__cache_leaf_dest(H5F_t *f, H5B2_leaf_t *leaf);
 static herr_t H5B2__cache_leaf_clear(H5F_t *f, H5B2_leaf_t *l, hbool_t destroy);
 static herr_t H5B2__cache_leaf_size(const H5F_t *f, const H5B2_leaf_t *l, size_t *size_ptr);
@@ -171,7 +171,7 @@ H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
 
     /* Allocate new B-tree header and reset cache info */
     if(NULL == (hdr = H5B2_hdr_alloc(udata->f)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "allocation failed for B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "allocation failed for B-tree header")
 
     /* Wrap the local buffer for serialized header info */
     if(NULL == (wb = H5WB_wrap(hdr_buf, sizeof(hdr_buf))))
@@ -183,7 +183,7 @@ H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
 
     /* Read header from disk */
     if(H5F_block_read(f, H5FD_MEM_BTREE, addr, hdr->hdr_size, dxpl_id, buf) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree header")
 
     /* Get temporary pointer to serialized header */
     p = buf;
@@ -200,7 +200,7 @@ H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
     /* B-tree class */
     id = (H5B2_subid_t)*p++;
     if(id >= H5B2_NUM_BTREE_ID)
-	HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type")
+        HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type")
 
     /* Node size (in bytes) */
     UINT32DECODE(p, cparam.node_size);
@@ -231,12 +231,12 @@ H5B2__cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
 
     /* Verify checksum */
     if(stored_chksum != computed_chksum)
-	HGOTO_ERROR(H5E_BTREE, H5E_BADVALUE, NULL, "incorrect metadata checksum for v2 B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_BADVALUE, NULL, "incorrect metadata checksum for v2 B-tree header")
 
     /* Initialize B-tree header info */
     cparam.cls = H5B2_client_class_g[id];
     if(H5B2_hdr_init(hdr, &cparam, udata->ctx_udata, depth) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, NULL, "can't initialize B-tree header info")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, NULL, "can't initialize B-tree header info")
 
     /* Set the B-tree header's address */
     hdr->addr = addr;
@@ -271,7 +271,7 @@ done:
  */
 static herr_t
 H5B2__cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr,
-    H5B2_hdr_t *hdr, unsigned UNUSED * flags_ptr)
+    H5B2_hdr_t *hdr, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     H5WB_t      *wb = NULL;             /* Wrapped buffer for header data */
     uint8_t     hdr_buf[H5B2_HDR_BUF_SIZE]; /* Buffer for header */
@@ -339,17 +339,17 @@ H5B2__cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr,
         /* Metadata checksum */
         UINT32ENCODE(p, metadata_chksum);
 
-	/* Write the B-tree header. */
+        /* Write the B-tree header. */
         HDassert((size_t)(p - buf) == hdr->hdr_size);
-	if(H5F_block_write(f, H5FD_MEM_BTREE, addr, hdr->hdr_size, dxpl_id, buf) < 0)
-	    HGOTO_ERROR(H5E_BTREE, H5E_CANTFLUSH, FAIL, "unable to save B-tree header to disk")
+        if(H5F_block_write(f, H5FD_MEM_BTREE, addr, hdr->hdr_size, dxpl_id, buf) < 0)
+            HGOTO_ERROR(H5E_BTREE, H5E_CANTFLUSH, FAIL, "unable to save B-tree header to disk")
 
-	hdr->cache_info.is_dirty = FALSE;
+        hdr->cache_info.is_dirty = FALSE;
     } /* end if */
 
     if(destroy)
         if(H5B2__cache_hdr_dest(f, hdr) < 0)
-	    HGOTO_ERROR(H5E_BTREE, H5E_CANTFREE, FAIL, "unable to destroy B-tree header")
+            HGOTO_ERROR(H5E_BTREE, H5E_CANTFREE, FAIL, "unable to destroy B-tree header")
 
 done:
     /* Release resources */
@@ -442,27 +442,28 @@ done:
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5B2__cache_hdr_size
+ * Function:    H5B2__cache_hdr_size
  *
- * Purpose:	Compute the size in bytes of a B-tree header
- *		on disk, and return it in *size_ptr.  On failure,
- *		the value of *size_ptr is undefined.
+ * Purpose:     Compute the size in bytes of a B-tree header
+ *              on disk, and return it in *size_ptr.  On failure,
+ *              the value of *size_ptr is undefined.
  *
- * Return:	Non-negative on success/Negative on failure
+ * Return:      SUCCEED (Can't fail)
  *
- * Programmer:	Quincey Koziol
- *		koziol at ncsa.uiuc.edu
- *		Feb 1 2005
+ * Programmer:  Quincey Koziol
+ *              koziol at hdfgroup.org
+ *              Feb 1 2005
  *
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B2__cache_hdr_size(const H5F_t UNUSED *f, const H5B2_hdr_t *hdr, size_t *size_ptr)
+H5B2__cache_hdr_size(const H5F_t H5_ATTR_UNUSED *f, const H5B2_hdr_t *hdr, size_t *size_ptr)
 {
     FUNC_ENTER_STATIC_NOERR
 
     /* check arguments */
     HDassert(f);
+    HDassert(hdr);
     HDassert(size_ptr);
 
     /* Set size value */
@@ -516,14 +517,14 @@ H5B2__cache_internal_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
 
     /* Increment ref. count on B-tree header */
     if(H5B2_hdr_incr(udata->hdr) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment ref. count on B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment ref. count on B-tree header")
 
     /* Share B-tree information */
     internal->hdr = udata->hdr;
 
     /* Read header from disk */
     if(H5F_block_read(f, H5FD_MEM_BTREE, addr, udata->hdr->node_size, dxpl_id, udata->hdr->page) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree internal node")
+        HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree internal node")
 
     p = udata->hdr->page;
 
@@ -538,7 +539,7 @@ H5B2__cache_internal_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
 
     /* B-tree type */
     if(*p++ != (uint8_t)udata->hdr->cls->id)
-	HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type")
+        HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type")
 
     /* Allocate space for the native keys in memory */
     if(NULL == (internal->int_native = (uint8_t *)H5FL_FAC_MALLOC(udata->hdr->node_info[udata->depth].nat_rec_fac)))
@@ -590,7 +591,7 @@ H5B2__cache_internal_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
 
     /* Verify checksum */
     if(stored_chksum != computed_chksum)
-	HGOTO_ERROR(H5E_BTREE, H5E_BADVALUE, NULL, "incorrect metadata checksum for v2 internal node")
+        HGOTO_ERROR(H5E_BTREE, H5E_BADVALUE, NULL, "incorrect metadata checksum for v2 internal node")
 
     /* Set return value */
     ret_value = internal;
@@ -618,7 +619,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B2__cache_internal_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_internal_t *internal, unsigned UNUSED * flags_ptr)
+H5B2__cache_internal_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_internal_t *internal, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     herr_t      ret_value = SUCCEED;    /* Return value */
 
@@ -799,7 +800,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B2__cache_internal_size(const H5F_t UNUSED *f, const H5B2_internal_t *internal, size_t *size_ptr)
+H5B2__cache_internal_size(const H5F_t H5_ATTR_UNUSED *f, const H5B2_internal_t *internal, size_t *size_ptr)
 {
     FUNC_ENTER_STATIC_NOERR
 
@@ -830,7 +831,7 @@ H5B2__cache_internal_size(const H5F_t UNUSED *f, const H5B2_internal_t *internal
  *-------------------------------------------------------------------------
  */
 static H5B2_leaf_t *
-H5B2__cache_leaf_load(H5F_t UNUSED *f, hid_t dxpl_id, haddr_t addr, void *_udata)
+H5B2__cache_leaf_load(H5F_t H5_ATTR_UNUSED *f, hid_t dxpl_id, haddr_t addr, void *_udata)
 {
     H5B2_leaf_cache_ud_t *udata = (H5B2_leaf_cache_ud_t *)_udata;
     H5B2_leaf_t		*leaf = NULL;   /* Pointer to lead node loaded */
@@ -850,7 +851,7 @@ H5B2__cache_leaf_load(H5F_t UNUSED *f, hid_t dxpl_id, haddr_t addr, void *_udata
 
     /* Allocate new leaf node and reset cache info */
     if(NULL == (leaf = H5FL_MALLOC(H5B2_leaf_t)))
-	HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
+        HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
     HDmemset(&leaf->cache_info, 0, sizeof(H5AC_info_t));
 
     /* Set the B-tree header's file context for this operation */
@@ -858,33 +859,33 @@ H5B2__cache_leaf_load(H5F_t UNUSED *f, hid_t dxpl_id, haddr_t addr, void *_udata
 
     /* Increment ref. count on B-tree header */
     if(H5B2_hdr_incr(udata->hdr) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment ref. count on B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTINC, NULL, "can't increment ref. count on B-tree header")
 
     /* Share B-tree header information */
     leaf->hdr = udata->hdr;
 
     /* Read header from disk */
     if(H5F_block_read(udata->f, H5FD_MEM_BTREE, addr, udata->hdr->node_size, dxpl_id, udata->hdr->page) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree leaf node")
+        HGOTO_ERROR(H5E_BTREE, H5E_READERROR, NULL, "can't read B-tree leaf node")
 
     p = udata->hdr->page;
 
     /* Magic number */
     if(HDmemcmp(p, H5B2_LEAF_MAGIC, (size_t)H5_SIZEOF_MAGIC))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "wrong B-tree leaf node signature")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "wrong B-tree leaf node signature")
     p += H5_SIZEOF_MAGIC;
 
     /* Version */
     if(*p++ != H5B2_LEAF_VERSION)
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "wrong B-tree leaf node version")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "wrong B-tree leaf node version")
 
     /* B-tree type */
     if(*p++ != (uint8_t)udata->hdr->cls->id)
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTLOAD, NULL, "incorrect B-tree type")
+        HGOTO_ERROR(H5E_BTREE, H5E_BADTYPE, NULL, "incorrect B-tree type")
 
     /* Allocate space for the native keys in memory */
     if(NULL == (leaf->leaf_native = (uint8_t *)H5FL_FAC_MALLOC(udata->hdr->node_info[0].nat_rec_fac)))
-	HGOTO_ERROR(H5E_BTREE, H5E_NOSPACE, NULL, "memory allocation failed for B-tree leaf native keys")
+        HGOTO_ERROR(H5E_BTREE, H5E_NOSPACE, NULL, "memory allocation failed for B-tree leaf native keys")
 
     /* Set the number of records in the leaf */
     leaf->nrec = udata->nrec;
@@ -940,7 +941,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B2__cache_leaf_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_leaf_t *leaf, unsigned UNUSED * flags_ptr)
+H5B2__cache_leaf_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B2_leaf_t *leaf, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     herr_t      ret_value = SUCCEED;    /* Return value */
 
@@ -1107,7 +1108,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B2__cache_leaf_size(const H5F_t UNUSED *f, const H5B2_leaf_t *leaf, size_t *size_ptr)
+H5B2__cache_leaf_size(const H5F_t H5_ATTR_UNUSED *f, const H5B2_leaf_t *leaf, size_t *size_ptr)
 {
     FUNC_ENTER_STATIC_NOERR
 
diff --git a/src/H5B2hdr.c b/src/H5B2hdr.c
index 443a2e5..d28c263 100644
--- a/src/H5B2hdr.c
+++ b/src/H5B2hdr.c
@@ -160,13 +160,13 @@ HDmemset(hdr->page, 0, hdr->node_size);
 
     /* Initialize leaf node info */
     sz_max_nrec = H5B2_NUM_LEAF_REC(hdr->node_size, hdr->rrec_size);
-    H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[0].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned)
+    H5_CHECKED_ASSIGN(hdr->node_info[0].max_nrec, unsigned, sz_max_nrec, size_t)
     hdr->node_info[0].split_nrec = (hdr->node_info[0].max_nrec * hdr->split_percent) / 100;
     hdr->node_info[0].merge_nrec = (hdr->node_info[0].max_nrec * hdr->merge_percent) / 100;
     hdr->node_info[0].cum_max_nrec = hdr->node_info[0].max_nrec;
     hdr->node_info[0].cum_max_nrec_size = 0;
     if(NULL == (hdr->node_info[0].nat_rec_fac = H5FL_fac_init(hdr->cls->nrec_size * hdr->node_info[0].max_nrec)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "can't create node native key block factory")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "can't create node native key block factory")
     hdr->node_info[0].node_ptr_fac = NULL;
 
     /* Allocate array of pointers to internal node native keys */
@@ -182,14 +182,14 @@ HDmemset(hdr->page, 0, hdr->node_size);
     /* Compute size to store # of records in each node */
     /* (uses leaf # of records because its the largest) */
     u_max_nrec_size = H5VM_limit_enc_size((uint64_t)hdr->node_info[0].max_nrec);
-    H5_ASSIGN_OVERFLOW(/* To: */ hdr->max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ uint8_t)
+    H5_CHECKED_ASSIGN(hdr->max_nrec_size, uint8_t, u_max_nrec_size, unsigned)
     HDassert(hdr->max_nrec_size <= H5B2_SIZEOF_RECORDS_PER_NODE);
 
     /* Initialize internal node info */
     if(depth > 0) {
         for(u = 1; u < (unsigned)(depth + 1); u++) {
             sz_max_nrec = H5B2_NUM_INT_REC(hdr, u);
-            H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[u].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned)
+            H5_CHECKED_ASSIGN(hdr->node_info[u].max_nrec, unsigned, sz_max_nrec, size_t)
             HDassert(hdr->node_info[u].max_nrec <= hdr->node_info[u - 1].max_nrec);
 
             hdr->node_info[u].split_nrec = (hdr->node_info[u].max_nrec * hdr->split_percent) / 100;
@@ -198,7 +198,7 @@ HDmemset(hdr->page, 0, hdr->node_size);
             hdr->node_info[u].cum_max_nrec = ((hdr->node_info[u].max_nrec + 1) *
                 hdr->node_info[u - 1].cum_max_nrec) + hdr->node_info[u].max_nrec;
             u_max_nrec_size = H5VM_limit_enc_size((uint64_t)hdr->node_info[u].cum_max_nrec);
-            H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[u].cum_max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ uint8_t)
+            H5_CHECKED_ASSIGN(hdr->node_info[u].cum_max_nrec_size, uint8_t, u_max_nrec_size, unsigned)
 
             if(NULL == (hdr->node_info[u].nat_rec_fac = H5FL_fac_init(hdr->cls->nrec_size * hdr->node_info[u].max_nrec)))
                 HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "can't create node native key block factory")
@@ -250,7 +250,7 @@ H5B2_hdr_alloc(H5F_t *f)
 
     /* Allocate space for the shared information */
     if(NULL == (hdr = H5FL_CALLOC(H5B2_hdr_t)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "memory allocation failed for B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, NULL, "memory allocation failed for B-tree header")
 
     /* Assign non-zero information */
     hdr->f = f;
@@ -298,19 +298,19 @@ H5B2_hdr_create(H5F_t *f, hid_t dxpl_id, const H5B2_create_t *cparam,
 
     /* Allocate v2 B-tree header */
     if(NULL == (hdr = H5B2_hdr_alloc(f)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, HADDR_UNDEF, "allocation failed for B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, HADDR_UNDEF, "allocation failed for B-tree header")
 
     /* Initialize shared B-tree info */
     if(H5B2_hdr_init(hdr, cparam, ctx_udata, (uint16_t)0) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, HADDR_UNDEF, "can't create shared B-tree info")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, HADDR_UNDEF, "can't create shared B-tree info")
 
     /* Allocate space for the header on disk */
     if(HADDR_UNDEF == (hdr->addr = H5MF_alloc(f, H5FD_MEM_BTREE, dxpl_id, (hsize_t)hdr->hdr_size)))
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, HADDR_UNDEF, "file allocation failed for B-tree header")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, HADDR_UNDEF, "file allocation failed for B-tree header")
 
     /* Cache the new B-tree node */
     if(H5AC_insert_entry(f, dxpl_id, H5AC_BT2_HDR, hdr->addr, hdr, H5AC__NO_FLAGS_SET) < 0)
-	HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, HADDR_UNDEF, "can't add B-tree header to cache")
+        HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, HADDR_UNDEF, "can't add B-tree header to cache")
 
     /* Set address of v2 B-tree header to return */
     ret_value = hdr->addr;
@@ -398,15 +398,15 @@ done:
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5B2_hdr_fuse_incr
+ * Function:    H5B2_hdr_fuse_incr
  *
- * Purpose:	Increment file reference count on shared v2 B-tree header
+ * Purpose:     Increment file reference count on shared v2 B-tree header
  *
- * Return:	Non-negative on success/Negative on failure
+ * Return:      SUCCEED (Can't fail)
  *
- * Programmer:	Quincey Koziol
- *		koziol at hdfgroup.org
- *		Oct 27 2009
+ * Programmer:  Quincey Koziol
+ *              koziol at hdfgroup.org
+ *              Oct 27 2009
  *
  *-------------------------------------------------------------------------
  */
@@ -426,15 +426,15 @@ H5B2_hdr_fuse_incr(H5B2_hdr_t *hdr)
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5B2_hdr_fuse_decr
+ * Function:    H5B2_hdr_fuse_decr
  *
- * Purpose:	Decrement file reference count on shared v2 B-tree header
+ * Purpose:     Decrement file reference count on shared v2 B-tree header
  *
- * Return:	Non-negative on success/Negative on failure
+ * Return:      The file's reference count after the decrement. (Can't fail)
  *
- * Programmer:	Quincey Koziol
- *		koziol at hdfgroup.org
- *		Oct 27 2009
+ * Programmer:  Quincey Koziol
+ *              koziol at hdfgroup.org
+ *              Oct 27 2009
  *
  *-------------------------------------------------------------------------
  */
@@ -542,6 +542,16 @@ H5B2_hdr_free(H5B2_hdr_t *hdr)
         hdr->node_info = H5FL_SEQ_FREE(H5B2_node_info_t, hdr->node_info);
     } /* end if */
 
+    /* Release the min & max record info, if set */
+    if(hdr->min_native_rec) {
+	HDfree(hdr->min_native_rec);
+	hdr->min_native_rec = NULL;
+    } /* end if */
+    if(hdr->max_native_rec) {
+	HDfree(hdr->max_native_rec);
+	hdr->max_native_rec = NULL;
+    } /* end if */
+
     /* Free B-tree header info */
     hdr = H5FL_FREE(H5B2_hdr_t, hdr);
 
diff --git a/src/H5B2int.c b/src/H5B2int.c
index ea0d265..01403eb 100644
--- a/src/H5B2int.c
+++ b/src/H5B2int.c
@@ -172,9 +172,9 @@ H5B2_locate_record(const H5B2_class_t *type, unsigned nrec, size_t *rec_off,
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B2_split1(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, H5B2_node_ptr_t *curr_node_ptr,
-    unsigned *parent_cache_info_flags_ptr, H5B2_internal_t *internal,
-    unsigned *internal_flags_ptr, unsigned idx)
+H5B2_split1(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth,
+    H5B2_node_ptr_t *curr_node_ptr, unsigned *parent_cache_info_flags_ptr,
+    H5B2_internal_t *internal, unsigned *internal_flags_ptr, unsigned idx)
 {
     const H5AC_class_t *child_class;    /* Pointer to child node's class info */
     haddr_t left_addr, right_addr;      /* Addresses of left & right child nodes */
@@ -214,7 +214,7 @@ H5B2_split1(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, H5B2_node_ptr_t *cur
         left_addr = internal->node_ptrs[idx].addr;
         right_addr = internal->node_ptrs[idx + 1].addr;
 
-        /* Protect both leafs */
+        /* Protect both leaves */
         if(NULL == (left_int = H5B2_protect_internal(hdr, dxpl_id, left_addr, internal->node_ptrs[idx].node_nrec, (depth - 1), H5AC_WRITE)))
             HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to protect B-tree internal node")
         if(NULL == (right_int = H5B2_protect_internal(hdr, dxpl_id, right_addr, internal->node_ptrs[idx + 1].node_nrec, (depth - 1), H5AC_WRITE)))
@@ -243,7 +243,7 @@ H5B2_split1(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth, H5B2_node_ptr_t *cur
         left_addr = internal->node_ptrs[idx].addr;
         right_addr = internal->node_ptrs[idx + 1].addr;
 
-        /* Protect both leafs */
+        /* Protect both leaves */
         if(NULL == (left_leaf = H5B2_protect_leaf(hdr, dxpl_id, left_addr, internal->node_ptrs[idx].node_nrec, H5AC_WRITE)))
             HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to protect B-tree leaf node")
         if(NULL == (right_leaf = H5B2_protect_leaf(hdr, dxpl_id, right_addr, internal->node_ptrs[idx + 1].node_nrec, H5AC_WRITE)))
@@ -341,7 +341,7 @@ done:
         HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree leaf node")
 
     FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5B2_split1 */
+} /* end H5B2_split1() */
 
 

 /*-------------------------------------------------------------------------
@@ -382,13 +382,13 @@ H5B2_split_root(H5B2_hdr_t *hdr, hid_t dxpl_id)
 
     /* Update node info for new depth of tree */
     sz_max_nrec = H5B2_NUM_INT_REC(hdr, hdr->depth);
-    H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[hdr->depth].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned)
+    H5_CHECKED_ASSIGN(hdr->node_info[hdr->depth].max_nrec, unsigned, sz_max_nrec, size_t)
     hdr->node_info[hdr->depth].split_nrec = (hdr->node_info[hdr->depth].max_nrec * hdr->split_percent) / 100;
     hdr->node_info[hdr->depth].merge_nrec = (hdr->node_info[hdr->depth].max_nrec * hdr->merge_percent) / 100;
     hdr->node_info[hdr->depth].cum_max_nrec = ((hdr->node_info[hdr->depth].max_nrec + 1) *
         hdr->node_info[hdr->depth - 1].cum_max_nrec) + hdr->node_info[hdr->depth].max_nrec;
     u_max_nrec_size = H5VM_limit_enc_size((uint64_t)hdr->node_info[hdr->depth].cum_max_nrec);
-    H5_ASSIGN_OVERFLOW(/* To: */ hdr->node_info[hdr->depth].cum_max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ uint8_t)
+    H5_CHECKED_ASSIGN(hdr->node_info[hdr->depth].cum_max_nrec_size, uint8_t, u_max_nrec_size, unsigned)
     if(NULL == (hdr->node_info[hdr->depth].nat_rec_fac = H5FL_fac_init(hdr->cls->nrec_size * hdr->node_info[hdr->depth].max_nrec)))
 	HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "can't create node native key block factory")
     if(NULL == (hdr->node_info[hdr->depth].node_ptr_fac = H5FL_fac_init(sizeof(H5B2_node_ptr_t) * (hdr->node_info[hdr->depth].max_nrec + 1))))
@@ -546,8 +546,9 @@ H5B2_redistribute2(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth,
             /* Count the number of records being moved */
             for(u=0; u<move_nrec; u++)
                 moved_nrec += right_node_ptrs[u].all_nrec;
-            left_moved_nrec = moved_nrec;
-            right_moved_nrec -= moved_nrec;
+
+            H5_CHECKED_ASSIGN(left_moved_nrec, hssize_t, moved_nrec, hsize_t)
+            right_moved_nrec -= (hssize_t)moved_nrec;
 
             /* Copy node pointers from right node to left */
             HDmemcpy(&(left_node_ptrs[*left_nrec+1]),&(right_node_ptrs[0]),sizeof(H5B2_node_ptr_t)*move_nrec);
@@ -599,8 +600,9 @@ H5B2_redistribute2(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth,
             /* Count the number of records being moved */
             for(u = 0; u < move_nrec; u++)
                 moved_nrec += right_node_ptrs[u].all_nrec;
-            left_moved_nrec -= moved_nrec;
-            right_moved_nrec = moved_nrec;
+
+            left_moved_nrec -= (hssize_t)moved_nrec;
+            H5_CHECKED_ASSIGN(right_moved_nrec, hssize_t, moved_nrec, hsize_t)
         } /* end if */
 
         /* Update number of records in child nodes */
@@ -646,7 +648,7 @@ done:
         HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree child node")
 
     FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5B2_redistribute2 */
+} /* end H5B2_redistribute2() */
 
 

 /*-------------------------------------------------------------------------
@@ -1033,7 +1035,7 @@ done:
         HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree child node")
 
     FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5B2_redistribute3 */
+} /* end H5B2_redistribute3() */
 
 

 /*-------------------------------------------------------------------------
@@ -1505,7 +1507,7 @@ done:
         HDONE_ERROR(H5E_BTREE, H5E_CANTUNPROTECT, FAIL, "unable to release B-tree child node")
 
     FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5B2_swap_leaf */
+} /* end H5B2_swap_leaf() */
 
 

 /*-------------------------------------------------------------------------
@@ -1523,7 +1525,7 @@ done:
  */
 herr_t
 H5B2_insert_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr,
-    void *udata)
+    H5B2_nodepos_t curr_pos, void *udata)
 {
     H5B2_leaf_t *leaf;                  /* Pointer to leaf node */
     int         cmp;                    /* Comparison value of records */
@@ -1574,6 +1576,27 @@ H5B2_insert_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr,
     /* Update record count for current node */
     leaf->nrec++;
 
+    /* Check for new record being the min or max for the tree */
+    /* (Don't use 'else' for the idx check, to allow for root leaf node) */
+    if(H5B2_POS_MIDDLE != curr_pos) {
+        if(idx == 0) {
+            if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                if(hdr->min_native_rec == NULL)
+                    if(NULL == (hdr->min_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size)))
+                        HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree min record info")
+                HDmemcpy(hdr->min_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size);
+            } /* end if */
+        } /* end if */
+        if(idx == (unsigned)(leaf->nrec - 1)) {
+            if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                if(hdr->max_native_rec == NULL)
+                    if(NULL == (hdr->max_native_rec = (uint8_t *)HDmalloc(hdr->cls->nrec_size)))
+                        HGOTO_ERROR(H5E_BTREE, H5E_CANTALLOC, FAIL, "memory allocation failed for v2 B-tree max record info")
+                HDmemcpy(hdr->max_native_rec, H5B2_LEAF_NREC(leaf, hdr, idx), hdr->cls->nrec_size);
+            } /* end if */
+        } /* end if */
+    } /* end if */
+
 done:
     /* Release the B-tree leaf node (marked as dirty) */
     if(leaf && H5AC_unprotect(hdr->f, dxpl_id, H5AC_BT2_LEAF, curr_node_ptr->addr, leaf, H5AC__DIRTIED_FLAG) < 0)
@@ -1599,11 +1622,12 @@ done:
 herr_t
 H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth,
     unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr,
-    void *udata)
+    H5B2_nodepos_t curr_pos, void *udata)
 {
-    H5B2_internal_t *internal;          /* Pointer to internal node */
+    H5B2_internal_t *internal = NULL;   /* Pointer to internal node */
     unsigned internal_flags = H5AC__NO_FLAGS_SET;
     unsigned    idx;                    /* Location of record which matches key */
+    H5B2_nodepos_t next_pos = H5B2_POS_MIDDLE;    /* Position of node */
     herr_t	ret_value = SUCCEED;    /* Return value */
 
     FUNC_ENTER_NOAPI_NOINIT
@@ -1618,7 +1642,7 @@ H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth,
     if(NULL == (internal = H5B2_protect_internal(hdr, dxpl_id, curr_node_ptr->addr, curr_node_ptr->node_nrec, depth, H5AC_WRITE)))
         HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to protect B-tree internal node")
 
-/* Split or redistribute child node pointers, if necessary */
+    /* Split or redistribute child node pointers, if necessary */
     {
         int         cmp;        /* Comparison value of records */
         unsigned retries;       /* Number of times to attempt redistribution */
@@ -1691,13 +1715,25 @@ H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth,
         } /* end while */
     } /* end block */
 
+    /* Check if this node is left/right-most */
+    if(H5B2_POS_MIDDLE != curr_pos) {
+        if(idx == 0) {
+            if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                next_pos = H5B2_POS_LEFT;
+        } /* end if */
+        else if(idx == internal->nrec) {
+            if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                next_pos = H5B2_POS_RIGHT;
+        } /* end else */
+    } /* end if */
+
     /* Attempt to insert node */
     if(depth > 1) {
-        if(H5B2_insert_internal(hdr, dxpl_id, (depth - 1), &internal_flags, &internal->node_ptrs[idx], udata) < 0)
+        if(H5B2_insert_internal(hdr, dxpl_id, (depth - 1), &internal_flags, &internal->node_ptrs[idx], next_pos, udata) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, FAIL, "unable to insert record into B-tree internal node")
     } /* end if */
     else {
-        if(H5B2_insert_leaf(hdr, dxpl_id, &internal->node_ptrs[idx], udata) < 0)
+        if(H5B2_insert_leaf(hdr, dxpl_id, &internal->node_ptrs[idx], next_pos, udata) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTINSERT, FAIL, "unable to insert record into B-tree leaf node")
     } /* end else */
 
@@ -1814,7 +1850,7 @@ H5B2_protect_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, haddr_t addr, unsigned nrec,
     /* Set up user data for callback */
     udata.f = hdr->f;
     udata.hdr = hdr;
-    H5_ASSIGN_OVERFLOW(/* To: */ udata.nrec, /* From: */ nrec, /* From: */ unsigned, /* To: */ uint16_t)
+    H5_CHECKED_ASSIGN(udata.nrec, uint16_t, nrec, unsigned)
 
     /* Protect the leaf node */
     if(NULL == (ret_value = (H5B2_leaf_t *)H5AC_protect(hdr->f, dxpl_id, H5AC_BT2_LEAF, addr, &udata, rw)))
@@ -1934,8 +1970,8 @@ H5B2_protect_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, haddr_t addr,
     /* Set up user data for callback */
     udata.f = hdr->f;
     udata.hdr = hdr;
-    H5_ASSIGN_OVERFLOW(/* To: */ udata.nrec, /* From: */ nrec, /* From: */ unsigned, /* To: */ uint16_t)
-    H5_ASSIGN_OVERFLOW(/* To: */ udata.depth, /* From: */ depth, /* From: */ unsigned, /* To: */ uint16_t)
+    H5_CHECKED_ASSIGN(udata.nrec, uint16_t, nrec, unsigned)
+    H5_CHECKED_ASSIGN(udata.depth, uint16_t, depth, unsigned)
 
     /* Protect the internal node */
     if(NULL == (ret_value = (H5B2_internal_t *)H5AC_protect(hdr->f, dxpl_id, H5AC_BT2_INT, addr, &udata, rw)))
@@ -2074,7 +2110,7 @@ done:
  */
 herr_t
 H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr,
-    void *udata, H5B2_remove_t op, void *op_data)
+    H5B2_nodepos_t curr_pos, void *udata, H5B2_remove_t op, void *op_data)
 {
     H5B2_leaf_t *leaf;                  /* Pointer to leaf node */
     haddr_t     leaf_addr = HADDR_UNDEF;  /* Leaf address on disk */
@@ -2102,6 +2138,27 @@ H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id, H5B2_node_ptr_t *curr_node_ptr,
     if(H5B2_locate_record(hdr->cls, leaf->nrec, hdr->nat_off, leaf->leaf_native, udata, &idx) != 0)
         HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "record is not in B-tree")
 
+    /* Check for invalidating the min/max record for the tree */
+    if(H5B2_POS_MIDDLE != curr_pos) {
+        /* (Don't use 'else' for the idx check, to allow for root leaf node) */
+        if(idx == 0) {
+            if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                if(hdr->min_native_rec) {
+                    HDfree(hdr->min_native_rec);
+                    hdr->min_native_rec = NULL;
+                } /* end if */
+            } /* end if */
+        } /* end if */
+        if(idx == (unsigned)(leaf->nrec - 1)) {
+            if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                if(hdr->max_native_rec) {
+                    HDfree(hdr->max_native_rec);
+                    hdr->max_native_rec = NULL;
+                } /* end if */
+            } /* end if */
+        } /* end if */
+    } /* end if */
+
     /* Make 'remove' callback if there is one */
     if(op)
         if((op)(H5B2_LEAF_NREC(leaf, hdr, idx), op_data) < 0)
@@ -2154,13 +2211,14 @@ done:
 herr_t
 H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased,
     void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info,
-    unsigned *parent_cache_info_flags_ptr, H5B2_node_ptr_t *curr_node_ptr,
-    void *udata, H5B2_remove_t op, void *op_data)
+    unsigned *parent_cache_info_flags_ptr, H5B2_nodepos_t curr_pos,
+    H5B2_node_ptr_t *curr_node_ptr, void *udata, H5B2_remove_t op, void *op_data)
 {
     H5AC_info_t *new_cache_info;        /* Pointer to new cache info */
     unsigned *new_cache_info_flags_ptr = NULL;
     H5B2_node_ptr_t *new_node_ptr;      /* Pointer to new node pointer */
     H5B2_internal_t *internal;          /* Pointer to internal node */
+    H5B2_nodepos_t next_pos = H5B2_POS_MIDDLE;  /* Position of next node */
     unsigned internal_flags = H5AC__NO_FLAGS_SET;
     haddr_t internal_addr;              /* Address of internal node */
     size_t      merge_nrec;             /* Number of records to merge node at */
@@ -2211,6 +2269,9 @@ H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased,
 
         /* Set flag to indicate root was collapsed */
         collapsed_root = TRUE;
+
+        /* Indicate position of next node */
+        next_pos = H5B2_POS_ROOT;
     } /* end if */
     /* Merge or redistribute child node pointers, if necessary */
     else {
@@ -2306,16 +2367,28 @@ H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id, hbool_t *depth_decreased,
         new_cache_info_flags_ptr = &internal_flags;
         new_cache_info = &internal->cache_info;
         new_node_ptr = &internal->node_ptrs[idx];
+
+        /* Indicate position of next node */
+        if(H5B2_POS_MIDDLE != curr_pos) {
+            if(idx == 0) {
+                if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                    next_pos = H5B2_POS_LEFT;
+            } /* end if */
+            else if(idx == internal->nrec) {
+                if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                    next_pos = H5B2_POS_RIGHT;
+            } /* end if */
+        } /* end if */
     } /* end else */
 
     /* Attempt to remove record from child node */
     if(depth > 1) {
         if(H5B2_remove_internal(hdr, dxpl_id, depth_decreased, swap_loc, depth - 1,
-                new_cache_info, new_cache_info_flags_ptr, new_node_ptr, udata, op, op_data) < 0)
+                new_cache_info, new_cache_info_flags_ptr, next_pos, new_node_ptr, udata, op, op_data) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree internal node")
     } /* end if */
     else {
-        if(H5B2_remove_leaf(hdr, dxpl_id, new_node_ptr, udata, op, op_data) < 0)
+        if(H5B2_remove_leaf(hdr, dxpl_id, new_node_ptr, next_pos, udata, op, op_data) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree leaf node")
     } /* end else */
 
@@ -2355,8 +2428,8 @@ done:
  */
 herr_t
 H5B2_remove_leaf_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id,
-    H5B2_node_ptr_t *curr_node_ptr, unsigned idx, H5B2_remove_t op,
-    void *op_data)
+    H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos,
+    unsigned idx, H5B2_remove_t op, void *op_data)
 {
     H5B2_leaf_t *leaf;                  /* Pointer to leaf node */
     haddr_t     leaf_addr = HADDR_UNDEF;  /* Leaf address on disk */
@@ -2380,6 +2453,27 @@ H5B2_remove_leaf_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id,
     HDassert(leaf->nrec == curr_node_ptr->node_nrec);
     HDassert(idx < leaf->nrec);
 
+    /* Check for invalidating the min/max record for the tree */
+    if(H5B2_POS_MIDDLE != curr_pos) {
+        /* (Don't use 'else' for the idx check, to allow for root leaf node) */
+        if(idx == 0) {
+            if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                if(hdr->min_native_rec) {
+                    HDfree(hdr->min_native_rec);
+                    hdr->min_native_rec = NULL;
+                } /* end if */
+            } /* end if */
+        } /* end if */
+        if(idx == (unsigned)(leaf->nrec - 1)) {
+            if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos) {
+                if(hdr->max_native_rec) {
+                    HDfree(hdr->max_native_rec);
+                    hdr->max_native_rec = NULL;
+                } /* end if */
+            } /* end if */
+        } /* end if */
+    } /* end if */
+
     /* Make 'remove' callback if there is one */
     if(op)
         if((op)(H5B2_LEAF_NREC(leaf, hdr, idx), op_data) < 0)
@@ -2434,13 +2528,14 @@ herr_t
 H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id,
     hbool_t *depth_decreased, void *swap_loc, unsigned depth,
     H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr,
-    H5B2_node_ptr_t *curr_node_ptr, hsize_t n, H5B2_remove_t op,
-    void *op_data)
+    H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, hsize_t n,
+    H5B2_remove_t op, void *op_data)
 {
     H5AC_info_t *new_cache_info;        /* Pointer to new cache info */
     unsigned *new_cache_info_flags_ptr = NULL;
     H5B2_node_ptr_t *new_node_ptr;      /* Pointer to new node pointer */
     H5B2_internal_t *internal;          /* Pointer to internal node */
+    H5B2_nodepos_t next_pos = H5B2_POS_MIDDLE;  /* Position of next node */
     unsigned internal_flags = H5AC__NO_FLAGS_SET;
     haddr_t internal_addr;              /* Address of internal node */
     size_t      merge_nrec;             /* Number of records to merge node at */
@@ -2494,6 +2589,9 @@ H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id,
 
         /* Set flag to indicate root was collapsed */
         collapsed_root = TRUE;
+
+        /* Indicate position of next node */
+        next_pos = H5B2_POS_ROOT;
     } /* end if */
     /* Merge or redistribute child node pointers, if necessary */
     else {
@@ -2641,16 +2739,28 @@ H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id,
         new_cache_info_flags_ptr = &internal_flags;
         new_cache_info = &internal->cache_info;
         new_node_ptr = &internal->node_ptrs[idx];
+
+        /* Indicate position of next node */
+        if(H5B2_POS_MIDDLE != curr_pos) {
+            if(idx == 0) {
+                if(H5B2_POS_LEFT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                    next_pos = H5B2_POS_LEFT;
+            } /* end if */
+            else if(idx == internal->nrec) {
+                if(H5B2_POS_RIGHT == curr_pos || H5B2_POS_ROOT == curr_pos)
+                    next_pos = H5B2_POS_RIGHT;
+            } /* end if */
+        } /* end if */
     } /* end else */
 
     /* Attempt to remove record from child node */
     if(depth > 1) {
         if(H5B2_remove_internal_by_idx(hdr, dxpl_id, depth_decreased, swap_loc, depth - 1,
-                new_cache_info, new_cache_info_flags_ptr, new_node_ptr, n, op, op_data) < 0)
+                new_cache_info, new_cache_info_flags_ptr, new_node_ptr, next_pos, n, op, op_data) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree internal node")
     } /* end if */
     else {
-        if(H5B2_remove_leaf_by_idx(hdr, dxpl_id, new_node_ptr, (unsigned)n, op, op_data) < 0)
+        if(H5B2_remove_leaf_by_idx(hdr, dxpl_id, new_node_ptr, next_pos, (unsigned)n, op, op_data) < 0)
             HGOTO_ERROR(H5E_BTREE, H5E_CANTDELETE, FAIL, "unable to remove record from B-tree leaf node")
     } /* end else */
 
@@ -3105,7 +3215,7 @@ H5B2_assert_leaf(const H5B2_hdr_t *hdr, const H5B2_leaf_t *leaf)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B2_assert_leaf2(const H5B2_hdr_t *hdr, const H5B2_leaf_t *leaf, const H5B2_leaf_t UNUSED *leaf2)
+H5B2_assert_leaf2(const H5B2_hdr_t *hdr, const H5B2_leaf_t *leaf, const H5B2_leaf_t H5_ATTR_UNUSED *leaf2)
 {
     /* General sanity checking on node */
     HDassert(leaf->nrec <= hdr->node_info->split_nrec);
diff --git a/src/H5B2pkg.h b/src/H5B2pkg.h
index b820853..3ea9534 100644
--- a/src/H5B2pkg.h
+++ b/src/H5B2pkg.h
@@ -172,6 +172,8 @@ typedef struct H5B2_hdr_t {
     uint8_t	*page;	        /* Common disk page for I/O */
     size_t      *nat_off;       /* Array of offsets of native records */
     H5B2_node_info_t *node_info; /* Table of node info structs for current depth of B-tree */
+    uint8_t     *min_native_rec;   /* Pointer to minimum native record                  */
+    uint8_t     *max_native_rec;   /* Pointer to maximum native record                  */
 
     /* Client information (not stored) */
     const H5B2_class_t *cls;	/* Class of B-tree client */
@@ -208,6 +210,14 @@ struct H5B2_t {
     H5F_t      *f;              /* Pointer to file for v2 B-tree */
 };
 
+/* Node position, for min/max determination */
+typedef enum H5B2_nodepos_t {
+    H5B2_POS_ROOT,              /* Node is root (i.e. both right & left-most in tree) */
+    H5B2_POS_RIGHT,             /* Node is right-most in tree, at a given depth */
+    H5B2_POS_LEFT,              /* Node is left-most in tree, at a given depth */
+    H5B2_POS_MIDDLE             /* Node is neither right or left-most in tree */
+} H5B2_nodepos_t;
+
 /* Callback info for loading a free space header into the cache */
 typedef struct H5B2_hdr_cache_ud_t {
     H5F_t *f;                   /* File that v2 b-tree header is within */
@@ -304,9 +314,9 @@ H5_DLL herr_t H5B2_internal_free(H5B2_internal_t *i);
 /* Routines for inserting records */
 H5_DLL herr_t H5B2_insert_internal(H5B2_hdr_t *hdr, hid_t dxpl_id,
     unsigned depth, unsigned *parent_cache_info_flags_ptr,
-    H5B2_node_ptr_t *curr_node_ptr, void *udata);
+    H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata);
 H5_DLL herr_t H5B2_insert_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id,
-    H5B2_node_ptr_t *curr_node_ptr, void *udata);
+    H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, void *udata);
 
 /* Routines for iterating over nodes/records */
 H5_DLL herr_t H5B2_iterate_node(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth,
@@ -326,19 +336,21 @@ H5_DLL herr_t H5B2_neighbor_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id,
 
 /* Routines for removing records */
 H5_DLL herr_t H5B2_remove_internal(H5B2_hdr_t *hdr, hid_t dxpl_id,
-    hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info,
-    hbool_t * parent_cache_info_dirtied_ptr, H5B2_node_ptr_t *curr_node_ptr, void *udata,
+    hbool_t *depth_decreased, void *swap_loc, unsigned depth,
+    H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr,
+    H5B2_nodepos_t curr_pos, H5B2_node_ptr_t *curr_node_ptr, void *udata,
     H5B2_remove_t op, void *op_data);
 H5_DLL herr_t H5B2_remove_leaf(H5B2_hdr_t *hdr, hid_t dxpl_id,
-    H5B2_node_ptr_t *curr_node_ptr, void *udata, H5B2_remove_t op,
-    void *op_data);
+    H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos,
+    void *udata, H5B2_remove_t op, void *op_data);
 H5_DLL herr_t H5B2_remove_internal_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id,
-    hbool_t *depth_decreased, void *swap_loc, unsigned depth, H5AC_info_t *parent_cache_info,
-    hbool_t * parent_cache_info_dirtied_ptr, H5B2_node_ptr_t *curr_node_ptr, hsize_t idx,
+    hbool_t *depth_decreased, void *swap_loc, unsigned depth,
+    H5AC_info_t *parent_cache_info, unsigned *parent_cache_info_flags_ptr,
+    H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos, hsize_t n,
     H5B2_remove_t op, void *op_data);
 H5_DLL herr_t H5B2_remove_leaf_by_idx(H5B2_hdr_t *hdr, hid_t dxpl_id,
-    H5B2_node_ptr_t *curr_node_ptr, unsigned idx, H5B2_remove_t op,
-    void *op_data);
+    H5B2_node_ptr_t *curr_node_ptr, H5B2_nodepos_t curr_pos,
+    unsigned idx, H5B2_remove_t op, void *op_data);
 
 /* Routines for deleting nodes */
 H5_DLL herr_t H5B2_delete_node(H5B2_hdr_t *hdr, hid_t dxpl_id, unsigned depth,
diff --git a/src/H5B2stat.c b/src/H5B2stat.c
index 5e48a6f..5d159ed 100644
--- a/src/H5B2stat.c
+++ b/src/H5B2stat.c
@@ -13,10 +13,10 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-/* Programmer:  Quincey Koziol <koziol at ncsa.uiuc.edu>
+/* Programmer:  Quincey Koziol <koziol at hdfgroup.org>
  *              Monday, March  6, 2006
  *
- * Purpose:	v2 B-tree metadata statistics functions.
+ * Purpose:     v2 B-tree metadata statistics functions.
  *
  */
 
@@ -24,15 +24,15 @@
 /* Module Setup */
 /****************/
 
-#define H5B2_PACKAGE		/*suppress error about including H5B2pkg  */
+#define H5B2_PACKAGE        /* Suppress error about including H5B2pkg   */
 
 
 /***********/
 /* Headers */
 /***********/
-#include "H5private.h"		/* Generic Functions			*/
-#include "H5B2pkg.h"		/* v2 B-trees				*/
-#include "H5Eprivate.h"		/* Error handling		  	*/
+#include "H5private.h"      /* Generic Functions                        */
+#include "H5B2pkg.h"        /* v2 B-trees                               */
+#include "H5Eprivate.h"     /* Error handling                           */
 
 
 /****************/
@@ -71,14 +71,13 @@
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5B2_stat_info
+ * Function:    H5B2_stat_info
  *
- * Purpose:	Retrieve metadata statistics for a v2 B-tree
+ * Purpose:     Retrieve metadata statistics for a v2 B-tree
  *
- * Return:	Success:	non-negative
- *		Failure:	negative
+ * Return:      SUCCEED (Can't fail)
  *
- * Programmer:	Quincey Koziol
+ * Programmer:  Quincey Koziol
  *              Monday, March  6, 2006
  *
  *-------------------------------------------------------------------------
@@ -105,7 +104,7 @@ H5B2_stat_info(H5B2_t *bt2, H5B2_stat_t *info)
  * Purpose:     Iterate over all the records in the B-tree, collecting
  *              storage info.
  *
- * Return:      non-negative on success, negative on error
+ * Return:      SUCCEED/FAIL
  *
  * Programmer:  Vailin Choi
  *              June 19 2007
@@ -115,7 +114,7 @@ H5B2_stat_info(H5B2_t *bt2, H5B2_stat_t *info)
 herr_t
 H5B2_size(H5B2_t *bt2, hid_t dxpl_id, hsize_t *btree_size)
 {
-    H5B2_hdr_t	*hdr;                   /* Pointer to the B-tree header */
+    H5B2_hdr_t  *hdr;                   /* Pointer to the B-tree header */
     herr_t      ret_value = SUCCEED;    /* Return value */
 
     FUNC_ENTER_NOAPI(FAIL)
diff --git a/src/H5B2test.c b/src/H5B2test.c
index af1228f..2537cbc 100644
--- a/src/H5B2test.c
+++ b/src/H5B2test.c
@@ -295,9 +295,9 @@ H5B2_test_decode(const uint8_t *raw, void *nrecord, void *_ctx)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B2_test_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
+H5B2_test_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
     int indent, int fwidth, const void *record,
-    const void UNUSED *_udata)
+    const void H5_ATTR_UNUSED *_udata)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -324,7 +324,7 @@ H5B2_test_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
  *-------------------------------------------------------------------------
  */
 static void *
-H5B2_test_crt_dbg_context(H5F_t *f, hid_t UNUSED dxpl_id, haddr_t UNUSED addr)
+H5B2_test_crt_dbg_context(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t H5_ATTR_UNUSED addr)
 {
     H5B2_test_ctx_t *ctx;       /* Callback context structure */
     void *ret_value;            /* Return value */
diff --git a/src/H5Bcache.c b/src/H5Bcache.c
index 2945094..b66204c 100644
--- a/src/H5Bcache.c
+++ b/src/H5Bcache.c
@@ -56,7 +56,7 @@
 
 /* Metadata cache callbacks */
 static H5B_t *H5B__load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5B__flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B_t *b, unsigned UNUSED * flags_ptr);
+static herr_t H5B__flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B_t *b, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5B__dest(H5F_t *f, H5B_t *bt);
 static herr_t H5B__clear(H5F_t *f, H5B_t *b, hbool_t destroy);
 static herr_t H5B__compute_size(const H5F_t *f, const H5B_t *bt, size_t *size_ptr);
@@ -205,7 +205,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B__flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B_t *bt, unsigned UNUSED * flags_ptr)
+H5B__flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5B_t *bt, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     H5B_shared_t *shared;       /* Pointer to shared B-tree info */
     herr_t      ret_value = SUCCEED;    /* Return value */
@@ -387,7 +387,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5B__compute_size(const H5F_t UNUSED *f, const H5B_t *bt, size_t *size_ptr)
+H5B__compute_size(const H5F_t H5_ATTR_UNUSED *f, const H5B_t *bt, size_t *size_ptr)
 {
     H5B_shared_t        *shared;        /* Pointer to shared B-tree info */
 
diff --git a/src/H5C.c b/src/H5C.c
index 2a17da5..03fe3d4 100644
--- a/src/H5C.c
+++ b/src/H5C.c
@@ -215,10 +215,10 @@ const H5C_class_t epoch_marker_class =
  ***************************************************************************/
 
 static void *
-H5C_epoch_marker_load(H5F_t UNUSED * f,
-                      hid_t UNUSED dxpl_id,
-                      haddr_t UNUSED addr,
-                      void UNUSED * udata)
+H5C_epoch_marker_load(H5F_t H5_ATTR_UNUSED * f,
+                      hid_t H5_ATTR_UNUSED dxpl_id,
+                      haddr_t H5_ATTR_UNUSED addr,
+                      void H5_ATTR_UNUSED * udata)
 {
     void * ret_value = NULL;      /* Return value */
 
@@ -232,12 +232,12 @@ done:
 }
 
 static herr_t
-H5C_epoch_marker_flush(H5F_t UNUSED *f,
-                       hid_t UNUSED dxpl_id,
-                       hbool_t UNUSED dest,
-                       haddr_t UNUSED addr,
-                       void UNUSED *thing,
-		       unsigned UNUSED * flags_ptr)
+H5C_epoch_marker_flush(H5F_t H5_ATTR_UNUSED *f,
+                       hid_t H5_ATTR_UNUSED dxpl_id,
+                       hbool_t H5_ATTR_UNUSED dest,
+                       haddr_t H5_ATTR_UNUSED addr,
+                       void H5_ATTR_UNUSED *thing,
+		       unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     herr_t ret_value = FAIL;      /* Return value */
 
@@ -251,8 +251,8 @@ done:
 }
 
 static herr_t
-H5C_epoch_marker_dest(H5F_t UNUSED * f,
-                      void UNUSED * thing)
+H5C_epoch_marker_dest(H5F_t H5_ATTR_UNUSED * f,
+                      void H5_ATTR_UNUSED * thing)
 {
     herr_t ret_value = FAIL;      /* Return value */
 
@@ -266,9 +266,9 @@ done:
 }
 
 static herr_t
-H5C_epoch_marker_clear(H5F_t UNUSED * f,
-                       void UNUSED * thing,
-                       hbool_t UNUSED dest)
+H5C_epoch_marker_clear(H5F_t H5_ATTR_UNUSED * f,
+                       void H5_ATTR_UNUSED * thing,
+                       hbool_t H5_ATTR_UNUSED dest)
 {
     herr_t ret_value = FAIL;      /* Return value */
 
@@ -282,8 +282,8 @@ done:
 }
 
 static herr_t
-H5C_epoch_marker_notify(H5C_notify_action_t UNUSED action,
-                       void UNUSED * thing)
+H5C_epoch_marker_notify(H5C_notify_action_t H5_ATTR_UNUSED action,
+                       void H5_ATTR_UNUSED * thing)
 {
     herr_t ret_value = FAIL;      /* Return value */
 
@@ -296,9 +296,9 @@ done:
 }
 
 static herr_t
-H5C_epoch_marker_size(const H5F_t UNUSED * f,
-                      const void UNUSED * thing,
-                      size_t UNUSED * size_ptr)
+H5C_epoch_marker_size(const H5F_t H5_ATTR_UNUSED * f,
+                      const void H5_ATTR_UNUSED * thing,
+                      size_t H5_ATTR_UNUSED * size_ptr)
 {
     herr_t ret_value = FAIL;      /* Return value */
 
@@ -1195,7 +1195,7 @@ H5C_def_auto_resize_rpt_fcn(H5C_t * cache_ptr,
 #ifndef NDEBUG
                             int32_t version,
 #else /* NDEBUG */
-                            int32_t UNUSED version,
+                            int32_t H5_ATTR_UNUSED version,
 #endif /* NDEBUG */
                             double hit_rate,
                             enum H5C_resize_status status,
@@ -4348,7 +4348,7 @@ H5C_stats(H5C_t * cache_ptr,
           const char *  cache_name,
           hbool_t
 #if !H5C_COLLECT_CACHE_STATS
-          UNUSED
+          H5_ATTR_UNUSED
 #endif /* H5C_COLLECT_CACHE_STATS */
           display_detailed_stats)
 {
@@ -4809,7 +4809,7 @@ H5C_stats__reset(H5C_t * cache_ptr)
 #if H5C_COLLECT_CACHE_STATS
 H5C_stats__reset(H5C_t * cache_ptr)
 #else /* H5C_COLLECT_CACHE_STATS */
-H5C_stats__reset(H5C_t UNUSED * cache_ptr)
+H5C_stats__reset(H5C_t H5_ATTR_UNUSED * cache_ptr)
 #endif /* H5C_COLLECT_CACHE_STATS */
 #endif /* NDEBUG */
 {
diff --git a/src/H5D.c b/src/H5D.c
index 46954f0..cd3d989 100644
--- a/src/H5D.c
+++ b/src/H5D.c
@@ -329,7 +329,7 @@ H5Dopen2(hid_t loc_id, const char *name, hid_t dapl_id)
     H5O_loc_t    oloc;            	/* Dataset object location */
     H5O_type_t   obj_type;              /* Type of object at location */
     hbool_t      loc_found = FALSE;     /* Location at 'name' found */
-    hid_t        dxpl_id = H5AC_dxpl_id;    /* dxpl to use to open datset */
+    hid_t        dxpl_id = H5AC_ind_dxpl_id;    /* dxpl to use to open datset */
     hid_t        ret_value;
 
     FUNC_ENTER_API(FAIL)
@@ -770,7 +770,9 @@ herr_t
 H5Diterate(void *buf, hid_t type_id, hid_t space_id, H5D_operator_t op,
         void *operator_data)
 {
+    H5T_t *type;                /* Datatype */
     H5S_t *space;               /* Dataspace for iteration */
+    H5S_sel_iter_op_t dset_op;  /* Operator for iteration */
     herr_t ret_value;           /* Return value */
 
     FUNC_ENTER_API(FAIL)
@@ -783,12 +785,18 @@ H5Diterate(void *buf, hid_t type_id, hid_t space_id, H5D_operator_t op,
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid buffer")
     if(H5I_DATATYPE != H5I_get_type(type_id))
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid datatype")
+    if(NULL == (type = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE)))
+        HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an valid base datatype")
     if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid dataspace")
     if(!(H5S_has_extent(space)))
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "dataspace does not have extent set")
 
-    ret_value = H5D__iterate(buf, type_id, space, op, operator_data);
+    dset_op.op_type = H5S_SEL_ITER_OP_APP;
+    dset_op.u.app_op.op = op;
+    dset_op.u.app_op.type_id = type_id;
+
+    ret_value = H5S_select_iterate(buf, type, space, &dset_op, operator_data);
 
 done:
     FUNC_LEAVE_API(ret_value)
@@ -877,6 +885,8 @@ H5Dvlen_get_buf_size(hid_t dataset_id, hid_t type_id, hid_t space_id,
     char bogus;                 /* bogus value to pass to H5Diterate() */
     H5S_t *space;               /* Dataspace for iteration */
     H5P_genplist_t  *plist;     /* Property list */
+    H5T_t *type;                /* Datatype */
+    H5S_sel_iter_op_t dset_op;  /* Operator for iteration */
     herr_t ret_value;           /* Return value */
 
     FUNC_ENTER_API(FAIL)
@@ -888,6 +898,8 @@ H5Dvlen_get_buf_size(hid_t dataset_id, hid_t type_id, hid_t space_id,
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid argument")
     if(NULL == (dset = (H5D_t *)H5I_object(dataset_id)))
 	HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataset")
+    if(NULL == (type = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE)))
+        HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an valid base datatype")
     if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid dataspace")
     if(!(H5S_has_extent(space)))
@@ -927,8 +939,12 @@ H5Dvlen_get_buf_size(hid_t dataset_id, hid_t type_id, hid_t space_id,
     /* Set the initial number of bytes required */
     vlen_bufsize.size = 0;
 
-    /* Call H5D__iterate with args, etc. */
-    ret_value = H5D__iterate(&bogus, type_id, space, H5D__vlen_get_buf_size, &vlen_bufsize);
+    /* Call H5S_select_iterate with args, etc. */
+    dset_op.op_type = H5S_SEL_ITER_OP_APP;
+    dset_op.u.app_op.op = H5D__vlen_get_buf_size;
+    dset_op.u.app_op.type_id = type_id;
+
+    ret_value = H5S_select_iterate(&bogus, type, space, &dset_op, &vlen_bufsize);
 
     /* Get the size if we succeeded */
     if(ret_value >= 0)
diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c
index af91753..a4cdc2f 100644
--- a/src/H5Dbtree.c
+++ b/src/H5Dbtree.c
@@ -195,7 +195,7 @@ H5B_class_t H5B_BTREE[1] = {{
     H5D__btree_remove,		/*remove		*/
     H5D__btree_decode_key,	/*decode		*/
     H5D__btree_encode_key,	/*encode		*/
-    H5D__btree_debug_key,	/*debug			*/
+    H5D__btree_debug_key	/*debug			*/
 }};
 
 
@@ -220,7 +220,7 @@ H5B_class_t H5B_BTREE[1] = {{
  */
 /* ARGSUSED */
 static H5RC_t *
-H5D__btree_get_shared(const H5F_t UNUSED *f, const void *_udata)
+H5D__btree_get_shared(const H5F_t H5_ATTR_UNUSED *f, const void *_udata)
 {
     const H5D_chunk_common_ud_t *udata = (const H5D_chunk_common_ud_t *) _udata;
 
@@ -445,7 +445,7 @@ H5D__btree_cmp3(void *_lt_key, void *_udata, void *_rt_key)
  */
 /* ARGSUSED */
 static htri_t
-H5D__btree_found(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, haddr_t addr, const void *_lt_key,
+H5D__btree_found(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t addr, const void *_lt_key,
 		 void *_udata)
 {
     H5D_chunk_ud_t	   *udata = (H5D_chunk_ud_t *) _udata;
@@ -510,7 +510,7 @@ static H5B_ins_t
 H5D__btree_insert(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_lt_key,
 		  hbool_t *lt_key_changed,
 		  void *_md_key, void *_udata, void *_rt_key,
-		  hbool_t UNUSED *rt_key_changed,
+		  hbool_t H5_ATTR_UNUSED *rt_key_changed,
 		  haddr_t *new_node_p/*out*/)
 {
     H5D_btree_key_t	*lt_key = (H5D_btree_key_t *) _lt_key;
@@ -631,8 +631,8 @@ done:
 static H5B_ins_t
 H5D__btree_remove(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_lt_key /*in,out */ ,
 	hbool_t *lt_key_changed /*out */ ,
-	void UNUSED * _udata /*in,out */ ,
-	void UNUSED * _rt_key /*in,out */ ,
+	void H5_ATTR_UNUSED * _udata /*in,out */ ,
+	void H5_ATTR_UNUSED * _rt_key /*in,out */ ,
 	hbool_t *rt_key_changed /*out */ )
 {
     H5D_btree_key_t    *lt_key = (H5D_btree_key_t *)_lt_key;
@@ -821,7 +821,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5D__btree_idx_init(const H5D_chk_idx_info_t *idx_info, const H5S_t UNUSED *space,
+H5D__btree_idx_init(const H5D_chk_idx_info_t *idx_info, const H5S_t H5_ATTR_UNUSED *space,
     haddr_t dset_ohdr_addr)
 {
     herr_t      ret_value = SUCCEED;       /* Return value */
@@ -868,7 +868,7 @@ done:
 static herr_t
 H5D__btree_idx_create(const H5D_chk_idx_info_t *idx_info)
 {
-    H5D_chunk_common_ud_t udata;             /* User data for B-tree callback */
+    H5D_chunk_common_ud_t udata;        /* User data for B-tree callback */
     herr_t ret_value = SUCCEED;         /* Return value */
 
     FUNC_ENTER_STATIC
@@ -939,7 +939,7 @@ H5D__btree_idx_is_space_alloc(const H5O_storage_chunk_t *storage)
 static herr_t
 H5D__btree_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata)
 {
-    herr_t	ret_value = SUCCEED;		/* Return value */
+    herr_t	ret_value = SUCCEED;    /* Return value */
 
     FUNC_ENTER_STATIC
 
@@ -1019,8 +1019,8 @@ done:
  */
 /* ARGSUSED */
 static int
-H5D__btree_idx_iterate_cb(H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
-    const void *_lt_key, haddr_t addr, const void UNUSED *_rt_key,
+H5D__btree_idx_iterate_cb(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
+    const void *_lt_key, haddr_t addr, const void H5_ATTR_UNUSED *_rt_key,
     void *_udata)
 {
     H5D_btree_it_ud_t	*udata = (H5D_btree_it_ud_t *)_udata; /* User data */
@@ -1111,7 +1111,7 @@ H5D__btree_idx_iterate(const H5D_chk_idx_info_t *idx_info,
 static herr_t
 H5D__btree_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t *udata)
 {
-    herr_t	ret_value = SUCCEED;		/* Return value */
+    herr_t	ret_value = SUCCEED;	/* Return value */
 
     FUNC_ENTER_STATIC
 
@@ -1258,7 +1258,7 @@ done:
 static herr_t
 H5D__btree_idx_copy_shutdown(H5O_storage_chunk_t *storage_src,
     H5O_storage_chunk_t *storage_dst,
-    hid_t UNUSED dxpl_id)
+    hid_t H5_ATTR_UNUSED dxpl_id)
 {
     herr_t      ret_value = SUCCEED;       /* Return value */
 
diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c
index 15846d4..3bac996 100644
--- a/src/H5Dchunk.c
+++ b/src/H5Dchunk.c
@@ -226,9 +226,9 @@ static herr_t H5D__create_chunk_map_single(H5D_chunk_map_t *fm,
 static herr_t H5D__create_chunk_file_map_hyper(H5D_chunk_map_t *fm,
     const H5D_io_info_t *io_info);
 static herr_t H5D__create_chunk_mem_map_hyper(const H5D_chunk_map_t *fm);
-static herr_t H5D__chunk_file_cb(void *elem, hid_t type_id, unsigned ndims,
+static herr_t H5D__chunk_file_cb(void *elem, const H5T_t *type, unsigned ndims,
     const hsize_t *coords, void *fm);
-static herr_t H5D__chunk_mem_cb(void *elem, hid_t type_id, unsigned ndims,
+static herr_t H5D__chunk_mem_cb(void *elem, const H5T_t *type, unsigned ndims,
     const hsize_t *coords, void *fm);
 static herr_t H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id,
     const H5D_dxpl_cache_t *dxpl_cache, H5D_rdcc_ent_t *ent, hbool_t reset);
@@ -318,24 +318,22 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz
      uint32_t data_size, const void *buf)
 {
     const H5O_layout_t *layout = &(dset->shared->layout);       /* Dataset layout */
-    H5D_chunk_ud_t udata;   /* User data for querying chunk info */
+    H5D_chunk_ud_t udata;               /* User data for querying chunk info */
     hsize_t chunk_idx;
     H5D_dxpl_cache_t _dxpl_cache;       /* Data transfer property cache buffer */
     H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache;   /* Data transfer property cache */
     const H5D_rdcc_t       *rdcc = &(dset->shared->cache.chunk);	/*raw data chunk cache */
     int         space_ndims;    /* Dataset's space rank */
     hsize_t     space_dim[H5O_LAYOUT_NDIMS];    /* Dataset's dataspace dimensions */
-    herr_t ret_value = SUCCEED; /* Return value */
+    herr_t ret_value = SUCCEED;         /* Return value */
 
     FUNC_ENTER_STATIC
 
     /* Allocate data space and initialize it if it hasn't been. */
-    if(!(*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) {
+    if(!(*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage))
  	/* Allocate storage */
         if(H5D__alloc_storage(dset, dxpl_id, H5D_ALLOC_WRITE, FALSE, NULL) < 0)
             HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize storage")
-    } /* end if */
-
 
     /* Retrieve the dataset dimensions */
     if((space_ndims = H5S_get_simple_extent_dims(dset->shared->space, space_dim, NULL)) < 0)
@@ -385,11 +383,9 @@ H5D__chunk_direct_write(const H5D_t *dset, hid_t dxpl_id, uint32_t filters, hsiz
 
     /* Evict the entry from the cache if present, but do not flush
      * it to disk */
-    if(UINT_MAX != udata.idx_hint) {
-        if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache,
-	    rdcc->slot[udata.idx_hint], FALSE) < 0)
+    if(UINT_MAX != udata.idx_hint)
+        if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, rdcc->slot[udata.idx_hint], FALSE) < 0)
 	    HGOTO_ERROR(H5E_DATASET, H5E_CANTREMOVE, FAIL, "unable to evict chunk")
-    } /* end if */
 
     /* Write the data to the file */
     if(H5F_block_write(dset->oloc.file, H5FD_MEM_DRAW, udata.addr, data_size, dxpl_id, buf) < 0)
@@ -471,7 +467,7 @@ H5D__chunk_set_info(const H5D_t *dset)
     /* Get the dim info for dataset */
     if((sndims = H5S_get_simple_extent_dims(dset->shared->space, curr_dims, NULL)) < 0)
 	HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataspace dimensions")
-    H5_ASSIGN_OVERFLOW(ndims, sndims, int, unsigned);
+    H5_CHECKED_ASSIGN(ndims, unsigned, sndims, int);
 
     /* Set the base layout information */
     if(H5D__chunk_set_info_real(&dset->shared->layout.u.chunk, ndims, curr_dims) < 0)
@@ -499,7 +495,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5D__chunk_construct(H5F_t UNUSED *f, H5D_t *dset)
+H5D__chunk_construct(H5F_t H5_ATTR_UNUSED *f, H5D_t *dset)
 {
     const H5T_t *type = dset->shared->type;      /* Convenience pointer to dataset's datatype */
     hsize_t max_dims[H5O_LAYOUT_NDIMS];          /* Maximum size of data in elements */
@@ -566,7 +562,7 @@ H5D__chunk_construct(H5F_t UNUSED *f, H5D_t *dset)
         HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "chunk size must be < 4GB")
 
     /* Retain computed chunk size */
-    H5_ASSIGN_OVERFLOW(dset->shared->layout.u.chunk.size, chunk_size, uint64_t, uint32_t);
+    H5_CHECKED_ASSIGN(dset->shared->layout.u.chunk.size, uint32_t, chunk_size, uint64_t);
 
     /* Reset address and pointer of the array struct for the chunked storage index */
     if(H5D_chunk_idx_reset(&dset->shared->layout.storage.u.chunk, TRUE) < 0)
@@ -706,7 +702,7 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf
     H5S_t *tmp_mspace = NULL;   /* Temporary memory dataspace */
     hssize_t old_offset[H5O_LAYOUT_NDIMS];  /* Old selection offset */
     htri_t file_space_normalized = FALSE;   /* File dataspace was normalized */
-    hid_t f_tid = (-1);           /* Temporary copy of file datatype for iteration */
+    H5T_t *file_type = NULL;    /* Temporary copy of file datatype for iteration */
     hbool_t iter_init = FALSE;  /* Selection iteration info has been initialized */
     unsigned f_ndims;           /* The number of dimensions of the file's dataspace */
     int sm_ndims;               /* The number of dimensions of the memory buffer's dataspace (signed) */
@@ -726,7 +722,7 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf
     if((sm_ndims = H5S_GET_EXTENT_NDIMS(mem_space)) < 0)
         HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "unable to get dimension number")
     /* Set the number of dimensions for the memory dataspace */
-    H5_ASSIGN_OVERFLOW(fm->m_ndims, sm_ndims, int, unsigned);
+    H5_CHECKED_ASSIGN(fm->m_ndims, unsigned, sm_ndims, int);
 
     /* Get dim number and dimensionality for each dataspace */
     fm->f_ndims = f_ndims = dataset->shared->layout.u.chunk.ndims - 1;
@@ -862,11 +858,12 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf
             } /* end while */
         } /* end if */
         else {
+            H5S_sel_iter_op_t iter_op;  /* Operator for iteration */
             H5D_chunk_file_iter_ud_t udata;     /* User data for iteration */
 
             /* Create temporary datatypes for selection iteration */
-            if((f_tid = H5I_register(H5I_DATATYPE, H5T_copy(dataset->shared->type, H5T_COPY_ALL), FALSE)) < 0)
-                HGOTO_ERROR(H5E_DATATYPE, H5E_CANTREGISTER, FAIL, "unable to register file datatype")
+            if(NULL == (file_type = H5T_copy(dataset->shared->type, H5T_COPY_ALL)))
+                HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCOPY, FAIL, "unable to copy file datatype")
 
             /* Initialize the user data */
             udata.fm = fm;
@@ -874,8 +871,11 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf
             udata.io_info = io_info;
 #endif /* H5_HAVE_PARALLEL */
 
+            iter_op.op_type = H5S_SEL_ITER_OP_LIB;
+            iter_op.u.lib_op = H5D__chunk_file_cb;
+
             /* Spaces might not be the same shape, iterate over the file selection directly */
-            if(H5S_select_iterate(&bogus, f_tid, file_space, H5D__chunk_file_cb, &udata) < 0)
+            if(H5S_select_iterate(&bogus, file_type, file_space, &iter_op, &udata) < 0)
                 HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to create file chunk selections")
 
             /* Reset "last chunk" info */
@@ -895,6 +895,7 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf
                 HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to create memory chunk selections")
         } /* end if */
         else {
+            H5S_sel_iter_op_t iter_op;  /* Operator for iteration */
             size_t elmt_size;           /* Memory datatype size */
 
             /* Make a copy of equivalent memory space */
@@ -909,9 +910,9 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf
             fm->mchunk_tmpl = tmp_mspace;
 
             /* Create temporary datatypes for selection iteration */
-            if(f_tid < 0) {
-                if((f_tid = H5I_register(H5I_DATATYPE, H5T_copy(dataset->shared->type, H5T_COPY_ALL), FALSE)) < 0)
-                    HGOTO_ERROR(H5E_DATATYPE, H5E_CANTREGISTER, FAIL, "unable to register file datatype")
+            if(!file_type) {
+                if(NULL == (file_type = H5T_copy(dataset->shared->type, H5T_COPY_ALL)))
+                    HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCOPY, FAIL, "unable to copy file datatype")
             } /* end if */
 
             /* Create selection iterator for memory selection */
@@ -921,8 +922,11 @@ H5D__chunk_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_inf
                 HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "unable to initialize selection iterator")
             iter_init = TRUE;	/* Selection iteration info has been initialized */
 
+            iter_op.op_type = H5S_SEL_ITER_OP_LIB;
+            iter_op.u.lib_op = H5D__chunk_mem_cb;
+
             /* Spaces aren't the same shape, iterate over the memory selection directly */
-            if(H5S_select_iterate(&bogus, f_tid, file_space, H5D__chunk_mem_cb, fm) < 0)
+            if(H5S_select_iterate(&bogus, file_type, file_space, &iter_op, fm) < 0)
                 HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to create memory chunk selections")
 
             /* Clean up hyperslab stuff, if necessary */
@@ -965,8 +969,8 @@ done:
 
     if(iter_init && H5S_SELECT_ITER_RELEASE(&(fm->mem_iter)) < 0)
         HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release selection iterator")
-    if(f_tid != (-1) && H5I_dec_ref(f_tid) < 0)
-        HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "Can't decrement temporary datatype ID")
+    if(file_type && (H5T_close(file_type) < 0))
+        HDONE_ERROR(H5E_DATATYPE, H5E_CANTFREE, FAIL, "Can't free temporary datatype")
     if(file_space_normalized) {
         /* (Casting away const OK -QAK) */
         if(H5S_hyper_denormalize_offset((H5S_t *)file_space, old_offset) < 0)
@@ -1093,7 +1097,7 @@ H5D__chunk_realloc(void *chk, size_t size, const H5O_pline_t *pline)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5D__free_chunk_info(void *item, void UNUSED *key, void UNUSED *opdata)
+H5D__free_chunk_info(void *item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *opdata)
 {
     H5D_chunk_info_t *chunk_info = (H5D_chunk_info_t *)item;
 
@@ -1133,7 +1137,7 @@ H5D__free_chunk_info(void *item, void UNUSED *key, void UNUSED *opdata)
 static herr_t
 H5D__create_chunk_map_single(H5D_chunk_map_t *fm, const H5D_io_info_t
 #ifndef H5_HAVE_PARALLEL
-    UNUSED
+    H5_ATTR_UNUSED
 #endif /* H5_HAVE_PARALLEL */
     *io_info)
 {
@@ -1214,7 +1218,7 @@ done:
 static herr_t
 H5D__create_chunk_file_map_hyper(H5D_chunk_map_t *fm, const H5D_io_info_t
 #ifndef H5_HAVE_PARALLEL
-    UNUSED
+    H5_ATTR_UNUSED
 #endif /* H5_HAVE_PARALLEL */
     *io_info)
 {
@@ -1317,20 +1321,19 @@ H5D__create_chunk_file_map_hyper(H5D_chunk_map_t *fm, const H5D_io_info_t
             new_chunk_info->mspace_shared = FALSE;
 
             /* Copy the chunk's coordinates */
-            for(u=0; u<fm->f_ndims; u++)
-                new_chunk_info->coords[u]=coords[u];
-            new_chunk_info->coords[fm->f_ndims]=0;
+            HDmemcpy(new_chunk_info->coords, coords, sizeof(hsize_t) * fm->f_ndims);
+            new_chunk_info->coords[fm->f_ndims] = 0;
 
             /* Insert the new chunk into the skip list */
             if(H5SL_insert(fm->sel_chunks, new_chunk_info, &new_chunk_info->index) < 0) {
-                    H5D__free_chunk_info(new_chunk_info, NULL, NULL);
+                H5D__free_chunk_info(new_chunk_info, NULL, NULL);
                 HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINSERT, FAIL, "can't insert chunk into skip list")
             } /* end if */
 
             /* Get number of elements selected in chunk */
             if((schunk_points = H5S_GET_SELECT_NPOINTS(tmp_fchunk)) < 0)
                 HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get file selection # of elements")
-            H5_ASSIGN_OVERFLOW(new_chunk_info->chunk_points, schunk_points, hssize_t, uint32_t);
+            H5_CHECKED_ASSIGN(new_chunk_info->chunk_points, uint32_t, schunk_points, hssize_t);
 
             /* Decrement # of points left in file selection */
             sel_points -= (hsize_t)schunk_points;
@@ -1503,12 +1506,12 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5D__chunk_file_cb(void UNUSED *elem, hid_t UNUSED type_id, unsigned ndims, const hsize_t *coords, void *_udata)
+H5D__chunk_file_cb(void H5_ATTR_UNUSED *elem, const H5T_t H5_ATTR_UNUSED *type, unsigned ndims, const hsize_t *coords, void *_udata)
 {
     H5D_chunk_file_iter_ud_t *udata = (H5D_chunk_file_iter_ud_t *)_udata;       /* User data for operation */
     H5D_chunk_map_t      *fm = udata->fm;       /* File<->memory chunk mapping info */
     H5D_chunk_info_t *chunk_info;               /* Chunk information for current chunk */
-    hsize_t    coords_in_chunk[H5O_LAYOUT_NDIMS];        /* Coordinates of element in chunk */
+    hsize_t     coords_in_chunk[H5O_LAYOUT_NDIMS];        /* Coordinates of element in chunk */
     hsize_t     chunk_index;                    /* Chunk index */
     unsigned    u;                              /* Local index variable */
     herr_t	ret_value = SUCCEED;            /* Return value		*/
@@ -1623,7 +1626,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5D__chunk_mem_cb(void UNUSED *elem, hid_t UNUSED type_id, unsigned ndims, const hsize_t *coords, void *_fm)
+H5D__chunk_mem_cb(void H5_ATTR_UNUSED *elem, const H5T_t H5_ATTR_UNUSED *type, unsigned ndims, const hsize_t *coords, void *_fm)
 {
     H5D_chunk_map_t      *fm = (H5D_chunk_map_t *)_fm;  /* File<->memory chunk mapping info */
     H5D_chunk_info_t *chunk_info;               /* Chunk information for current chunk */
@@ -1776,7 +1779,7 @@ done:
  */
 static herr_t
 H5D__chunk_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
-    hsize_t UNUSED nelmts, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space,
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space,
     H5D_chunk_map_t *fm)
 {
     H5SL_node_t *chunk_node;            /* Current node in chunk skip list */
@@ -1808,7 +1811,7 @@ H5D__chunk_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
     ctg_io_info.layout_ops = *H5D_LOPS_CONTIG;
 
     /* Initialize temporary contiguous storage info */
-    H5_ASSIGN_OVERFLOW(ctg_store.contig.dset_size, io_info->dset->shared->layout.u.chunk.size, uint32_t, hsize_t);
+    H5_CHECKED_ASSIGN(ctg_store.contig.dset_size, hsize_t, io_info->dset->shared->layout.u.chunk.size, uint32_t);
 
     /* Set up compact I/O info object */
     HDmemcpy(&cpt_io_info, io_info, sizeof(cpt_io_info));
@@ -1928,7 +1931,7 @@ done:
  */
 static herr_t
 H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
-    hsize_t UNUSED nelmts, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space,
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space,
     H5D_chunk_map_t *fm)
 {
     H5SL_node_t *chunk_node;            /* Current node in chunk skip list */
@@ -1954,7 +1957,7 @@ H5D__chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
     ctg_io_info.layout_ops = *H5D_LOPS_CONTIG;
 
     /* Initialize temporary contiguous storage info */
-    H5_ASSIGN_OVERFLOW(ctg_store.contig.dset_size, io_info->dset->shared->layout.u.chunk.size, uint32_t, hsize_t);
+    H5_CHECKED_ASSIGN(ctg_store.contig.dset_size, hsize_t, io_info->dset->shared->layout.u.chunk.size, uint32_t);
 
     /* Set up compact I/O info object */
     HDmemcpy(&cpt_io_info, io_info, sizeof(cpt_io_info));
@@ -2238,8 +2241,6 @@ H5D__chunk_cinfo_cache_reset(H5D_chunk_cached_t *last)
 static herr_t
 H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *udata)
 {
-    unsigned    u;                              /* Local index variable */
-
     FUNC_ENTER_STATIC_NOERR
 
     /* Sanity check */
@@ -2250,8 +2251,7 @@ H5D__chunk_cinfo_cache_update(H5D_chunk_cached_t *last, const H5D_chunk_ud_t *ud
     HDassert(udata->common.offset);
 
     /* Stored the information to cache */
-    for(u = 0; u < udata->common.layout->ndims; u++)
-        last->offset[u] = udata->common.offset[u];
+    HDmemcpy(last->offset, udata->common.offset, sizeof(hsize_t) * udata->common.layout->ndims);
     last->nbytes = udata->nbytes;
     last->filter_mask = udata->filter_mask;
     last->addr = udata->addr;
@@ -2506,7 +2506,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t
                  * the pipeline because we'll want to save the original buffer
                  * for later.
                  */
-                H5_ASSIGN_OVERFLOW(alloc, udata.nbytes, uint32_t, size_t);
+                H5_CHECKED_ASSIGN(alloc, size_t, udata.nbytes, uint32_t);
                 if(NULL == (buf = H5MM_malloc(alloc)))
                     HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for pipeline")
                 HDmemcpy(buf, ent->chunk, udata.nbytes);
@@ -2522,7 +2522,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t
                 point_of_no_return = TRUE;
                 ent->chunk = NULL;
             } /* end else */
-            H5_ASSIGN_OVERFLOW(nbytes, udata.nbytes, uint32_t, size_t);
+            H5_CHECKED_ASSIGN(nbytes, size_t, udata.nbytes, uint32_t);
             if(H5Z_pipeline(&(dset->shared->dcpl_cache.pline), 0, &(udata.filter_mask), dxpl_cache->err_detect,
                      dxpl_cache->filter_cb, &nbytes, &alloc, &buf) < 0)
                 HGOTO_ERROR(H5E_PLINE, H5E_CANTFILTER, FAIL, "output pipeline failed")
@@ -2531,7 +2531,7 @@ H5D__chunk_flush_entry(const H5D_t *dset, hid_t dxpl_id, const H5D_dxpl_cache_t
             if(nbytes > ((size_t)0xffffffff))
                 HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, FAIL, "chunk too large for 32-bit length")
 #endif /* H5_SIZEOF_SIZE_T > 4 */
-            H5_ASSIGN_OVERFLOW(udata.nbytes, nbytes, size_t, uint32_t);
+            H5_CHECKED_ASSIGN(udata.nbytes, uint32_t, nbytes, size_t);
 
             /* Indicate that the chunk must go through 'insert' method */
             must_insert = TRUE;
@@ -2820,7 +2820,6 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata,
     haddr_t             chunk_addr = HADDR_UNDEF; /* Address of chunk on disk */
     size_t		chunk_size;		/*size of a chunk	*/
     void		*chunk = NULL;		/*the file chunk	*/
-    unsigned		u;			/*counters		*/
     void		*ret_value;	        /*return value		*/
 
     FUNC_ENTER_PACKAGE
@@ -2834,7 +2833,7 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata,
 
     /* Get the chunk's size */
     HDassert(layout->u.chunk.size > 0);
-    H5_ASSIGN_OVERFLOW(chunk_size, layout->u.chunk.size, uint32_t, size_t);
+    H5_CHECKED_ASSIGN(chunk_size, size_t, layout->u.chunk.size, uint32_t);
 
     /* Check if the chunk is in the cache */
     if(UINT_MAX != udata->idx_hint) {
@@ -2846,9 +2845,13 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata,
         ent = rdcc->slot[udata->idx_hint];
 
 #ifndef NDEBUG
+{
+        unsigned		u;			/*counters		*/
+
         /* Make sure this is the right chunk */
         for(u = 0; u < layout->u.chunk.ndims; u++)
             HDassert(io_info->store->chunk.offset[u] == ent->offset[u]);
+}
 #endif /* NDEBUG */
 
         /*
@@ -2890,7 +2893,7 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata,
 
             /* Chunk size on disk isn't [likely] the same size as the final chunk
              * size in memory, so allocate memory big enough. */
-            H5_ASSIGN_OVERFLOW(chunk_alloc, udata->nbytes, uint32_t, size_t);
+            H5_CHECKED_ASSIGN(chunk_alloc, size_t, udata->nbytes, uint32_t);
             if(NULL == (chunk = H5D__chunk_alloc(chunk_alloc, pline)))
                 HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for raw data chunk")
             if(H5F_block_read(dset->oloc.file, H5FD_MEM_DRAW, chunk_addr, chunk_alloc, io_info->dxpl_id, chunk) < 0)
@@ -2900,7 +2903,7 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata,
                 if(H5Z_pipeline(pline, H5Z_FLAG_REVERSE, &(udata->filter_mask), io_info->dxpl_cache->err_detect,
                         io_info->dxpl_cache->filter_cb, &chunk_alloc, &chunk_alloc, &chunk) < 0)
                     HGOTO_ERROR(H5E_PLINE, H5E_CANTFILTER, NULL, "data pipeline read failed")
-                H5_ASSIGN_OVERFLOW(udata->nbytes, chunk_alloc, size_t, uint32_t);
+                H5_CHECKED_ASSIGN(udata->nbytes, uint32_t, chunk_alloc, size_t);
             } /* end if */
 
             /* Increment # of cache misses */
@@ -2990,17 +2993,14 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata,
                 HGOTO_ERROR(H5E_IO, H5E_CANTINIT, NULL, "unable to preempt chunk(s) from cache")
 
             /* Create a new entry */
-            if(NULL == (ent = H5FL_MALLOC(H5D_rdcc_ent_t)))
+            if(NULL == (ent = H5FL_CALLOC(H5D_rdcc_ent_t)))
                 HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, NULL, "can't allocate raw data chunk entry")
 
-            ent->locked = 0;
-            ent->dirty = FALSE;
-            ent->deleted = FALSE;
+            /* Initialize the new entry */
             ent->chunk_addr = chunk_addr;
-            for(u = 0; u < layout->u.chunk.ndims; u++)
-                ent->offset[u] = io_info->store->chunk.offset[u];
-            H5_ASSIGN_OVERFLOW(ent->rd_count, chunk_size, size_t, uint32_t);
-            H5_ASSIGN_OVERFLOW(ent->wr_count, chunk_size, size_t, uint32_t);
+            HDmemcpy(ent->offset, io_info->store->chunk.offset, sizeof(hsize_t) * layout->u.chunk.ndims);
+            H5_CHECKED_ASSIGN(ent->rd_count, uint32_t, chunk_size, size_t);
+            H5_CHECKED_ASSIGN(ent->wr_count, uint32_t, chunk_size, size_t);
             ent->chunk = (uint8_t *)chunk;
 
             /* Add it to the cache */
@@ -3011,16 +3011,13 @@ H5D__chunk_lock(const H5D_io_info_t *io_info, H5D_chunk_ud_t *udata,
             rdcc->nused++;
 
             /* Add it to the linked list */
-            ent->next = NULL;
             if(rdcc->tail) {
                 rdcc->tail->next = ent;
                 ent->prev = rdcc->tail;
                 rdcc->tail = ent;
             } /* end if */
-            else {
+            else
                 rdcc->head = rdcc->tail = ent;
-                ent->prev = NULL;
-            } /* end else */
         } /* end if */
         else
             /* We did not add the chunk to cache */
@@ -3321,7 +3318,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite,
         HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't fill dxpl cache")
 
     /* Get original chunk size */
-    H5_ASSIGN_OVERFLOW(orig_chunk_size, layout->u.chunk.size, uint32_t, size_t);
+    H5_CHECKED_ASSIGN(orig_chunk_size, size_t, layout->u.chunk.size, uint32_t);
 
     /* Check the dataset's fill-value status */
     if(H5P_is_fill_value_defined(fill, &fill_status) < 0)
@@ -3413,8 +3410,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite,
             continue;
         else {
             /* Reset the chunk offset indices */
-            HDmemset(chunk_offset, 0, ((unsigned)space_ndims
-                    * sizeof(chunk_offset[0])));
+            HDmemset(chunk_offset, 0, ((unsigned)space_ndims * sizeof(chunk_offset[0])));
             chunk_offset[op_dim] = min_unalloc[op_dim];
 
             carry = FALSE;
@@ -3444,10 +3440,12 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite,
             /* Make sure the chunk is really in the dataset and outside the
              * original dimensions */
             {
+                unsigned u;             /* Local index variable */
                 hbool_t outside_orig = FALSE;
-                for(i=0; i<space_ndims; i++) {
-                    HDassert(chunk_offset[i] < space_dim[i]);
-                    if(chunk_offset[i] >= old_dim[i])
+
+                for(u = 0; u < (unsigned)space_ndims; u++) {
+                    HDassert(chunk_offset[u] < space_dim[u]);
+                    if(chunk_offset[u] >= old_dim[u])
                         outside_orig = TRUE;
                 } /* end for */
                 HDassert(outside_orig);
@@ -3500,7 +3498,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite,
             udata.common.storage = &layout->storage.u.chunk;
             udata.common.offset = chunk_offset;
             udata.common.rdcc = NULL;
-            H5_ASSIGN_OVERFLOW(udata.nbytes, chunk_size, size_t, uint32_t);
+            H5_CHECKED_ASSIGN(udata.nbytes, uint32_t, chunk_size, size_t);
             udata.filter_mask = filter_mask;
             udata.addr = HADDR_UNDEF;
 
@@ -3546,13 +3544,14 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite,
 
             /* Increment indices */
             carry = TRUE;
-            for(i = (int)(space_ndims - 1); i >= 0; --i) {
+            for(i = ((int)space_ndims - 1); i >= 0; --i) {
                 chunk_offset[i] += chunk_dim[i];
-                if(chunk_offset[i] > max_unalloc[i])
+                if(chunk_offset[i] > max_unalloc[i]) {
                     if(i == op_dim)
                         chunk_offset[i] = min_unalloc[i];
                     else
                         chunk_offset[i] = 0;
+		} /* end if */
                 else {
                     carry = FALSE;
                     break;
@@ -3656,9 +3655,9 @@ H5D__chunk_collective_fill(const H5D_t *dset, hid_t dxpl_id,
     leftover_blocks = chunk_info->num_io % mpi_size;
 
     /* Cast values to types needed by MPI */
-    H5_ASSIGN_OVERFLOW(blocks, num_blocks, size_t, int);
-    H5_ASSIGN_OVERFLOW(leftover, leftover_blocks, size_t, int);
-    H5_ASSIGN_OVERFLOW(block_len,  chunk_size, size_t, int);
+    H5_CHECKED_ASSIGN(blocks, int, num_blocks, size_t);
+    H5_CHECKED_ASSIGN(leftover, int, leftover_blocks, size_t);
+    H5_CHECKED_ASSIGN(block_len, int,  chunk_size, size_t);
 
     /* Allocate buffers */
     /* (MSC - should not need block_lens if MPI_type_create_hindexed_block is working) */
@@ -3802,7 +3801,7 @@ H5D__chunk_prune_fill(H5D_chunk_it_ud1_t *udata)
 
     /* Get the chunk's size */
     HDassert(layout->u.chunk.size > 0);
-    H5_ASSIGN_OVERFLOW(chunk_size, layout->u.chunk.size, uint32_t, size_t);
+    H5_CHECKED_ASSIGN(chunk_size, size_t, layout->u.chunk.size, uint32_t);
 
     /* Get the info for the chunk in the file */
     if(H5D__chunk_lookup(dset, io_info->dxpl_id, chunk_offset, io_info->store->chunk.index, &chk_udata) < 0)
@@ -4019,7 +4018,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
     hsize_t                 hyper_start[H5O_LAYOUT_NDIMS];  /* Starting location of hyperslab */
     uint32_t                elmts_per_chunk;    /* Elements in chunk */
     hbool_t                 carry;              /* Flag to indicate that chunk increment carrys to higher dimension (sorta) */
-    int                     i;	        /* Local index variable */
+    unsigned                u;	                /* Local index variable */
     herr_t                  ret_value = SUCCEED;       /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -4056,15 +4055,14 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
     /* (also copy the chunk dimensions into 'hsize_t' array for creating dataspace) */
     /* (also compute the dimensions which have been shrunk) */
     elmts_per_chunk = 1;
-    for(i = 0; i < space_ndims; i++) {
-        elmts_per_chunk *= layout->u.chunk.dim[i];
-	chunk_dim[i] = layout->u.chunk.dim[i];
-	shrunk_dim[i] = space_dim[i] < old_dim[i];
+    for(u = 0; u < (unsigned)space_ndims; u++) {
+        elmts_per_chunk *= layout->u.chunk.dim[u];
+	chunk_dim[u] = layout->u.chunk.dim[u];
+	shrunk_dim[u] = space_dim[u] < old_dim[u];
     } /* end for */
 
     /* Create a dataspace for a chunk & set the extent */
-    if(NULL == (chunk_space = H5S_create_simple((unsigned)space_ndims,
-            chunk_dim, NULL)))
+    if(NULL == (chunk_space = H5S_create_simple((unsigned)space_ndims, chunk_dim, NULL)))
 	HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "can't create simple dataspace")
 
     /* Reset hyperslab start array */
@@ -4131,8 +4129,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
                     / chunk_dim[op_dim]);
 
             /* Determine if we need to fill chunks in this dimension */
-            if((hssize_t)min_mod_chunk_off[op_dim]
-                    == max_fill_chunk_off[op_dim]) {
+            if((hssize_t)min_mod_chunk_off[op_dim] == max_fill_chunk_off[op_dim]) {
                 fill_dim[op_dim] = TRUE;
                 has_fill = TRUE;
             } /* end if */
@@ -4149,8 +4146,8 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
     if(has_fill)
         for(ent = rdcc->head; ent; ent = ent->next)
             /* Check for chunk offset outside of new dimensions */
-            for(i = 0; i<space_ndims; i++)
-                if((hsize_t)ent->offset[i] >= space_dim[i]) {
+            for(u = 0; u < (unsigned)space_ndims; u++)
+                if((hsize_t)ent->offset[u] >= space_dim[u]) {
                     /* Mark the entry as "deleted" */
                     ent->deleted = TRUE;
                     break;
@@ -4162,28 +4159,28 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
         if(!shrunk_dim[op_dim])
             continue;
         else {
-            HDassert((hsize_t) max_mod_chunk_off[op_dim]
-                    >= min_mod_chunk_off[op_dim]);
+            HDassert((hsize_t) max_mod_chunk_off[op_dim] >= min_mod_chunk_off[op_dim]);
 
             /* Reset the chunk offset indices */
-            HDmemset(chunk_offset, 0, ((unsigned)space_ndims
-                    * sizeof(chunk_offset[0])));
+            HDmemset(chunk_offset, 0, ((unsigned)space_ndims * sizeof(chunk_offset[0])));
             chunk_offset[op_dim] = min_mod_chunk_off[op_dim];
 
             /* Initialize "dims_outside_fill" array */
             ndims_outside_fill = 0;
-            for(i=0; i<space_ndims; i++)
-                if((hssize_t)chunk_offset[i] > max_fill_chunk_off[i]) {
-                    dims_outside_fill[i] = TRUE;
+            for(u = 0; u < (unsigned)space_ndims; u++)
+                if((hssize_t)chunk_offset[u] > max_fill_chunk_off[u]) {
+                    dims_outside_fill[u] = TRUE;
                     ndims_outside_fill++;
                 } /* end if */
                 else
-                    dims_outside_fill[i] = FALSE;
+                    dims_outside_fill[u] = FALSE;
 
             carry = FALSE;
         } /* end if */
 
         while(!carry) {
+            int i;	                        /* Local index variable */
+
             /* Calculate the index of this chunk */
             if(H5VM_chunk_index((unsigned)space_ndims, chunk_offset,
                     layout->u.chunk.dim, layout->u.chunk.down_chunks,
@@ -4204,8 +4201,8 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
                 {
                     hbool_t outside_dim = FALSE;
 
-                    for(i=0; i<space_ndims; i++)
-                        if(chunk_offset[i] >= space_dim[i]){
+                    for(u = 0; u < (unsigned)space_ndims; u++)
+                        if(chunk_offset[u] >= space_dim[u]) {
                             outside_dim = TRUE;
                             break;
                         } /* end if */
@@ -4219,11 +4216,9 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
 
                 /* Evict the entry from the cache if present, but do not flush
                  * it to disk */
-                if(UINT_MAX != chk_udata.idx_hint) {
-                    if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache,
-                            rdcc->slot[chk_udata.idx_hint], FALSE) < 0)
+                if(UINT_MAX != chk_udata.idx_hint)
+                    if(H5D__chunk_cache_evict(dset, dxpl_id, dxpl_cache, rdcc->slot[chk_udata.idx_hint], FALSE) < 0)
                         HGOTO_ERROR(H5E_DATASET, H5E_CANTREMOVE, FAIL, "unable to evict chunk")
-                } /* end if */
 
                 /* Remove the chunk from disk, if present */
                 if(H5F_addr_defined(chk_udata.addr)) {
@@ -4231,8 +4226,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
                     idx_udata.offset = chunk_offset;
 
                     /* Remove the chunk from disk */
-                    if((layout->storage.u.chunk.ops->remove)(&idx_info, &idx_udata)
-                            < 0)
+                    if((layout->storage.u.chunk.ops->remove)(&idx_info, &idx_udata) < 0)
                         HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to remove chunk entry from index")
                 } /* end if */
             } /* end else */
@@ -4261,8 +4255,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
                 } /* end if */
                 else {
                     /* Check if we just went outside the fill dimension */
-                    if(!dims_outside_fill[i] && (hssize_t)chunk_offset[i]
-                            > max_fill_chunk_off[i]) {
+                    if(!dims_outside_fill[i] && (hssize_t)chunk_offset[i] > max_fill_chunk_off[i]) {
                         dims_outside_fill[i] = TRUE;
                         ndims_outside_fill++;
                     } /* end if */
@@ -4280,8 +4273,7 @@ H5D__chunk_prune_by_extent(H5D_t *dset, hid_t dxpl_id, const hsize_t *old_dim)
         if(min_mod_chunk_off[op_dim] == 0)
             break;
         else
-            max_mod_chunk_off[op_dim] = min_mod_chunk_off[op_dim]
-                    - chunk_dim[op_dim];
+            max_mod_chunk_off[op_dim] = min_mod_chunk_off[op_dim] - chunk_dim[op_dim];
     } /* end for(op_dim=0...) */
 
     /* Reset any cached chunk info for this dataset */
@@ -4291,10 +4283,9 @@ done:
     /* Release resources */
     if(chunk_space && H5S_close(chunk_space) < 0)
         HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace")
-    if(udata_init) {
+    if(udata_init)
         if(udata.fb_info_init && H5D__fill_term(&udata.fb_info) < 0)
             HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "Can't release fill buffer info")
-    } /* end if */
 
     FUNC_LEAVE_NOAPI(ret_value)
 } /* end H5D__chunk_prune_by_extent() */
@@ -4486,7 +4477,7 @@ H5D__chunk_update_cache(H5D_t *dset, hid_t dxpl_id)
     H5D_rdcc_ent_t     *old_ent;	/* Old cache entry  */
     H5D_dxpl_cache_t _dxpl_cache;       /* Data transfer property cache buffer */
     H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache;   /* Data transfer property cache */
-    unsigned            rank;	        /*current # of dimensions */
+    unsigned            rank;	        /* Current # of dimensions */
     herr_t              ret_value = SUCCEED;      /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -4588,7 +4579,7 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata)
     FUNC_ENTER_STATIC
 
     /* Get 'size_t' local value for number of bytes in chunk */
-    H5_ASSIGN_OVERFLOW(nbytes, chunk_rec->nbytes, uint32_t, size_t);
+    H5_CHECKED_ASSIGN(nbytes, size_t, chunk_rec->nbytes, uint32_t);
 
     /* Check parameter for type conversion */
     if(udata->do_convert) {
@@ -4706,7 +4697,7 @@ H5D__chunk_copy_cb(const H5D_chunk_rec_t *chunk_rec, void *_udata)
         if(nbytes > ((size_t)0xffffffff))
             HGOTO_ERROR(H5E_DATASET, H5E_BADRANGE, H5_ITER_ERROR, "chunk too large for 32-bit length")
 #endif /* H5_SIZEOF_SIZE_T > 4 */
-        H5_ASSIGN_OVERFLOW(udata_dst.nbytes, nbytes, size_t, uint32_t);
+        H5_CHECKED_ASSIGN(udata_dst.nbytes, uint32_t, nbytes, size_t);
 	udata->buf = buf;
 	udata->buf_size = buf_size;
     } /* end if */
@@ -4797,7 +4788,7 @@ H5D__chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src,
         /* Get the dim info for dataset */
         if((sndims = H5S_extent_get_dims(ds_extent_src, curr_dims, NULL)) < 0)
             HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get dataspace dimensions")
-        H5_ASSIGN_OVERFLOW(ndims, sndims, int, unsigned);
+        H5_CHECKED_ASSIGN(ndims, unsigned, sndims, int);
 
         /* Set the source layout chunk information */
         if(H5D__chunk_set_info_real(layout_src, ndims, curr_dims) < 0)
@@ -4905,7 +4896,7 @@ H5D__chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src,
             do_convert = TRUE;
         } /* end if */
 
-        H5_ASSIGN_OVERFLOW(buf_size, layout_src->size, uint32_t, size_t);
+        H5_CHECKED_ASSIGN(buf_size, size_t, layout_src->size, uint32_t);
         reclaim_buf_size = 0;
     } /* end else */
 
@@ -5185,7 +5176,8 @@ H5D__chunk_dest(H5F_t *f, hid_t dxpl_id, H5D_t *dset)
     idx_info.storage = &dset->shared->layout.storage.u.chunk;
 
     /* Free any index structures */
-    if((dset->shared->layout.storage.u.chunk.ops->dest)(&idx_info) < 0)
+    if(dset->shared->layout.storage.u.chunk.ops->dest &&
+            (dset->shared->layout.storage.u.chunk.ops->dest)(&idx_info) < 0)
 	HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "unable to release chunk index info")
 
 done:
@@ -5276,7 +5268,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5D__nonexistent_readvv_cb(hsize_t UNUSED dst_off, hsize_t src_off, size_t len,
+H5D__nonexistent_readvv_cb(hsize_t H5_ATTR_UNUSED dst_off, hsize_t src_off, size_t len,
     void *_udata)
 {
     H5D_chunk_readvv_ud_t *udata = (H5D_chunk_readvv_ud_t *)_udata; /* User data for H5VM_opvv() operator */
diff --git a/src/H5Dcompact.c b/src/H5Dcompact.c
index 789beab..826daad 100644
--- a/src/H5Dcompact.c
+++ b/src/H5Dcompact.c
@@ -202,7 +202,7 @@ H5D__compact_construct(H5F_t *f, H5D_t *dset)
     tmp_size = H5T_get_size(dset->shared->type);
     HDassert(tmp_size > 0);
     tmp_size = tmp_size * (hsize_t)stmp_size;
-    H5_ASSIGN_OVERFLOW(dset->shared->layout.storage.u.compact.size, tmp_size, hssize_t, size_t);
+    H5_CHECKED_ASSIGN(dset->shared->layout.storage.u.compact.size, size_t, tmp_size, hssize_t);
 
     /* Verify data size is smaller than maximum header message size
      * (64KB) minus other layout message fields.
@@ -229,7 +229,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static hbool_t
-H5D__compact_is_space_alloc(const H5O_storage_t UNUSED *storage)
+H5D__compact_is_space_alloc(const H5O_storage_t H5_ATTR_UNUSED *storage)
 {
     FUNC_ENTER_STATIC_NOERR
 
@@ -254,9 +254,9 @@ H5D__compact_is_space_alloc(const H5O_storage_t UNUSED *storage)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5D__compact_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t UNUSED *type_info,
-    hsize_t UNUSED nelmts, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space,
-    H5D_chunk_map_t UNUSED *cm)
+H5D__compact_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t H5_ATTR_UNUSED *type_info,
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space,
+    H5D_chunk_map_t H5_ATTR_UNUSED *cm)
 {
     FUNC_ENTER_STATIC_NOERR
 
diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c
index 8d4cd02..844632c 100644
--- a/src/H5Dcontig.c
+++ b/src/H5Dcontig.c
@@ -259,7 +259,7 @@ H5D__contig_fill(const H5D_t *dset, hid_t dxpl_id)
     /* Get the number of elements in the dataset's dataspace */
     if((snpoints = H5S_GET_EXTENT_NPOINTS(dset->shared->space)) < 0)
         HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "dataset has negative number of elements")
-    H5_ASSIGN_OVERFLOW(npoints, snpoints, hssize_t, size_t);
+    H5_CHECKED_ASSIGN(npoints, size_t, snpoints, hssize_t);
 
     /* Initialize the fill value buffer */
     if(H5D__fill_init(&fb_info, NULL, NULL, NULL, NULL, NULL,
@@ -497,9 +497,9 @@ H5D__contig_is_space_alloc(const H5O_storage_t *storage)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5D__contig_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t UNUSED *type_info,
-    hsize_t UNUSED nelmts, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space,
-    H5D_chunk_map_t UNUSED *cm)
+H5D__contig_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t H5_ATTR_UNUSED *type_info,
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space,
+    H5D_chunk_map_t H5_ATTR_UNUSED *cm)
 {
     FUNC_ENTER_STATIC_NOERR
 
@@ -525,7 +525,7 @@ H5D__contig_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t UNUSED *
 herr_t
 H5D__contig_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
     hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space,
-    H5D_chunk_map_t UNUSED *fm)
+    H5D_chunk_map_t H5_ATTR_UNUSED *fm)
 {
     herr_t	ret_value = SUCCEED;	/*return value		*/
 
@@ -562,7 +562,7 @@ done:
 herr_t
 H5D__contig_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
     hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space,
-    H5D_chunk_map_t UNUSED *fm)
+    H5D_chunk_map_t H5_ATTR_UNUSED *fm)
 {
     herr_t	ret_value = SUCCEED;	/*return value		*/
 
@@ -649,6 +649,7 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len,
     size_t sieve_size = (size_t)-1;   /* Size of sieve buffer */
     haddr_t rel_eoa;	        /* Relative end of file address	*/
     hsize_t max_data;           /* Actual maximum size of data to cache */
+    hsize_t min;                /* temporary minimum value (avoids some ugly macro nesting) */
     herr_t ret_value = SUCCEED; /* Return value */
 
     FUNC_ENTER_STATIC
@@ -675,7 +676,7 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len,
         } /* end if */
         else {
             /* Allocate room for the data sieve buffer */
-            if(NULL == (dset_contig->sieve_buf = H5FL_BLK_MALLOC(sieve_buf, dset_contig->sieve_buf_size)))
+            if(NULL == (dset_contig->sieve_buf = H5FL_BLK_CALLOC(sieve_buf, dset_contig->sieve_buf_size)))
                 HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed")
 
             /* Determine the new sieve buffer size & location */
@@ -689,7 +690,8 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len,
             max_data = store_contig->dset_size - dst_off;
 
             /* Compute the size of the sieve buffer */
-            H5_ASSIGN_OVERFLOW(dset_contig->sieve_size, MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size), hsize_t, size_t);
+            min = MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size);
+            H5_CHECKED_ASSIGN(dset_contig->sieve_size, size_t, min, hsize_t);
 
             /* Read the new sieve buffer */
             if(H5F_block_read(file, H5FD_MEM_DRAW, dset_contig->sieve_loc, dset_contig->sieve_size, udata->dxpl_id, dset_contig->sieve_buf) < 0)
@@ -762,9 +764,13 @@ H5D__contig_readvv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len,
                 /* Only need this when resizing sieve buffer */
                 max_data = store_contig->dset_size - dst_off;
 
-                /* Compute the size of the sieve buffer */
-                /* Don't read off the end of the file, don't read past the end of the data element and don't read more than the buffer size */
-                H5_ASSIGN_OVERFLOW(dset_contig->sieve_size, MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size), hsize_t, size_t);
+                /* Compute the size of the sieve buffer.
+                 * Don't read off the end of the file, don't read past
+                 * the end of the data element, and don't read more than
+                 * the buffer size.
+                 */
+                min = MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size); 
+                H5_CHECKED_ASSIGN(dset_contig->sieve_size, size_t, min, hsize_t);
 
                 /* Update local copies of sieve information */
                 sieve_start = dset_contig->sieve_loc;
@@ -920,6 +926,7 @@ H5D__contig_writevv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len,
     size_t sieve_size = (size_t)-1; /* size of sieve buffer */
     haddr_t rel_eoa;	        /* Relative end of file address	*/
     hsize_t max_data;           /* Actual maximum size of data to cache */
+    hsize_t min;                /* temporary minimum value (avoids some ugly macro nesting) */
     herr_t ret_value = SUCCEED; /* Return value */
 
     FUNC_ENTER_STATIC
@@ -946,7 +953,7 @@ H5D__contig_writevv_sieve_cb(hsize_t dst_off, hsize_t src_off, size_t len,
         } /* end if */
         else {
             /* Allocate room for the data sieve buffer */
-            if(NULL == (dset_contig->sieve_buf = H5FL_BLK_MALLOC(sieve_buf, dset_contig->sieve_buf_size)))
+            if(NULL == (dset_contig->sieve_buf = H5FL_BLK_CALLOC(sieve_buf, dset_contig->sieve_buf_size)))
                 HGOTO_ERROR(H5E_DATASET, H5E_CANTALLOC, FAIL, "memory allocation failed")
 
 #ifdef H5_CLEAR_MEMORY
@@ -965,7 +972,8 @@ if(dset_contig->sieve_size > len)
             max_data = store_contig->dset_size - dst_off;
 
             /* Compute the size of the sieve buffer */
-            H5_ASSIGN_OVERFLOW(dset_contig->sieve_size, MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size), hsize_t, size_t);
+            min = MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size); 
+            H5_CHECKED_ASSIGN(dset_contig->sieve_size, size_t, min, hsize_t);
 
             /* Check if there is any point in reading the data from the file */
             if(dset_contig->sieve_size > len) {
@@ -1080,9 +1088,13 @@ if(dset_contig->sieve_size > len)
                     /* Only need this when resizing sieve buffer */
                     max_data = store_contig->dset_size - dst_off;
 
-                    /* Compute the size of the sieve buffer */
-                    /* Don't read off the end of the file, don't read past the end of the data element and don't read more than the buffer size */
-                    H5_ASSIGN_OVERFLOW(dset_contig->sieve_size, MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size), hsize_t, size_t);
+                    /* Compute the size of the sieve buffer.
+                     * Don't read off the end of the file, don't read past
+                     * the end of the data element, and don't read more than
+                     * the buffer size.
+                     */
+                    min = MIN3(rel_eoa - dset_contig->sieve_loc, max_data, dset_contig->sieve_buf_size); 
+                    H5_CHECKED_ASSIGN(dset_contig->sieve_size, size_t, min, hsize_t);
 
                     /* Update local copies of sieve information */
                     sieve_start = dset_contig->sieve_loc;
diff --git a/src/H5Ddbg.c b/src/H5Ddbg.c
index a7c6dc1..4e934f2 100644
--- a/src/H5Ddbg.c
+++ b/src/H5Ddbg.c
@@ -113,7 +113,7 @@ H5Ddebug(hid_t dset_id)
 
     /* Print B-tree information */
     if(H5D_CHUNKED == dset->shared->layout.type)
-	(void)H5D__chunk_dump_index(dset, H5AC_dxpl_id, stdout);
+	(void)H5D__chunk_dump_index(dset, H5AC_ind_dxpl_id, stdout);
     else if(H5D_CONTIGUOUS == dset->shared->layout.type)
 	HDfprintf(stdout, "    %-10s %a\n", "Address:", dset->shared->layout.storage.u.contig.addr);
 
diff --git a/src/H5Ddeprec.c b/src/H5Ddeprec.c
index 04cf032..0b2fee6 100644
--- a/src/H5Ddeprec.c
+++ b/src/H5Ddeprec.c
@@ -233,7 +233,7 @@ H5Dopen1(hid_t loc_id, const char *name)
     H5O_type_t   obj_type;              /* Type of object at location */
     hbool_t      loc_found = FALSE;     /* Location at 'name' found */
     hid_t        dapl_id = H5P_DATASET_ACCESS_DEFAULT; /* dapl to use to open dataset */
-    hid_t        dxpl_id = H5AC_dxpl_id;    /* dxpl to use to open datset */
+    hid_t        dxpl_id = H5AC_ind_dxpl_id;    /* dxpl to use to open datset */
     hid_t        ret_value;
 
     FUNC_ENTER_API(FAIL)
diff --git a/src/H5Defl.c b/src/H5Defl.c
index 38c8ccd..85ceaf2 100644
--- a/src/H5Defl.c
+++ b/src/H5Defl.c
@@ -175,7 +175,7 @@ H5D__efl_construct(H5F_t *f, H5D_t *dset)
     stmp_size = H5S_GET_EXTENT_NPOINTS(dset->shared->space);
     HDassert(stmp_size >= 0);
     tmp_size = (hsize_t)stmp_size * dt_size;
-    H5_ASSIGN_OVERFLOW(dset->shared->layout.storage.u.contig.size, tmp_size, hssize_t, hsize_t);
+    H5_CHECKED_ASSIGN(dset->shared->layout.storage.u.contig.size, hsize_t, tmp_size, hssize_t);
 
     /* Get the sieve buffer size for this dataset */
     dset->shared->cache.contig.sieve_buf_size = H5F_SIEVE_BUF_SIZE(f);
@@ -198,7 +198,7 @@ done:
  *-------------------------------------------------------------------------
  */
 hbool_t
-H5D__efl_is_space_alloc(const H5O_storage_t UNUSED *storage)
+H5D__efl_is_space_alloc(const H5O_storage_t H5_ATTR_UNUSED *storage)
 {
     FUNC_ENTER_PACKAGE_NOERR
 
@@ -223,9 +223,9 @@ H5D__efl_is_space_alloc(const H5O_storage_t UNUSED *storage)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5D__efl_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t UNUSED *type_info,
-    hsize_t UNUSED nelmts, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space,
-    H5D_chunk_map_t UNUSED *cm)
+H5D__efl_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t H5_ATTR_UNUSED *type_info,
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space,
+    H5D_chunk_map_t H5_ATTR_UNUSED *cm)
 {
     FUNC_ENTER_STATIC_NOERR
 
diff --git a/src/H5Dfill.c b/src/H5Dfill.c
index e682dd6..484c362 100644
--- a/src/H5Dfill.c
+++ b/src/H5Dfill.c
@@ -133,7 +133,7 @@ H5Dfill(const void *fill, hid_t fill_type_id, void *buf, hid_t buf_type_id, hid_
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, 0, "not a datatype")
 
     /* Fill the selection in the memory buffer */
-    if(H5D__fill(fill, fill_type, buf, buf_type, space, H5AC_dxpl_id) < 0)
+    if(H5D__fill(fill, fill_type, buf, buf_type, space, H5AC_ind_dxpl_id) < 0)
         HGOTO_ERROR(H5E_DATASET, H5E_CANTENCODE, FAIL, "filling selection failed")
 
 done:
diff --git a/src/H5Dint.c b/src/H5Dint.c
index a077b37..e48aabc 100644
--- a/src/H5Dint.c
+++ b/src/H5Dint.c
@@ -478,7 +478,6 @@ done:
 herr_t
 H5D__get_space_status(H5D_t *dset, H5D_space_status_t *allocation, hid_t dxpl_id)
 {
-    H5S_t      *space;              /* Dataset's dataspace */
     hsize_t     space_allocated;    /* The number of bytes allocated for chunks */
     hssize_t    snelmts;            /* Temporary holder for number of elements in dataspace */
     hsize_t     nelmts;             /* Number of elements in dataspace */
@@ -491,11 +490,10 @@ H5D__get_space_status(H5D_t *dset, H5D_space_status_t *allocation, hid_t dxpl_id
     HDassert(dset);
 
     /* Get the dataset's dataspace */
-    space = dset->shared->space;
-    HDassert(space);
+    HDassert(dset->shared->space);
 
     /* Get the total number of elements in dataset's dataspace */
-    if((snelmts = H5S_GET_EXTENT_NPOINTS(space)) < 0)
+    if((snelmts = H5S_GET_EXTENT_NPOINTS(dset->shared->space)) < 0)
         HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "unable to retrieve number of elements in dataspace")
     nelmts = (hsize_t)snelmts;
 
@@ -1185,6 +1183,7 @@ H5D_open(const H5G_loc_t *loc, hid_t dapl_id, hid_t dxpl_id)
             HGOTO_ERROR(H5E_DATASET, H5E_CANTINC, NULL, "can't increment object count")
     } /* end else */
 
+    /* Set the dataset to return */
     ret_value = dataset;
 
 done:
@@ -1226,6 +1225,7 @@ H5D__open_oid(H5D_t *dataset, hid_t dapl_id, hid_t dxpl_id)
     H5O_fill_t *fill_prop;              /* Pointer to dataset's fill value info */
     unsigned alloc_time_state;          /* Allocation time state */
     htri_t msg_exists;                  /* Whether a particular type of message exists */
+    hbool_t layout_init = FALSE;    	/* Flag to indicate that chunk information was initialized */
     herr_t ret_value = SUCCEED;		/* Return value */
 
     FUNC_ENTER_STATIC
@@ -1263,6 +1263,9 @@ H5D__open_oid(H5D_t *dataset, hid_t dapl_id, hid_t dxpl_id)
     if(H5D__layout_oh_read(dataset, dxpl_id, dapl_id, plist) < 0)
         HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get layout/pline/efl info")
 
+    /* Indicate that the layout information was initialized */
+    layout_init = TRUE;
+
     /* Point at dataset's copy, to cache it for later */
     fill_prop = &dataset->shared->dcpl_cache.fill;
 
@@ -1338,6 +1341,9 @@ done:
         if(H5F_addr_defined(dataset->oloc.addr) && H5O_close(&(dataset->oloc)) < 0)
             HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release object header")
         if(dataset->shared) {
+	    if(dataset->shared->layout.type == H5D_CHUNKED && layout_init)
+                if(H5D__chunk_dest(dataset->oloc.file, dxpl_id, dataset) < 0)
+                    HDONE_ERROR(H5E_DATASET, H5E_CANTRELEASE, FAIL, "unable to destroy chunk cache")
             if(dataset->shared->space && H5S_close(dataset->shared->space) < 0)
                 HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace")
             if(dataset->shared->type) {
@@ -1916,41 +1922,6 @@ done:
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5D__iterate
- *
- * Purpose:	Internal version of H5Diterate()
- *
- * Return:	Returns the return value of the last operator if it was non-zero,
- *          or zero if all elements were processed. Otherwise returns a
- *          negative value.
- *
- * Programmer:	Quincey Koziol
- *              Tuesday, November 22, 2005
- *
- *-------------------------------------------------------------------------
- */
-herr_t
-H5D__iterate(void *buf, hid_t type_id, const H5S_t *space, H5D_operator_t op,
-        void *operator_data)
-{
-    herr_t ret_value;
-
-    FUNC_ENTER_PACKAGE_NOERR
-
-    /* Check args */
-    HDassert(buf);
-    HDassert(H5I_DATATYPE == H5I_get_type(type_id));
-    HDassert(space);
-    HDassert(H5S_has_extent(space));
-    HDassert(op);
-
-    ret_value = H5S_select_iterate(buf, type_id, space, op, operator_data);
-
-    FUNC_LEAVE_NOAPI(ret_value)
-}   /* end H5D__iterate() */
-
-

-/*-------------------------------------------------------------------------
  * Function:	H5D_vlen_reclaim
  *
  * Purpose:	Frees the buffers allocated for storing variable-length data
@@ -1968,6 +1939,8 @@ H5D__iterate(void *buf, hid_t type_id, const H5S_t *space, H5D_operator_t op,
 herr_t
 H5D_vlen_reclaim(hid_t type_id, H5S_t *space, hid_t plist_id, void *buf)
 {
+    H5T_t *type;                /* Datatype */
+    H5S_sel_iter_op_t dset_op;  /* Operator for iteration */
     H5T_vlen_alloc_info_t _vl_alloc_info;       /* VL allocation info buffer */
     H5T_vlen_alloc_info_t *vl_alloc_info = &_vl_alloc_info;   /* VL allocation info */
     herr_t ret_value;
@@ -1980,12 +1953,19 @@ H5D_vlen_reclaim(hid_t type_id, H5S_t *space, hid_t plist_id, void *buf)
     HDassert(H5P_isa_class(plist_id, H5P_DATASET_XFER));
     HDassert(buf);
 
+    if(NULL == (type = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE)))
+        HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an valid base datatype")
+
     /* Get the allocation info */
     if(H5T_vlen_get_alloc_info(plist_id,&vl_alloc_info) < 0)
         HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "unable to retrieve VL allocation info")
 
-    /* Call H5D__iterate with args, etc. */
-    ret_value = H5D__iterate(buf, type_id, space ,H5T_vlen_reclaim, vl_alloc_info);
+    /* Call H5S_select_iterate with args, etc. */
+    dset_op.op_type = H5S_SEL_ITER_OP_APP;
+    dset_op.u.app_op.op = H5T_vlen_reclaim;
+    dset_op.u.app_op.type_id = type_id;
+
+    ret_value = H5S_select_iterate(buf, type, space, &dset_op, vl_alloc_info);
 
 done:
     FUNC_LEAVE_NOAPI(ret_value)
@@ -2053,7 +2033,7 @@ H5D__vlen_get_buf_size_alloc(size_t size, void *info)
  */
 /* ARGSUSED */
 herr_t
-H5D__vlen_get_buf_size(void UNUSED *elem, hid_t type_id, unsigned UNUSED ndim, const hsize_t *point, void *op_data)
+H5D__vlen_get_buf_size(void H5_ATTR_UNUSED *elem, hid_t type_id, unsigned H5_ATTR_UNUSED ndim, const hsize_t *point, void *op_data)
 {
     H5D_vlen_bufsize_t *vlen_bufsize = (H5D_vlen_bufsize_t *)op_data;
     H5T_t *dt;                          /* Datatype for operation */
@@ -2212,6 +2192,7 @@ H5D__set_extent(H5D_t *dset, const hsize_t *size, hid_t dxpl_id)
          */
         /* Update the index values for the cached chunks for this dataset */
         if(H5D_CHUNKED == dset->shared->layout.type) {
+            /* Update the cached chunk info */
             if(H5D__chunk_set_info(dset) < 0)
                 HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "unable to update # of chunks")
             if(H5D__chunk_update_cache(dset, dxpl_id) < 0)
@@ -2230,11 +2211,10 @@ H5D__set_extent(H5D_t *dset, const hsize_t *size, hid_t dxpl_id)
          *-------------------------------------------------------------------------
          */
         if(shrink && H5D_CHUNKED == dset->shared->layout.type &&
-                (*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)) {
+                (*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage))
             /* Remove excess chunks */
             if(H5D__chunk_prune_by_extent(dset, dxpl_id, curr_dims) < 0)
                 HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to remove chunks")
-        } /* end if */
 
         /* Mark the dataspace as dirty, for later writing to the file */
         if(H5D__mark(dset, dxpl_id, H5D_MARK_SPACE) < 0)
@@ -2372,7 +2352,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5D__mark(const H5D_t *dataset, hid_t UNUSED dxpl_id, unsigned flags)
+H5D__mark(const H5D_t *dataset, hid_t H5_ATTR_UNUSED dxpl_id, unsigned flags)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
@@ -2406,7 +2386,7 @@ H5D__mark(const H5D_t *dataset, hid_t UNUSED dxpl_id, unsigned flags)
  *-------------------------------------------------------------------------
  */
 static int
-H5D__flush_cb(void *_dataset, hid_t UNUSED id, void *_udata)
+H5D__flush_cb(void *_dataset, hid_t H5_ATTR_UNUSED id, void *_udata)
 {
     H5D_t       *dataset = (H5D_t *)_dataset;   /* Dataset pointer */
     H5D_flush_ud_t *udata = (H5D_flush_ud_t *)_udata;   /* User data for callback */
@@ -2667,16 +2647,14 @@ H5D_get_space(H5D_t *dset)
         HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to get data space")
 
     /* Create an atom */
-    if((ret_value = H5I_register (H5I_DATASPACE, space, TRUE)) < 0)
-        HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register data space")
+    if((ret_value = H5I_register(H5I_DATASPACE, space, TRUE)) < 0)
+        HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace")
 
 done:
-    if(ret_value < 0) {
-        if(space!=NULL) {
+    if(ret_value < 0)
+        if(space != NULL)
             if(H5S_close(space) < 0)
                 HDONE_ERROR(H5E_DATASET, H5E_CLOSEERROR, FAIL, "unable to release dataspace")
-        } /* end if */
-    } /* end if */
 
     FUNC_LEAVE_NOAPI(ret_value)
 } /* end H5D_get_space() */
diff --git a/src/H5Dio.c b/src/H5Dio.c
index 7495f7f..5a931cf 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -305,7 +305,7 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id,
 	int      ndims = 0;
 	hsize_t  dims[H5O_LAYOUT_NDIMS];
 	hsize_t  internal_offset[H5O_LAYOUT_NDIMS];
-	int      i;
+	unsigned u;
 
         /* Get the dataset transfer property list */
         if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id)))
@@ -327,16 +327,16 @@ H5D__pre_write(H5D_t *dset, hbool_t direct_write, hid_t mem_type_id,
 	if((ndims = H5S_get_simple_extent_dims(dset->shared->space, dims, NULL)) < 0)
 	    HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't retrieve dataspace extent dims")
 
-	for(i = 0; i < ndims; i++) {
+	for(u = 0; u < ndims; u++) {
 	    /* Make sure the offset doesn't exceed the dataset's dimensions */
-            if(direct_offset[i] > dims[i])
+            if(direct_offset[u] > dims[u])
 		HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset exceeds dimensions of dataset")
 
             /* Make sure the offset fall right on a chunk's boundary */
-	    if(direct_offset[i] % dset->shared->layout.u.chunk.dim[i])
+	    if(direct_offset[u] % dset->shared->layout.u.chunk.dim[u])
 		HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "offset doesn't fall on chunks's boundary")
 
-	    internal_offset[i] = direct_offset[i]; 
+	    internal_offset[u] = direct_offset[u]; 
 	} /* end for */
 	   
 	/* Terminate the offset with a zero */ 
@@ -414,7 +414,7 @@ H5D__read(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space,
         mem_space = file_space;
     if((snelmts = H5S_GET_SELECT_NPOINTS(mem_space)) < 0)
 	HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "dst dataspace has invalid selection")
-    H5_ASSIGN_OVERFLOW(nelmts,snelmts,hssize_t,hsize_t);
+    H5_CHECKED_ASSIGN(nelmts, hsize_t, snelmts, hssize_t);
 
     /* Fill the DXPL cache values for later use */
     if(H5D__get_dxpl_cache(dxpl_id, &dxpl_cache) < 0)
@@ -684,7 +684,7 @@ H5D__write(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space,
 
     if((snelmts = H5S_GET_SELECT_NPOINTS(mem_space)) < 0)
 	HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "src dataspace has invalid selection")
-    H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, hsize_t);
+    H5_CHECKED_ASSIGN(nelmts, hsize_t, snelmts, hssize_t);
 
     /* Make certain that the number of elements in each selection is the same */
     if(nelmts != (hsize_t)H5S_GET_SELECT_NPOINTS(file_space))
diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c
index 01d2288..002f44f 100644
--- a/src/H5Dmpio.c
+++ b/src/H5Dmpio.c
@@ -254,8 +254,8 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5D__mpio_select_read(const H5D_io_info_t *io_info, const H5D_type_info_t UNUSED *type_info,
-    hsize_t mpi_buf_count, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space)
+H5D__mpio_select_read(const H5D_io_info_t *io_info, const H5D_type_info_t H5_ATTR_UNUSED *type_info,
+    hsize_t mpi_buf_count, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space)
 {
     const H5D_contig_storage_t *store_contig = &(io_info->store->contig);    /* Contiguous storage info for this I/O operation */
     herr_t ret_value = SUCCEED;
@@ -283,8 +283,8 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5D__mpio_select_write(const H5D_io_info_t *io_info, const H5D_type_info_t UNUSED *type_info,
-    hsize_t mpi_buf_count, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space)
+H5D__mpio_select_write(const H5D_io_info_t *io_info, const H5D_type_info_t H5_ATTR_UNUSED *type_info,
+    hsize_t mpi_buf_count, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space)
 {
     const H5D_contig_storage_t *store_contig = &(io_info->store->contig);    /* Contiguous storage info for this I/O operation */
     herr_t ret_value = SUCCEED;
@@ -438,7 +438,7 @@ H5D__mpio_get_sum_chunk(const H5D_io_info_t *io_info, const H5D_chunk_map_t *fm,
     /* Get the number of chunks to perform I/O on */
     num_chunkf = 0;
     ori_num_chunkf = H5SL_count(fm->sel_chunks);
-    H5_ASSIGN_OVERFLOW(num_chunkf, ori_num_chunkf, size_t, int);
+    H5_CHECKED_ASSIGN(num_chunkf, int, ori_num_chunkf, size_t);
 
     /* Determine the summation of number of chunks for all processes */
     if(MPI_SUCCESS != (mpi_code = MPI_Allreduce(&num_chunkf, sum_chunkf, 1, MPI_INT, MPI_SUM, io_info->comm)))
@@ -464,8 +464,8 @@ done:
  */
 herr_t
 H5D__contig_collective_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
-    hsize_t UNUSED nelmts, const H5S_t *file_space, const H5S_t *mem_space,
-    H5D_chunk_map_t UNUSED *fm)
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t *file_space, const H5S_t *mem_space,
+    H5D_chunk_map_t H5_ATTR_UNUSED *fm)
 {
     H5D_mpio_actual_io_mode_t actual_io_mode = H5D_MPIO_CONTIGUOUS_COLLECTIVE;
     H5P_genplist_t *dx_plist;           /* Pointer to DXPL */
@@ -511,8 +511,8 @@ done:
  */
 herr_t
 H5D__contig_collective_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
-    hsize_t UNUSED nelmts, const H5S_t *file_space, const H5S_t *mem_space,
-    H5D_chunk_map_t UNUSED *fm)
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t *file_space, const H5S_t *mem_space,
+    H5D_chunk_map_t H5_ATTR_UNUSED *fm)
 {
     H5D_mpio_actual_io_mode_t actual_io_mode = H5D_MPIO_CONTIGUOUS_COLLECTIVE;
     H5P_genplist_t *dx_plist;           /* Pointer to DXPL */
@@ -714,7 +714,7 @@ done:
  */
 herr_t
 H5D__chunk_collective_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
-    hsize_t UNUSED nelmts, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space,
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space,
     H5D_chunk_map_t *fm)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
@@ -745,7 +745,7 @@ done:
  */
 herr_t
 H5D__chunk_collective_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
-    hsize_t UNUSED nelmts, const H5S_t UNUSED *file_space, const H5S_t UNUSED *mem_space,
+    hsize_t H5_ATTR_UNUSED nelmts, const H5S_t H5_ATTR_UNUSED *file_space, const H5S_t H5_ATTR_UNUSED *mem_space,
     H5D_chunk_map_t *fm)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
@@ -826,7 +826,7 @@ H5D__link_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *typ
     } /* end if */
 
     /* Retrieve total # of chunks in dataset */
-    H5_ASSIGN_OVERFLOW(total_chunks, fm->layout->u.chunk.nchunks, hsize_t, size_t);
+    H5_CHECKED_ASSIGN(total_chunks, size_t, fm->layout->u.chunk.nchunks, hsize_t);
 
     /* Handle special case when dataspace dimensions only allow one chunk in
      *  the dataset.  [This sometimes is used by developers who want the
@@ -1149,7 +1149,7 @@ H5D__multi_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *ty
 #endif
 
     /* Retrieve total # of chunks in dataset */
-    H5_ASSIGN_OVERFLOW(total_chunk, fm->layout->u.chunk.nchunks, hsize_t, size_t);
+    H5_CHECKED_ASSIGN(total_chunk, size_t, fm->layout->u.chunk.nchunks, hsize_t);
     HDassert(total_chunk != 0);
 
     /* Allocate memories */
@@ -1700,7 +1700,7 @@ H5D__obtain_mpio_mode(H5D_io_info_t* io_info, H5D_chunk_map_t *fm,
         HGOTO_ERROR(H5E_IO, H5E_MPI, FAIL, "unable to obtain mpi size")
 
     /* Setup parameters */
-    H5_ASSIGN_OVERFLOW(total_chunks, fm->layout->u.chunk.nchunks, hsize_t, int);
+    H5_CHECKED_ASSIGN(total_chunks, int, fm->layout->u.chunk.nchunks, hsize_t);
     percent_nproc_per_chunk = H5P_peek_unsigned(dx_plist, H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME);
     /* if ratio is 0, perform collective io */
     if(0 == percent_nproc_per_chunk) {
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h
index 5a785a3..d0adb51 100644
--- a/src/H5Dpkg.h
+++ b/src/H5Dpkg.h
@@ -362,7 +362,7 @@ typedef struct H5D_chunk_map_t {
 } H5D_chunk_map_t;
 
 /* Cached information about a particular chunk */
-typedef struct H5D_chunk_cached_t{
+typedef struct H5D_chunk_cached_t {
     hbool_t     valid;                          /*whether cache info is valid*/
     hsize_t	offset[H5O_LAYOUT_NDIMS];	/*logical offset to start*/
     uint32_t	nbytes;				/*size of stored data	*/
@@ -537,8 +537,6 @@ H5_DLL herr_t H5D__alloc_storage(const H5D_t *dset, hid_t dxpl_id, H5D_time_allo
     hbool_t full_overwrite, hsize_t old_dim[]);
 H5_DLL herr_t H5D__get_storage_size(H5D_t *dset, hid_t dxpl_id, hsize_t *storage_size);
 H5_DLL haddr_t H5D__get_offset(const H5D_t *dset);
-H5_DLL herr_t H5D__iterate(void *buf, hid_t type_id, const H5S_t *space,
-    H5D_operator_t op, void *operator_data);
 H5_DLL void *H5D__vlen_get_buf_size_alloc(size_t size, void *info);
 H5_DLL herr_t H5D__vlen_get_buf_size(void *elem, hid_t type_id, unsigned ndim,
     const hsize_t *point, void *op_data);
diff --git a/src/H5Eint.c b/src/H5Eint.c
index 0dab65c..252972f 100644
--- a/src/H5Eint.c
+++ b/src/H5Eint.c
@@ -272,10 +272,12 @@ H5E_walk1_cb(int n, H5E_error1_t *err_desc, void *client_data)
         /* try show the process or thread id in multiple processes cases*/
 #ifdef H5_HAVE_PARALLEL
         {
-            int mpi_rank, mpi_initialized;
+            int mpi_rank, mpi_initialized, mpi_finalized;
 
 	    MPI_Initialized(&mpi_initialized);
-	    if(mpi_initialized) {
+            MPI_Finalized(&mpi_finalized);
+
+            if(mpi_initialized && !mpi_finalized) {
 	        MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
 	        fprintf(stream, "MPI-process %d", mpi_rank);
 	    } /* end if */
@@ -402,10 +404,12 @@ H5E_walk2_cb(unsigned n, const H5E_error2_t *err_desc, void *client_data)
         /* try show the process or thread id in multiple processes cases*/
 #ifdef H5_HAVE_PARALLEL
         {
-            int mpi_rank, mpi_initialized;
+            int mpi_rank, mpi_initialized, mpi_finalized;
 
 	    MPI_Initialized(&mpi_initialized);
-	    if(mpi_initialized) {
+            MPI_Finalized(&mpi_finalized);
+
+            if(mpi_initialized && !mpi_finalized) {
 	        MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
 	        fprintf(stream, "MPI-process %d", mpi_rank);
 	    } /* end if */
diff --git a/src/H5F.c b/src/H5F.c
index bd7e5ef..02526ad 100644
--- a/src/H5F.c
+++ b/src/H5F.c
@@ -482,15 +482,15 @@ H5Fcreate(const char *filename, unsigned flags, hid_t fcpl_id, hid_t fapl_id)
 
     /* Check/fix arguments */
     if(!filename || !*filename)
-	HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file name")
+        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file name")
     /* In this routine, we only accept the following flags:
-     *          H5F_ACC_EXCL, H5F_ACC_TRUNC and H5F_ACC_DEBUG
+     *          H5F_ACC_EXCL and H5F_ACC_TRUNC
      */
-    if(flags & ~(H5F_ACC_EXCL | H5F_ACC_TRUNC | H5F_ACC_DEBUG))
-	HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid flags")
+    if(flags & ~(H5F_ACC_EXCL | H5F_ACC_TRUNC))
+        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid flags")
     /* The H5F_ACC_EXCL and H5F_ACC_TRUNC flags are mutually exclusive */
     if((flags & H5F_ACC_EXCL) && (flags & H5F_ACC_TRUNC))
-	HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "mutually exclusive flags for file creation")
+        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "mutually exclusive flags for file creation")
 
     /* Check file creation property list */
     if(H5P_DEFAULT == fcpl_id)
diff --git a/src/H5FD.c b/src/H5FD.c
index 1f94393..dbadafa 100644
--- a/src/H5FD.c
+++ b/src/H5FD.c
@@ -1858,12 +1858,12 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5FDtruncate(H5FD_t *file, hid_t dxpl_id, unsigned closing)
+H5FDtruncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
 {
     herr_t ret_value = SUCCEED;       /* Return value */
 
     FUNC_ENTER_API(FAIL)
-    H5TRACE3("e", "*xiIu", file, dxpl_id, closing);
+    H5TRACE3("e", "*xib", file, dxpl_id, closing);
 
     /* Check args */
     if(!file || !file->cls)
@@ -1897,7 +1897,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5FD_truncate(H5FD_t *file, hid_t dxpl_id, unsigned closing)
+H5FD_truncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
 {
     herr_t      ret_value = SUCCEED;       /* Return value */
 
diff --git a/src/H5FDcore.c b/src/H5FDcore.c
index c511977..bc288e4 100644
--- a/src/H5FDcore.c
+++ b/src/H5FDcore.c
@@ -65,11 +65,7 @@ typedef struct H5FD_core_t {
      * identify a file.
      */
     dev_t       device;                 /*file device number            */
-#ifdef H5_VMS
-    ino_t       inode[3];               /*file i-node number            */
-#else
     ino_t       inode;                  /*file i-node number            */
-#endif /*H5_VMS*/
 #else
     /* Files in windows are uniquely identified by the volume serial
      * number and the file index (both low and high parts).
@@ -734,14 +730,7 @@ H5FD_core_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
         file->dwVolumeSerialNumber = fileinfo.dwVolumeSerialNumber;
 #else /* H5_HAVE_WIN32_API */
         file->device = sb.st_dev;
-#ifdef H5_VMS
-        file->inode[0] = sb.st_ino[0];
-        file->inode[1] = sb.st_ino[1];
-        file->inode[2] = sb.st_ino[2];
-#else
         file->inode = sb.st_ino;
-#endif /* H5_VMS */
-
 #endif /* H5_HAVE_WIN32_API */
     } /* end if */
 
@@ -974,13 +963,8 @@ H5FD_core_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
         if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t))>0) HGOTO_DONE(1)
 #endif /* H5_DEV_T_IS_SCALAR */
 
-#ifndef H5_VMS
         if (f1->inode < f2->inode) HGOTO_DONE(-1)
         if (f1->inode > f2->inode) HGOTO_DONE(1)
-#else
-        if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))<0) HGOTO_DONE(-1)
-        if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))>0) HGOTO_DONE(1)
-#endif /* H5_VMS */
 
 #endif /*H5_HAVE_WIN32_API*/
     } /* end if */
@@ -1060,7 +1044,7 @@ H5FD_core_query(const H5FD_t * _file, unsigned long *flags /* out */)
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_core_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
+H5FD_core_get_eoa(const H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type)
 {
     const H5FD_core_t   *file = (const H5FD_core_t*)_file;
 
@@ -1085,7 +1069,7 @@ H5FD_core_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_core_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr)
+H5FD_core_set_eoa(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, haddr_t addr)
 {
     H5FD_core_t *file = (H5FD_core_t*)_file;
     herr_t      ret_value = SUCCEED;            /* Return value */
@@ -1207,7 +1191,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_core_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr,
+H5FD_core_read(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t addr,
         size_t size, void *buf/*out*/)
 {
     H5FD_core_t  *file = (H5FD_core_t*)_file;
@@ -1267,7 +1251,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_core_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr,
+H5FD_core_write(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t addr,
         size_t size, const void *buf)
 {
     H5FD_core_t *file = (H5FD_core_t*)_file;
@@ -1293,7 +1277,7 @@ H5FD_core_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, had
         size_t new_eof;
 
         /* Determine new size of memory buffer */
-        H5_ASSIGN_OVERFLOW(new_eof, file->increment * ((addr + size) / file->increment), hsize_t, size_t);
+        H5_CHECKED_ASSIGN(new_eof, size_t, file->increment * ((addr + size) / file->increment), hsize_t);
         if((addr + size) % file->increment)
             new_eof += file->increment;
 
@@ -1348,7 +1332,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_core_flush(H5FD_t *_file, hid_t UNUSED dxpl_id, unsigned UNUSED closing)
+H5FD_core_flush(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, unsigned H5_ATTR_UNUSED closing)
 {
     H5FD_core_t *file = (H5FD_core_t*)_file;
     herr_t      ret_value = SUCCEED;            /* Return value */
@@ -1445,7 +1429,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_core_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t closing)
+H5FD_core_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t closing)
 {
     H5FD_core_t *file = (H5FD_core_t*)_file;
     size_t new_eof;                             /* New size of memory buffer */
@@ -1461,7 +1445,7 @@ H5FD_core_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t closing)
             new_eof = file->eoa;
         else { /* set eof to smallest multiple of increment that exceeds eoa */
             /* Determine new size of memory buffer */
-            H5_ASSIGN_OVERFLOW(new_eof, file->increment * (file->eoa / file->increment), hsize_t, size_t);
+            H5_CHECKED_ASSIGN(new_eof, size_t, file->increment * (file->eoa / file->increment), hsize_t);
             if(file->eoa % file->increment)
                 new_eof += file->increment;
         } /* end else */
@@ -1515,12 +1499,6 @@ H5FD_core_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t closing)
                 if(0 == bError)
                     HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
 #else /* H5_HAVE_WIN32_API */
-#ifdef H5_VMS
-                /* Reset seek offset to the beginning of the file, so that the file isn't
-                 * re-extended later.  This may happen on Open VMS. */
-                if(-1 == HDlseek(file->fd, (HDoff_t)0, SEEK_SET))
-                    HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position")
-#endif /* H5_VMS */
                 if(-1 == HDftruncate(file->fd, (HDoff_t)new_eof))
                     HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
 #endif /* H5_HAVE_WIN32_API */
diff --git a/src/H5FDdirect.c b/src/H5FDdirect.c
index a41e14f..5265a23 100644
--- a/src/H5FDdirect.c
+++ b/src/H5FDdirect.c
@@ -83,11 +83,7 @@ typedef struct H5FD_direct_t {
      * identify a file.
      */
     dev_t  device;      /*file device number    */
-#ifdef H5_VMS
-    ino_t  inode[3];    /*file i-node number    */
-#else
     ino_t  inode;      /*file i-node number    */
-#endif /*H5_VMS*/
 #else
     /*
      * On H5_HAVE_WIN32_API the low-order word of a unique identifier associated with the
@@ -509,7 +505,7 @@ H5FD_direct_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxadd
         HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, NULL, "bad VFL driver info")
 
     file->fd = fd;
-    H5_ASSIGN_OVERFLOW(file->eof,sb.st_size,h5_stat_size_t,haddr_t);
+    H5_CHECKED_ASSIGN(file->eof, haddr_t, sb.st_size, h5_stat_size_t);
     file->pos = HADDR_UNDEF;
     file->op = OP_UNKNOWN;
 #ifdef H5_HAVE_WIN32_API
@@ -519,13 +515,7 @@ H5FD_direct_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxadd
     file->fileindexlo = fileinfo.nFileIndexLow;
 #else
     file->device = sb.st_dev;
-#ifdef H5_VMS
-    file->inode[0] = sb.st_ino[0];
-    file->inode[1] = sb.st_ino[1];
-    file->inode[2] = sb.st_ino[2];
-#else
     file->inode = sb.st_ino;
-#endif /*H5_VMS*/
 #endif /*H5_HAVE_WIN32_API*/
     file->fa.mboundary = fa->mboundary;
     file->fa.fbsize = fa->fbsize;
@@ -667,13 +657,8 @@ H5FD_direct_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
     if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t))>0) HGOTO_DONE(1)
 #endif /* H5_DEV_T_IS_SCALAR */
 
-#ifndef H5_VMS
     if (f1->inode < f2->inode) HGOTO_DONE(-1)
     if (f1->inode > f2->inode) HGOTO_DONE(1)
-#else
-    if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))<0) HGOTO_DONE(-1)
-    if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))>0) HGOTO_DONE(1)
-#endif /*H5_VMS*/
 
 #endif
 
@@ -700,7 +685,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_direct_query(const H5FD_t UNUSED * _f, unsigned long *flags /* out */)
+H5FD_direct_query(const H5FD_t H5_ATTR_UNUSED * _f, unsigned long *flags /* out */)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -739,7 +724,7 @@ H5FD_direct_query(const H5FD_t UNUSED * _f, unsigned long *flags /* out */)
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_direct_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
+H5FD_direct_get_eoa(const H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type)
 {
     const H5FD_direct_t  *file = (const H5FD_direct_t*)_file;
 
@@ -771,7 +756,7 @@ H5FD_direct_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_direct_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr)
+H5FD_direct_set_eoa(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, haddr_t addr)
 {
     H5FD_direct_t  *file = (H5FD_direct_t*)_file;
 
@@ -829,7 +814,7 @@ H5FD_direct_get_eof(const H5FD_t *_file)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_direct_get_handle(H5FD_t *_file, hid_t UNUSED fapl, void** file_handle)
+H5FD_direct_get_handle(H5FD_t *_file, hid_t H5_ATTR_UNUSED fapl, void** file_handle)
 {
     H5FD_direct_t       *file = (H5FD_direct_t *)_file;
     herr_t              ret_value = SUCCEED;
@@ -865,7 +850,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_direct_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr,
+H5FD_direct_read(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t addr,
          size_t size, void *buf/*out*/)
 {
     H5FD_direct_t  *file = (H5FD_direct_t*)_file;
@@ -1048,7 +1033,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_direct_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr,
+H5FD_direct_write(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t addr,
     size_t size, const void *buf)
 {
     H5FD_direct_t  *file = (H5FD_direct_t*)_file;
@@ -1278,7 +1263,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_direct_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing)
+H5FD_direct_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_UNUSED closing)
 {
     H5FD_direct_t  *file = (H5FD_direct_t*)_file;
     herr_t        ret_value = SUCCEED;       /* Return value */
diff --git a/src/H5FDfamily.c b/src/H5FDfamily.c
index 5f487a4..8003fdd 100644
--- a/src/H5FDfamily.c
+++ b/src/H5FDfamily.c
@@ -492,7 +492,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static hsize_t
-H5FD_family_sb_size(H5FD_t UNUSED *_file)
+H5FD_family_sb_size(H5FD_t H5_ATTR_UNUSED *_file)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -566,7 +566,7 @@ H5FD_family_sb_encode(H5FD_t *_file, char *name/*out*/, unsigned char *buf/*out*
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_family_sb_decode(H5FD_t *_file, const char UNUSED *name, const unsigned char *buf)
+H5FD_family_sb_decode(H5FD_t *_file, const char H5_ATTR_UNUSED *name, const unsigned char *buf)
 {
     H5FD_family_t	*file = (H5FD_family_t*)_file;
     uint64_t            msize;
@@ -933,7 +933,7 @@ H5FD_family_query(const H5FD_t * _file, unsigned long *flags /* out */)
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_family_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
+H5FD_family_get_eoa(const H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type)
 {
     const H5FD_family_t	*file = (const H5FD_family_t*)_file;
 
@@ -1165,7 +1165,7 @@ H5FD_family_read(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, si
 
     /* Read from each member */
     while(size > 0) {
-        H5_ASSIGN_OVERFLOW(u,addr /file->memb_size,hsize_t,unsigned);
+        H5_CHECKED_ASSIGN(u, unsigned, addr / file->memb_size, hsize_t);
 
         sub = addr % file->memb_size;
 
@@ -1234,7 +1234,7 @@ H5FD_family_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, s
 
     /* Write to each member */
     while (size>0) {
-        H5_ASSIGN_OVERFLOW(u,addr /file->memb_size,hsize_t,unsigned);
+        H5_CHECKED_ASSIGN(u, unsigned, addr / file->memb_size, hsize_t);
 
         sub = addr % file->memb_size;
 
diff --git a/src/H5FDlog.c b/src/H5FDlog.c
index 135b901..c42e124 100644
--- a/src/H5FDlog.c
+++ b/src/H5FDlog.c
@@ -92,11 +92,7 @@ typedef struct H5FD_log_t {
      * Windows code further below.
      */
     dev_t           device;         /* file device number   */
-#ifdef H5_VMS
-    ino_t           inode[3];       /* file i-node number   */
-#else
     ino_t           inode;          /* file i-node number   */
-#endif /*H5_VMS*/
 #else
     /* Files in windows are uniquely identified by the volume serial
      * number and the file index (both low and high parts).
@@ -564,7 +560,7 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
         HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "unable to allocate file struct")
 
     file->fd = fd;
-    H5_ASSIGN_OVERFLOW(file->eof, sb.st_size, h5_stat_size_t, haddr_t);
+    H5_CHECKED_ASSIGN(file->eof, haddr_t, sb.st_size, h5_stat_size_t);
     file->pos = HADDR_UNDEF;
     file->op = OP_UNKNOWN;
 #ifdef H5_HAVE_WIN32_API
@@ -580,14 +576,7 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
     file->dwVolumeSerialNumber = fileinfo.dwVolumeSerialNumber;
 #else /* H5_HAVE_WIN32_API */
     file->device = sb.st_dev;
-#ifdef H5_VMS
-    file->inode[0] = sb.st_ino[0];
-    file->inode[1] = sb.st_ino[1];
-    file->inode[2] = sb.st_ino[2];
-#else
     file->inode = sb.st_ino;
-#endif /*H5_VMS*/
-
 #endif /* H5_HAVE_WIN32_API */
 
     /* Retain a copy of the name used to open the file, for possible error reporting */
@@ -850,13 +839,8 @@ H5FD_log_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
     if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t)) > 0) HGOTO_DONE(1)
 #endif /* H5_DEV_T_IS_SCALAR */
 
-#ifndef H5_VMS
     if(f1->inode < f2->inode) HGOTO_DONE(-1)
     if(f1->inode > f2->inode) HGOTO_DONE(1)
-#else
-    if(HDmemcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) < 0) HGOTO_DONE(-1)
-    if(HDmemcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) > 0) HGOTO_DONE(1)
-#endif /*H5_VMS*/
 
 #endif
 
@@ -917,7 +901,7 @@ H5FD_log_query(const H5FD_t *_file, unsigned long *flags /* out */)
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_log_alloc(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, hsize_t size)
+H5FD_log_alloc(H5FD_t *_file, H5FD_mem_t type, hid_t H5_ATTR_UNUSED dxpl_id, hsize_t size)
 {
     H5FD_log_t	*file = (H5FD_log_t *)_file;
     haddr_t addr;
@@ -972,7 +956,7 @@ H5FD_log_alloc(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, hsize_t siz
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_log_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
+H5FD_log_get_eoa(const H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type)
 {
     const H5FD_log_t    *file = (const H5FD_log_t *)_file;
 
@@ -1067,7 +1051,7 @@ H5FD_log_get_eof(const H5FD_t *_file)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_log_get_handle(H5FD_t *_file, hid_t UNUSED fapl, void **file_handle)
+H5FD_log_get_handle(H5FD_t *_file, hid_t H5_ATTR_UNUSED fapl, void **file_handle)
 {
     H5FD_log_t          *file = (H5FD_log_t *)_file;
     herr_t              ret_value = SUCCEED;
@@ -1101,7 +1085,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr,
+H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t addr,
             size_t size, void *buf/*out*/)
 {
     H5FD_log_t          *file = (H5FD_log_t *)_file;
@@ -1298,7 +1282,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr,
+H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t addr,
             size_t size, const void *buf)
 {
     H5FD_log_t          *file = (H5FD_log_t *)_file;
@@ -1498,7 +1482,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_log_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing)
+H5FD_log_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_UNUSED closing)
 {
     H5FD_log_t  *file = (H5FD_log_t *)_file;
     herr_t      ret_value = SUCCEED;                /* Return value */
@@ -1536,13 +1520,6 @@ H5FD_log_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing)
         if(0 == bError)
             HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
 #else /* H5_HAVE_WIN32_API */
-#ifdef H5_VMS
-        /* Reset seek offset to the beginning of the file, so that the file isn't
-         * re-extended later.  This may happen on Open VMS. */
-        if(-1 == HDlseek(file->fd, (HDoff_t)0, SEEK_SET))
-            HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position")
-#endif
-
         if(-1 == HDftruncate(file->fd, (HDoff_t)file->eoa))
             HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
 #endif /* H5_HAVE_WIN32_API */
@@ -1562,3 +1539,4 @@ H5FD_log_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing)
 done:
     FUNC_LEAVE_NOAPI(ret_value)
 } /* end H5FD_log_truncate() */
+
diff --git a/src/H5FDmpio.c b/src/H5FDmpio.c
index d645e82..4b9802f 100644
--- a/src/H5FDmpio.c
+++ b/src/H5FDmpio.c
@@ -988,7 +988,7 @@ done:
  */
 static H5FD_t *
 H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id,
-         haddr_t UNUSED maxaddr)
+	       haddr_t H5_ATTR_UNUSED maxaddr)
 {
     H5FD_mpio_t      *file=NULL;
     MPI_File      fh;
@@ -1204,7 +1204,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_mpio_query(const H5FD_t UNUSED *_file, unsigned long *flags /* out */)
+H5FD_mpio_query(const H5FD_t H5_ATTR_UNUSED *_file, unsigned long *flags /* out */)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -1243,7 +1243,7 @@ H5FD_mpio_query(const H5FD_t UNUSED *_file, unsigned long *flags /* out */)
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_mpio_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
+H5FD_mpio_get_eoa(const H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type)
 {
     const H5FD_mpio_t  *file = (const H5FD_mpio_t*)_file;
 
@@ -1278,7 +1278,7 @@ H5FD_mpio_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_mpio_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr)
+H5FD_mpio_set_eoa(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, haddr_t addr)
 {
     H5FD_mpio_t  *file = (H5FD_mpio_t*)_file;
 
@@ -1351,7 +1351,7 @@ H5FD_mpio_get_eof(const H5FD_t *_file)
  *-------------------------------------------------------------------------
 */
 static herr_t
-H5FD_mpio_get_handle(H5FD_t *_file, hid_t UNUSED fapl, void** file_handle)
+H5FD_mpio_get_handle(H5FD_t *_file, hid_t H5_ATTR_UNUSED fapl, void** file_handle)
 {
     H5FD_mpio_t         *file = (H5FD_mpio_t *)_file;
     herr_t              ret_value = SUCCEED;
@@ -1437,7 +1437,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t addr, size_t size,
+H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t dxpl_id, haddr_t addr, size_t size,
          void *buf/*out*/)
 {
     H5FD_mpio_t      *file = (H5FD_mpio_t*)_file;
@@ -1910,7 +1910,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_mpio_flush(H5FD_t *_file, hid_t UNUSED dxpl_id, unsigned closing)
+H5FD_mpio_flush(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, unsigned closing)
 {
     H5FD_mpio_t    *file = (H5FD_mpio_t*)_file;
     int      mpi_code;  /* mpi return code */
@@ -1955,7 +1955,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_mpio_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing)
+H5FD_mpio_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_UNUSED closing)
 {
     H5FD_mpio_t    *file = (H5FD_mpio_t*)_file;
     herr_t              ret_value = SUCCEED;
diff --git a/src/H5FDmulti.c b/src/H5FDmulti.c
index c0cab02..a00c9a6 100644
--- a/src/H5FDmulti.c
+++ b/src/H5FDmulti.c
@@ -30,18 +30,11 @@
 
 /* Disable certain warnings in PC-Lint: */
 /*lint --emacro( {534, 830}, H5P_DEFAULT, H5P_FILE_ACCESS, H5P_DATASET_XFER) */
-/*lint --emacro( {534, 830}, H5F_ACC_DEBUG, H5F_ACC_RDWR) */
 /*lint --emacro( {534, 830}, H5FD_MULTI) */
 /*lint -esym( 534, H5Eclear2, H5Epush2) */
 
 #include "hdf5.h"
 
-/*
- * Define H5FD_MULTI_DEBUG if you want the ability to print debugging
- * messages to the standard error stream. Messages are only printed if the
- * file is opened with the H5F_ACC_DEBUG flag.
- */
-#define H5FD_MULTI_DEBUG
 
 /* Our version of MAX */
 #undef MAX
@@ -825,19 +818,6 @@ H5FD_multi_sb_decode(H5FD_t *_file, const char *name, const unsigned char *buf)
      * files at the end.
      */
     if (map_changed) {
-#ifdef H5FD_MULTI_DEBUG
-        if (file->flags & H5F_ACC_DEBUG) {
-            fprintf(stderr, "H5FD_MULTI: member map override\n");
-            fprintf(stderr, "    old value: ");
-            ALL_MEMBERS(mt) {
-                fprintf(stderr, "%s%d", mt?", ":"", (int)(file->fa.memb_map[mt]));
-            } END_MEMBERS;
-            fprintf(stderr, "\n    new value: ");
-            ALL_MEMBERS(mt) {
-                fprintf(stderr, "%s%d", mt?", ":"", (int)(map[mt]));
-            } END_MEMBERS;
-        }
-#endif
         /* Commit map */
         ALL_MEMBERS(mt) {
             file->fa.memb_map[mt] = map[mt];
@@ -850,11 +830,6 @@ H5FD_multi_sb_decode(H5FD_t *_file, const char *name, const unsigned char *buf)
         } END_MEMBERS;
         ALL_MEMBERS(mt) {
             if (!in_use[mt] && file->memb[mt]) {
-#ifdef H5FD_MULTI_DEBUG
-                if (file->flags & H5F_ACC_DEBUG) {
-                    fprintf(stderr, "H5FD_MULTI: close member %d\n", (int)mt);
-                }
-#endif
                 (void)H5FDclose(file->memb[mt]);
                 file->memb[mt] = NULL;
             }
@@ -1148,20 +1123,10 @@ H5FD_multi_close(H5FD_t *_file)
     /* Close as many members as possible */
     ALL_MEMBERS(mt) {
 	if (file->memb[mt]) {
-#ifdef H5FD_MULTI_DEBUG
-	    if (file->flags & H5F_ACC_DEBUG) {
-		fprintf(stderr, "H5FD_MULTI: closing member %d\n", (int)mt);
-	    }
-#endif
 	    if (H5FDclose(file->memb[mt])<0) {
-#ifdef H5FD_MULTI_DEBUG
-		if (file->flags & H5F_ACC_DEBUG) {
-		    fprintf(stderr, "H5FD_MULTI: close failed\n");
-		}
-#endif
-		nerrors++;
+            nerrors++;
 	    } else {
-		file->memb[mt] = NULL;
+            file->memb[mt] = NULL;
 	    }
 	}
     } END_MEMBERS;
@@ -1930,18 +1895,10 @@ open_members(H5FD_multi_t *file)
          */
 	sprintf(tmp, file->fa.memb_name[mt], file->name);
 
-#ifdef H5FD_MULTI_DEBUG
-	if(file->flags & H5F_ACC_DEBUG)
-	    fprintf(stderr, "H5FD_MULTI: open member %d \"%s\"\n", (int)mt, tmp);
-#endif
 	H5E_BEGIN_TRY {
 	    file->memb[mt] = H5FDopen(tmp, file->flags, file->fa.memb_fapl[mt], HADDR_UNDEF);
 	} H5E_END_TRY;
 	if(!file->memb[mt]) {
-#ifdef H5FD_MULTI_DEBUG
-	    if(file->flags & H5F_ACC_DEBUG)
-		fprintf(stderr, "H5FD_MULTI: open failed for member %d\n", (int)mt);
-#endif
 	    if(!file->fa.relax || (file->flags & H5F_ACC_RDWR))
 		nerrors++;
 	}
diff --git a/src/H5FDprivate.h b/src/H5FDprivate.h
index a11fc01..92e613f 100644
--- a/src/H5FDprivate.h
+++ b/src/H5FDprivate.h
@@ -134,7 +134,7 @@ H5_DLL herr_t H5FD_read(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t typ
     haddr_t addr, size_t size, void *buf/*out*/);
 H5_DLL herr_t H5FD_write(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type,
     haddr_t addr, size_t size, const void *buf);
-H5_DLL herr_t H5FD_flush(H5FD_t *file, hid_t dxpl_id, hbool_t closing);
+H5_DLL herr_t H5FD_flush(H5FD_t *file, hid_t dxpl_id, unsigned closing);
 H5_DLL herr_t H5FD_truncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing);
 H5_DLL herr_t H5FD_get_fileno(const H5FD_t *file, unsigned long *filenum);
 H5_DLL herr_t H5FD_get_vfd_handle(H5FD_t *file, hid_t fapl, void** file_handle);
diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c
index a21fff8..e513381 100644
--- a/src/H5FDsec2.c
+++ b/src/H5FDsec2.c
@@ -69,11 +69,7 @@ typedef struct H5FD_sec2_t {
      * Windows code further below.
      */
     dev_t           device;     /* file device number   */
-#ifdef H5_VMS
-    ino_t           inode[3];   /* file i-node number   */
-#else
     ino_t           inode;      /* file i-node number   */
-#endif /* H5_VMS */
 #else
     /* Files in windows are uniquely identified by the volume serial
      * number and the file index (both low and high parts).
@@ -351,7 +347,7 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
         HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "unable to allocate file struct")
 
     file->fd = fd;
-    H5_ASSIGN_OVERFLOW(file->eof, sb.st_size, h5_stat_size_t, haddr_t);
+    H5_CHECKED_ASSIGN(file->eof, haddr_t, sb.st_size, h5_stat_size_t);
     file->pos = HADDR_UNDEF;
     file->op = OP_UNKNOWN;
 #ifdef H5_HAVE_WIN32_API
@@ -367,13 +363,7 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
     file->dwVolumeSerialNumber = fileinfo.dwVolumeSerialNumber;
 #else /* H5_HAVE_WIN32_API */
     file->device = sb.st_dev;
-#ifdef H5_VMS
-    file->inode[0] = sb.st_ino[0];
-    file->inode[1] = sb.st_ino[1];
-    file->inode[2] = sb.st_ino[2];
-#else /* H5_VMS */
     file->inode = sb.st_ino;
-#endif /* H5_VMS */
 #endif /* H5_HAVE_WIN32_API */
 
     /* Retain a copy of the name used to open the file, for possible error reporting */
@@ -494,13 +484,8 @@ H5FD_sec2_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
     if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t)) < 0) HGOTO_DONE(-1)
     if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t)) > 0) HGOTO_DONE(1)
 #endif /* H5_DEV_T_IS_SCALAR */
-#ifdef H5_VMS
-    if(HDmemcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) < 0) HGOTO_DONE(-1)
-    if(HDmemcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) > 0) HGOTO_DONE(1)
-#else /* H5_VMS */
     if(f1->inode < f2->inode) HGOTO_DONE(-1)
     if(f1->inode > f2->inode) HGOTO_DONE(1)
-#endif /* H5_VMS */
 #endif /* H5_HAVE_WIN32_API */
 
 done:
@@ -561,7 +546,7 @@ H5FD_sec2_query(const H5FD_t *_file, unsigned long *flags /* out */)
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_sec2_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
+H5FD_sec2_get_eoa(const H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type)
 {
     const H5FD_sec2_t	*file = (const H5FD_sec2_t *)_file;
 
@@ -586,7 +571,7 @@ H5FD_sec2_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_sec2_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr)
+H5FD_sec2_set_eoa(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, haddr_t addr)
 {
     H5FD_sec2_t	*file = (H5FD_sec2_t *)_file;
 
@@ -637,7 +622,7 @@ H5FD_sec2_get_eof(const H5FD_t *_file)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_sec2_get_handle(H5FD_t *_file, hid_t UNUSED fapl, void **file_handle)
+H5FD_sec2_get_handle(H5FD_t *_file, hid_t H5_ATTR_UNUSED fapl, void **file_handle)
 {
     H5FD_sec2_t         *file = (H5FD_sec2_t *)_file;
     herr_t              ret_value = SUCCEED;
@@ -671,7 +656,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_sec2_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id,
+H5FD_sec2_read(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUSED dxpl_id,
     haddr_t addr, size_t size, void *buf /*out*/)
 {
     H5FD_sec2_t     *file       = (H5FD_sec2_t *)_file;
@@ -766,7 +751,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_sec2_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id,
+H5FD_sec2_write(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUSED dxpl_id,
                 haddr_t addr, size_t size, const void *buf)
 {
     H5FD_sec2_t     *file       = (H5FD_sec2_t *)_file;
@@ -856,7 +841,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_sec2_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing)
+H5FD_sec2_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_UNUSED closing)
 {
     H5FD_sec2_t *file = (H5FD_sec2_t *)_file;
     herr_t ret_value = SUCCEED;                 /* Return value */
@@ -894,12 +879,6 @@ H5FD_sec2_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing)
         if(0 == bError)
             HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
 #else /* H5_HAVE_WIN32_API */
-#ifdef H5_VMS
-        /* Reset seek offset to the beginning of the file, so that the file isn't
-         * re-extended later.  This may happen on Open VMS. */
-        if(-1 == HDlseek(file->fd, (HDoff_t)0, SEEK_SET))
-            HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position")
-#endif
         if(-1 == HDftruncate(file->fd, (HDoff_t)file->eoa))
             HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
 #endif /* H5_HAVE_WIN32_API */
@@ -915,3 +894,4 @@ H5FD_sec2_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing)
 done:
     FUNC_LEAVE_NOAPI(ret_value)
 } /* end H5FD_sec2_truncate() */
+
diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c
index f85ab34..d63e5f1 100644
--- a/src/H5FDstdio.c
+++ b/src/H5FDstdio.c
@@ -97,11 +97,7 @@ typedef struct H5FD_stdio_t {
      * Windows code further below.
      */
     dev_t           device;     /* file device number   */
-#ifdef H5_VMS
-    ino_t           inode[3];   /* file i-node number   */
-#else
     ino_t           inode;      /* file i-node number   */
-#endif /* H5_VMS */
 #else
     /* Files in windows are uniquely identified by the volume serial
      * number and the file index (both low and high parts).
@@ -448,13 +444,7 @@ H5FD_stdio_open( const char *name, unsigned flags, hid_t fapl_id,
         H5Epush_ret(func, H5E_ERR_CLS, H5E_FILE, H5E_BADFILE, "unable to fstat file", NULL)
     } /* end if */
     file->device = sb.st_dev;
-#ifdef H5_VMS
-    file->inode[0] = sb.st_ino[0];
-    file->inode[1] = sb.st_ino[1];
-    file->inode[2] = sb.st_ino[2];
-#else /* H5_VMS */
     file->inode = sb.st_ino;
-#endif /* H5_VMS */
 #endif /* H5_HAVE_WIN32_API */
 
     return (H5FD_t*)file;
@@ -540,13 +530,8 @@ H5FD_stdio_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
     if(memcmp(&(f1->device),&(f2->device),sizeof(dev_t)) < 0) return -1;
     if(memcmp(&(f1->device),&(f2->device),sizeof(dev_t)) > 0) return 1;
 #endif /* H5_DEV_T_IS_SCALAR */
-#ifdef H5_VMS
-    if(memcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) < 0) return -1;
-    if(memcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) > 0) return 1;
-#else /* H5_VMS */
     if(f1->inode < f2->inode) return -1;
     if(f1->inode > f2->inode) return 1;
-#endif /* H5_VMS */
 #endif /* H5_HAVE_WIN32_API */
 
     return 0;
@@ -606,7 +591,7 @@ H5FD_stdio_query(const H5FD_t *_f, unsigned long *flags /* out */)
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_stdio_alloc(H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type, hid_t /*UNUSED*/ dxpl_id, hsize_t size)
+H5FD_stdio_alloc(H5FD_t *_file, H5FD_mem_t /*H5_ATTR_UNUSED*/ type, hid_t /*H5_ATTR_UNUSED*/ dxpl_id, hsize_t size)
 {
     H5FD_stdio_t    *file = (H5FD_stdio_t*)_file;
     haddr_t         addr;
@@ -651,7 +636,7 @@ H5FD_stdio_alloc(H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type, hid_t /*UNUSED*/ dxp
  *-------------------------------------------------------------------------
  */
 static haddr_t
-H5FD_stdio_get_eoa(const H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type)
+H5FD_stdio_get_eoa(const H5FD_t *_file, H5FD_mem_t /*H5_ATTR_UNUSED*/ type)
 {
     const H5FD_stdio_t *file = (const H5FD_stdio_t *)_file;
 
@@ -682,7 +667,7 @@ H5FD_stdio_get_eoa(const H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FD_stdio_set_eoa(H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type, haddr_t addr)
+H5FD_stdio_set_eoa(H5FD_t *_file, H5FD_mem_t /*H5_ATTR_UNUSED*/ type, haddr_t addr)
 {
     H5FD_stdio_t  *file = (H5FD_stdio_t*)_file;
 
diff --git a/src/H5FLprivate.h b/src/H5FLprivate.h
index 786599e..72c6b55 100644
--- a/src/H5FLprivate.h
+++ b/src/H5FLprivate.h
@@ -138,7 +138,7 @@ typedef struct H5FL_reg_head_t {
 #else /* H5_NO_REG_FREE_LISTS */
 #include "H5MMprivate.h"
 /* Common macro for H5FL_DEFINE & H5FL_DEFINE_STATIC */
-#define H5FL_DEFINE_COMMON(t) int UNUSED H5FL_REG_NAME(t)
+#define H5FL_DEFINE_COMMON(t) int H5_ATTR_UNUSED H5FL_REG_NAME(t)
 
 #define H5FL_DEFINE(t)  H5_DLL H5FL_DEFINE_COMMON(t)
 #define H5FL_EXTERN(t)  H5_DLLVAR H5FL_DEFINE_COMMON(t)
@@ -208,7 +208,7 @@ typedef struct H5FL_blk_head_t {
 
 #else /* H5_NO_BLK_FREE_LISTS */
 /* Common macro for H5FL_BLK_DEFINE & H5FL_BLK_DEFINE_STATIC */
-#define H5FL_BLK_DEFINE_COMMON(t) int UNUSED H5FL_BLK_NAME(t)
+#define H5FL_BLK_DEFINE_COMMON(t) int H5_ATTR_UNUSED H5FL_BLK_NAME(t)
 
 #define H5FL_BLK_DEFINE(t)      H5_DLL H5FL_BLK_DEFINE_COMMON(t)
 #define H5FL_BLK_EXTERN(t)      H5_DLLVAR H5FL_BLK_DEFINE_COMMON(t)
@@ -337,7 +337,7 @@ typedef struct H5FL_seq_head_t {
 
 #else /* H5_NO_SEQ_FREE_LISTS */
 /* Common macro for H5FL_SEQ_DEFINE & H5FL_SEQ_DEFINE_STATIC */
-#define H5FL_SEQ_DEFINE_COMMON(t) int UNUSED H5FL_SEQ_NAME(t)
+#define H5FL_SEQ_DEFINE_COMMON(t) int H5_ATTR_UNUSED H5FL_SEQ_NAME(t)
 
 #define H5FL_SEQ_DEFINE(t)      H5_DLL H5FL_SEQ_DEFINE_COMMON(t)
 #define H5FL_SEQ_EXTERN(t)      H5_DLLVAR H5FL_SEQ_DEFINE_COMMON(t)
diff --git a/src/H5FS.c b/src/H5FS.c
index 73420d2..38a5a77 100644
--- a/src/H5FS.c
+++ b/src/H5FS.c
@@ -802,7 +802,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_sinfo_free_sect_cb(void *_sect, void UNUSED *key, void *op_data)
+H5FS_sinfo_free_sect_cb(void *_sect, void H5_ATTR_UNUSED *key, void *op_data)
 {
     H5FS_section_info_t *sect = (H5FS_section_info_t *)_sect;   /* Section to free */
     const H5FS_sinfo_t *sinfo = (const H5FS_sinfo_t *)op_data;     /* Free space manager for section */
@@ -834,7 +834,7 @@ H5FS_sinfo_free_sect_cb(void *_sect, void UNUSED *key, void *op_data)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_sinfo_free_node_cb(void *item, void UNUSED *key, void *op_data)
+H5FS_sinfo_free_node_cb(void *item, void H5_ATTR_UNUSED *key, void *op_data)
 {
     H5FS_node_t *fspace_node = (H5FS_node_t *)item;       /* Temporary pointer to free space list node */
 
diff --git a/src/H5FScache.c b/src/H5FScache.c
index 6fc3227..a0bfbcf 100644
--- a/src/H5FScache.c
+++ b/src/H5FScache.c
@@ -75,17 +75,17 @@ typedef struct {
 /********************/
 
 /* Section info routines */
-static herr_t H5FS_sinfo_serialize_sect_cb(void *_item, void UNUSED *key, void *_udata);
-static herr_t H5FS_sinfo_serialize_node_cb(void *_item, void UNUSED *key, void *_udata);
+static herr_t H5FS_sinfo_serialize_sect_cb(void *_item, void H5_ATTR_UNUSED *key, void *_udata);
+static herr_t H5FS_sinfo_serialize_node_cb(void *_item, void H5_ATTR_UNUSED *key, void *_udata);
 
 /* Metadata cache callbacks */
 static H5FS_t *H5FS_cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5FS_cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5FS_t *fspace, unsigned UNUSED * flags_ptr);
+static herr_t H5FS_cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5FS_t *fspace, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5FS_cache_hdr_dest(H5F_t *f, H5FS_t *fspace);
 static herr_t H5FS_cache_hdr_clear(H5F_t *f, H5FS_t *fspace, hbool_t destroy);
 static herr_t H5FS_cache_hdr_size(const H5F_t *f, const H5FS_t *fspace, size_t *size_ptr);
 static H5FS_sinfo_t *H5FS_cache_sinfo_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5FS_cache_sinfo_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5FS_sinfo_t *sinfo, unsigned UNUSED * flags_ptr);
+static herr_t H5FS_cache_sinfo_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5FS_sinfo_t *sinfo, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5FS_cache_sinfo_dest(H5F_t *f, H5FS_sinfo_t *sinfo);
 static herr_t H5FS_cache_sinfo_clear(H5F_t *f, H5FS_sinfo_t *sinfo, hbool_t destroy);
 static herr_t H5FS_cache_sinfo_size(const H5F_t *f, const H5FS_sinfo_t *sinfo, size_t *size_ptr);
@@ -279,7 +279,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5FS_t *fspace, unsigned UNUSED * flags_ptr)
+H5FS_cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5FS_t *fspace, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     H5WB_t      *wb = NULL;             /* Wrapped buffer for header data */
     uint8_t     hdr_buf[H5FS_HDR_BUF_SIZE]; /* Buffer for header */
@@ -531,7 +531,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_cache_hdr_size(const H5F_t UNUSED *f, const H5FS_t *fspace, size_t *size_ptr)
+H5FS_cache_hdr_size(const H5F_t H5_ATTR_UNUSED *f, const H5FS_t *fspace, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -562,7 +562,7 @@ H5FS_cache_hdr_size(const H5F_t UNUSED *f, const H5FS_t *fspace, size_t *size_pt
  *-------------------------------------------------------------------------
  */
 static H5FS_sinfo_t *
-H5FS_cache_sinfo_load(H5F_t *f, hid_t dxpl_id, haddr_t UNUSED addr, void *_udata)
+H5FS_cache_sinfo_load(H5F_t *f, hid_t dxpl_id, haddr_t H5_ATTR_UNUSED addr, void *_udata)
 {
     H5FS_sinfo_t	*sinfo = NULL;  /* Free space section info */
     H5FS_sinfo_cache_ud_t *udata = (H5FS_sinfo_cache_ud_t *)_udata; /* user data for callback */
@@ -585,7 +585,7 @@ H5FS_cache_sinfo_load(H5F_t *f, hid_t dxpl_id, haddr_t UNUSED addr, void *_udata
 	HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
 
     /* Allocate space for the buffer to serialize the sections into */
-    H5_ASSIGN_OVERFLOW(/* To: */ old_sect_size, /* From: */ udata->fspace->sect_size, /* From: */ hsize_t, /* To: */ size_t);
+    H5_CHECKED_ASSIGN(old_sect_size, size_t, udata->fspace->sect_size, hsize_t);
     if(NULL == (buf = H5FL_BLK_MALLOC(sect_block, (size_t)udata->fspace->sect_size)))
         HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
 
@@ -724,7 +724,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_sinfo_serialize_sect_cb(void *_item, void UNUSED *key, void *_udata)
+H5FS_sinfo_serialize_sect_cb(void *_item, void H5_ATTR_UNUSED *key, void *_udata)
 {
     H5FS_section_class_t *sect_cls;     /* Class of section */
     H5FS_section_info_t *sect= (H5FS_section_info_t *)_item;   /* Free space section to work on */
@@ -780,7 +780,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_sinfo_serialize_node_cb(void *_item, void UNUSED *key, void *_udata)
+H5FS_sinfo_serialize_node_cb(void *_item, void H5_ATTR_UNUSED *key, void *_udata)
 {
     H5FS_node_t *fspace_node = (H5FS_node_t *)_item;   /* Free space size node to work on */
     H5FS_iter_ud_t *udata = (H5FS_iter_ud_t *)_udata; /* Callback info */
@@ -826,7 +826,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_cache_sinfo_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5FS_sinfo_t *sinfo, unsigned UNUSED * flags_ptr)
+H5FS_cache_sinfo_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5FS_sinfo_t *sinfo, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
@@ -1009,7 +1009,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_cache_sinfo_size(const H5F_t UNUSED *f, const H5FS_sinfo_t *sinfo, size_t *size_ptr)
+H5FS_cache_sinfo_size(const H5F_t H5_ATTR_UNUSED *f, const H5FS_sinfo_t *sinfo, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -1018,7 +1018,7 @@ H5FS_cache_sinfo_size(const H5F_t UNUSED *f, const H5FS_sinfo_t *sinfo, size_t *
     HDassert(size_ptr);
 
     /* Set size value */
-    H5_ASSIGN_OVERFLOW(/* To: */ *size_ptr, /* From: */ sinfo->fspace->alloc_sect_size, /* From: */ hsize_t, /* To: */ size_t);
+    H5_CHECKED_ASSIGN(*size_ptr, size_t, sinfo->fspace->alloc_sect_size, hsize_t);
 
     FUNC_LEAVE_NOAPI(SUCCEED)
 } /* H5FS_cache_sinfo_size() */
diff --git a/src/H5FSdbg.c b/src/H5FSdbg.c
index 570909b..2cfc094 100644
--- a/src/H5FSdbg.c
+++ b/src/H5FSdbg.c
@@ -232,7 +232,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5FS_sects_debug(H5F_t *f, hid_t dxpl_id, haddr_t UNUSED addr, FILE *stream, int indent, int fwidth,
+H5FS_sects_debug(H5F_t *f, hid_t dxpl_id, haddr_t H5_ATTR_UNUSED addr, FILE *stream, int indent, int fwidth,
     haddr_t fs_addr, haddr_t client_addr)
 {
     H5FS_t	*fspace = NULL;         /* Free space header info */
diff --git a/src/H5FSsection.c b/src/H5FSsection.c
index c16f7a5..be48ae6 100644
--- a/src/H5FSsection.c
+++ b/src/H5FSsection.c
@@ -1827,7 +1827,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_iterate_sect_cb(void *_item, void UNUSED *key, void *_udata)
+H5FS_iterate_sect_cb(void *_item, void H5_ATTR_UNUSED *key, void *_udata)
 {
     H5FS_section_info_t *sect_info = (H5FS_section_info_t *)_item;   /* Free space section to work on */
     H5FS_iter_ud_t *udata = (H5FS_iter_ud_t *)_udata; /* Callback info */
@@ -1865,7 +1865,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5FS_iterate_node_cb(void *_item, void UNUSED *key, void *_udata)
+H5FS_iterate_node_cb(void *_item, void H5_ATTR_UNUSED *key, void *_udata)
 {
     H5FS_node_t *fspace_node = (H5FS_node_t *)_item;   /* Free space size node to work on */
     H5FS_iter_ud_t *udata = (H5FS_iter_ud_t *)_udata; /* Callback info */
diff --git a/src/H5Faccum.c b/src/H5Faccum.c
index 5d884d6..71ca9e5 100644
--- a/src/H5Faccum.c
+++ b/src/H5Faccum.c
@@ -172,7 +172,7 @@ H5F__accum_read(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr,
                 /* Read the part before the metadata accumulator */
                 if(addr < accum->loc) {
                     /* Set the amount to read */
-                    H5_ASSIGN_OVERFLOW(amount_before, (accum->loc - addr), hsize_t, size_t);
+                    H5_CHECKED_ASSIGN(amount_before, size_t, (accum->loc - addr), hsize_t);
 
                     /* Make room for the metadata to read in */
                     HDmemmove(accum->buf + amount_before, accum->buf, accum->size);
@@ -193,7 +193,7 @@ H5F__accum_read(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr,
                     size_t amount_after;         /* Amount to read at a time */
 
                     /* Set the amount to read */
-                    H5_ASSIGN_OVERFLOW(amount_after, ((addr + size) - (accum->loc + accum->size)), hsize_t, size_t);
+                    H5_CHECKED_ASSIGN(amount_after, size_t, ((addr + size) - (accum->loc + accum->size)), hsize_t);
 
                     /* Dispatch to driver */
                     if(H5FD_read(fio_info->f->shared->lf, fio_info->dxpl, map_type, (accum->loc + accum->size), amount_after, (accum->buf + accum->size + amount_before)) < 0)
@@ -536,14 +536,14 @@ H5F__accum_write(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr,
                         size_t old_offset;  /* Offset of old data within the accumulator buffer */
 
                         /* Calculate the amount we will need to add to the accumulator size, based on the amount of overlap */
-                        H5_ASSIGN_OVERFLOW(add_size, (accum->loc - addr), hsize_t, size_t);
+                        H5_CHECKED_ASSIGN(add_size, size_t, (accum->loc - addr), hsize_t);
 
                         /* Check if we need to adjust accumulator size */
                         if(H5F__accum_adjust(accum, fio_info, H5F_ACCUM_PREPEND, add_size) < 0)
                             HGOTO_ERROR(H5E_IO, H5E_CANTRESIZE, FAIL, "can't adjust metadata accumulator")
 
                         /* Calculate the proper offset of the existing metadata */
-                        H5_ASSIGN_OVERFLOW(old_offset, (addr + size) - accum->loc, hsize_t, size_t);
+                        H5_CHECKED_ASSIGN(old_offset, size_t, (addr + size) - accum->loc, hsize_t);
 
                         /* Move the existing metadata to the proper location */
                         HDmemmove(accum->buf + size, accum->buf + old_offset, (accum->size - old_offset));
@@ -576,7 +576,7 @@ H5F__accum_write(const H5F_io_info_t *fio_info, H5FD_mem_t type, haddr_t addr,
                         size_t dirty_off;           /* Offset of dirty region */
 
                         /* Calculate the amount we will need to add to the accumulator size, based on the amount of overlap */
-                        H5_ASSIGN_OVERFLOW(add_size, (addr + size) - (accum->loc + accum->size), hsize_t, size_t);
+                        H5_CHECKED_ASSIGN(add_size, size_t, (addr + size) - (accum->loc + accum->size), hsize_t);
 
                         /* Check if we need to adjust accumulator size */
                         if(H5F__accum_adjust(accum, fio_info, H5F_ACCUM_APPEND, add_size) < 0)
@@ -845,7 +845,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5F__accum_free(const H5F_io_info_t *fio_info, H5FD_mem_t UNUSED type, haddr_t addr,
+H5F__accum_free(const H5F_io_info_t *fio_info, H5FD_mem_t H5_ATTR_UNUSED type, haddr_t addr,
     hsize_t size)
 {
     H5F_meta_accum_t *accum;            /* Alias for file's metadata accumulator */
@@ -885,7 +885,7 @@ H5F__accum_free(const H5F_io_info_t *fio_info, H5FD_mem_t UNUSED type, haddr_t a
                 size_t new_accum_size;      /* Size of new accumulator buffer */
 
                 /* Calculate the size of the overlap with the accumulator, etc. */
-                H5_ASSIGN_OVERFLOW(overlap_size, (addr + size) - accum->loc, haddr_t, size_t);
+                H5_CHECKED_ASSIGN(overlap_size, size_t, (addr + size) - accum->loc, haddr_t);
                 new_accum_size = accum->size - overlap_size;
 
                 /* Move the accumulator buffer information to eliminate the freed block */
@@ -919,7 +919,7 @@ H5F__accum_free(const H5F_io_info_t *fio_info, H5FD_mem_t UNUSED type, haddr_t a
             haddr_t dirty_start = accum->loc + accum->dirty_off;
 
             /* Calculate the size of the overlap with the accumulator */
-            H5_ASSIGN_OVERFLOW(overlap_size, (accum->loc + accum->size) - addr, haddr_t, size_t);
+            H5_CHECKED_ASSIGN(overlap_size, size_t, (accum->loc + accum->size) - addr, haddr_t);
 
             /* Check if block to free begins before end of dirty region */
             if(accum->dirty && H5F_addr_lt(addr, dirty_end)) {
diff --git a/src/H5Fcwfs.c b/src/H5Fcwfs.c
index d0688f7..36f0a93 100644
--- a/src/H5Fcwfs.c
+++ b/src/H5Fcwfs.c
@@ -210,12 +210,12 @@ H5F_cwfs_find_free_heap(H5F_t *f, hid_t dxpl_id, size_t need, haddr_t *addr)
             new_need = MAX(H5HG_SIZE(f->shared->cwfs[cwfsno]), new_need);
 
             if((H5HG_SIZE(f->shared->cwfs[cwfsno]) + new_need) <= H5HG_MAXSIZE) {
-                htri_t extended;        /* Whether the heap was extended */
+                htri_t was_extended;        /* Whether the heap was extended */
 
-                extended = H5MF_try_extend(f, dxpl_id, H5FD_MEM_GHEAP, H5HG_ADDR(f->shared->cwfs[cwfsno]), (hsize_t)H5HG_SIZE(f->shared->cwfs[cwfsno]), (hsize_t)new_need);
-                if(extended < 0)
+                was_extended = H5MF_try_extend(f, dxpl_id, H5FD_MEM_GHEAP, H5HG_ADDR(f->shared->cwfs[cwfsno]), (hsize_t)H5HG_SIZE(f->shared->cwfs[cwfsno]), (hsize_t)new_need);
+                if(was_extended < 0)
                     HGOTO_ERROR(H5E_HEAP, H5E_CANTEXTEND, FAIL, "error trying to extend heap")
-                else if(extended == TRUE) {
+                else if(was_extended == TRUE) {
                     if(H5HG_extend(f, dxpl_id, H5HG_ADDR(f->shared->cwfs[cwfsno]), new_need) < 0)
                         HGOTO_ERROR(H5E_HEAP, H5E_CANTRESIZE, FAIL, "unable to extend global heap collection")
                     *addr = H5HG_ADDR(f->shared->cwfs[cwfsno]);
diff --git a/src/H5Fint.c b/src/H5Fint.c
index e7726eb..81b8606 100644
--- a/src/H5Fint.c
+++ b/src/H5Fint.c
@@ -795,9 +795,19 @@ H5F_dest(H5F_t *f, hid_t dxpl_id, hbool_t flush)
              *      and also because releasing free space can shrink the file's
              *      'eoa' value)
              */
-            if(H5MF_close(f, dxpl_id) < 0)
-                /* Push error, but keep going*/
-                HDONE_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "can't release file free space info")
+            if(H5F_ACC_RDWR & H5F_INTENT(f)) {
+                if(H5MF_close(f, dxpl_id) < 0)
+                    /* Push error, but keep going*/
+                    HDONE_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "can't release file free space info")
+
+                /* Flush the file again (if requested), as shutting down the
+                 * free space manager may dirty some data structures again.
+                 */
+                if(flush)
+                    if(H5F_flush(f, dxpl_id, TRUE) < 0)
+                        /* Push error, but keep going*/
+                        HDONE_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache")
+            } /* end if */
 
             /* Unpin the superblock, since we're about to destroy the cache */
             if(H5AC_unpin_entry(f->shared->sblock) < 0)
@@ -853,14 +863,6 @@ H5F_dest(H5F_t *f, hid_t dxpl_id, hbool_t flush)
             /* Push error, but keep going*/
             HDONE_ERROR(H5E_FILE, H5E_CANTDEC, FAIL, "can't close property list")
 
-        /* Only truncate the file on an orderly close, with write-access */
-        if(f->closing && (H5F_ACC_RDWR & H5F_INTENT(f))) {
-            /* Truncate the file to the current allocated size */
-            if(H5FD_truncate(f->shared->lf, dxpl_id, (unsigned)TRUE) < 0)
-                /* Push error, but keep going*/
-                HDONE_ERROR(H5E_FILE, H5E_WRITEERROR, FAIL, "low level truncate failed")
-        } /* end if */
-
         /* Close the file */
         if(H5FD_close(f->shared->lf) < 0)
             /* Push error, but keep going*/
@@ -1178,6 +1180,15 @@ H5F_flush(H5F_t *f, hid_t dxpl_id, hbool_t closing)
         /* Push error, but keep going*/
         HDONE_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush metadata cache")
 
+    /* Truncate the file to the current allocated size */
+    if(H5FD_truncate(f->shared->lf, dxpl_id, closing) < 0)
+        HDONE_ERROR(H5E_FILE, H5E_WRITEERROR, FAIL, "low level truncate failed")
+
+    /* Flush the entire metadata cache again since the EOA could have changed in the truncate call. */
+    if(H5AC_flush(f, dxpl_id) < 0)
+        /* Push error, but keep going*/
+        HDONE_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush metadata cache")
+
     /* Set up I/O info for operation */
     fio_info.f = f;
     if(NULL == (fio_info.dxpl = (H5P_genplist_t *)H5I_object(dxpl_id)))
diff --git a/src/H5Fmount.c b/src/H5Fmount.c
index ee7af97..643eba5 100644
--- a/src/H5Fmount.c
+++ b/src/H5Fmount.c
@@ -128,7 +128,7 @@ done:
  */
 static herr_t
 H5F_mount(H5G_loc_t *loc, const char *name, H5F_t *child,
-	  hid_t UNUSED plist_id, hid_t dxpl_id)
+	  hid_t H5_ATTR_UNUSED plist_id, hid_t dxpl_id)
 {
     H5G_t	*mount_point = NULL;	/*mount point group		*/
     H5F_t	*ancestor = NULL;	/*ancestor files		*/
diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h
index 8466a26..5f74523 100644
--- a/src/H5Fpublic.h
+++ b/src/H5Fpublic.h
@@ -41,13 +41,15 @@
  * We're assuming that these constants are used rather early in the hdf5
  * session.
  *
+ * H5F_ACC_DEBUG no longer has any prints any special debug info. The symbol is
+ * being retained and will be listed as deprecated in HDF5 1.10.0.
  */
-#define H5F_ACC_RDONLY	(H5CHECK 0x0000u)	/*absence of rdwr => rd-only */
-#define H5F_ACC_RDWR	(H5CHECK 0x0001u)	/*open for read and write    */
-#define H5F_ACC_TRUNC	(H5CHECK 0x0002u)	/*overwrite existing files   */
-#define H5F_ACC_EXCL	(H5CHECK 0x0004u)	/*fail if file already exists*/
-#define H5F_ACC_DEBUG	(H5CHECK 0x0008u)	/*print debug info	     */
-#define H5F_ACC_CREAT	(H5CHECK 0x0010u)	/*create non-existing files  */
+#define H5F_ACC_RDONLY	(H5CHECK 0x0000u)	/*absence of rdwr => rd-only        */
+#define H5F_ACC_RDWR	(H5CHECK 0x0001u)	/*open for read and write           */
+#define H5F_ACC_TRUNC	(H5CHECK 0x0002u)	/*overwrite existing files          */
+#define H5F_ACC_EXCL	(H5CHECK 0x0004u)	/*fail if file already exists       */
+#define H5F_ACC_DEBUG	(H5CHECK 0x0000u)	/*print debug info (no longer used) */
+#define H5F_ACC_CREAT	(H5CHECK 0x0010u)	/*create non-existing files         */
 
 /* Value passed to H5Pset_elink_acc_flags to cause flags to be taken from the
  * parent file. */
diff --git a/src/H5Fsuper.c b/src/H5Fsuper.c
index 43ab0ec..3f2b33f 100644
--- a/src/H5Fsuper.c
+++ b/src/H5Fsuper.c
@@ -428,7 +428,7 @@ H5F_super_init(H5F_t *f, hid_t dxpl_id)
     superblock_size = (hsize_t)H5F_SUPERBLOCK_SIZE(super_vers, f);
 
     /* Compute the size of the driver information block */
-    H5_ASSIGN_OVERFLOW(driver_size, H5FD_sb_size(f->shared->lf), hsize_t, size_t);
+    H5_CHECKED_ASSIGN(driver_size, size_t, H5FD_sb_size(f->shared->lf), hsize_t);
     if(driver_size > 0) {
         driver_size += H5F_DRVINFOBLOCK_HDR_SIZE;
 
diff --git a/src/H5Fsuper_cache.c b/src/H5Fsuper_cache.c
index 9c02bc1..6062a03 100644
--- a/src/H5Fsuper_cache.c
+++ b/src/H5Fsuper_cache.c
@@ -110,7 +110,7 @@ H5FL_EXTERN(H5F_super_t);
  *-------------------------------------------------------------------------
  */
 static H5F_super_t *
-H5F_sblock_load(H5F_t *f, hid_t dxpl_id, haddr_t UNUSED addr, void *_udata)
+H5F_sblock_load(H5F_t *f, hid_t dxpl_id, haddr_t H5_ATTR_UNUSED addr, void *_udata)
 {
     H5F_super_t        *sblock = NULL;      /* File's superblock */
     haddr_t             base_addr = HADDR_UNDEF;        /* Base address of file */
@@ -599,7 +599,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t UNUSED addr,
+H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t H5_ATTR_UNUSED addr,
     H5F_super_t *sblock)
 {
     herr_t          ret_value = SUCCEED;
@@ -661,7 +661,7 @@ H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t UNUSED addr,
                 HGOTO_ERROR(H5E_FILE, H5E_CANTENCODE, FAIL, "can't encode root group symbol table entry")
 
             /* Encode the driver information block. */
-            H5_ASSIGN_OVERFLOW(driver_size, H5FD_sb_size(f->shared->lf), hsize_t, size_t);
+            H5_CHECKED_ASSIGN(driver_size, size_t, H5FD_sb_size(f->shared->lf), hsize_t);
 
             /* Checking whether driver block address is defined here is to handle backward
              * compatibility.  If the file was created with v1.6 library or earlier and no
@@ -728,7 +728,7 @@ H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t UNUSED addr,
         } /* end else */
 
         /* Retrieve the total size of the superblock info */
-        H5_ASSIGN_OVERFLOW(superblock_size, (p - buf), ptrdiff_t, size_t);
+        H5_CHECKED_ASSIGN(superblock_size, size_t, (p - buf), ptrdiff_t);
 
         /* Double check we didn't overrun the block (unlikely) */
         HDassert(superblock_size <= sizeof(buf));
@@ -747,7 +747,7 @@ H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t UNUSED addr,
             /* Check for ignoring the driver info for this file */
             if(!H5F_HAS_FEATURE(f, H5FD_FEAT_IGNORE_DRVRINFO)) {
                 /* Check for driver info message */
-                H5_ASSIGN_OVERFLOW(driver_size, H5FD_sb_size(f->shared->lf), hsize_t, size_t);
+                H5_CHECKED_ASSIGN(driver_size, size_t, H5FD_sb_size(f->shared->lf), hsize_t);
                 if(driver_size > 0) {
                     H5O_drvinfo_t drvinfo;      /* Driver info */
                     H5O_loc_t 	ext_loc; 	/* "Object location" for superblock extension */
@@ -803,7 +803,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5F_sblock_dest(H5F_t UNUSED *f, H5F_super_t* sblock)
+H5F_sblock_dest(H5F_t H5_ATTR_UNUSED *f, H5F_super_t* sblock)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
diff --git a/src/H5G.c b/src/H5G.c
index fb0a946..ac71c5c 100644
--- a/src/H5G.c
+++ b/src/H5G.c
@@ -463,7 +463,7 @@ H5Gopen2(hid_t loc_id, const char *name, hid_t gapl_id)
             HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not group access property list")
 
     /* Open the group */
-    if((grp = H5G__open_name(&loc, name, gapl_id, H5AC_dxpl_id)) == NULL)
+    if((grp = H5G__open_name(&loc, name, gapl_id, H5AC_ind_dxpl_id)) == NULL)
         HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group")
 
     /* Register an ID for the group */
diff --git a/src/H5Gbtree2.c b/src/H5Gbtree2.c
index bee3fe4..8d37940 100644
--- a/src/H5Gbtree2.c
+++ b/src/H5Gbtree2.c
@@ -161,7 +161,7 @@ const H5B2_class_t H5G_BT2_CORDER[1]={{ /* B-tree class information */
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_fh_name_cmp(const void *obj, size_t UNUSED obj_len, void *_udata)
+H5G_dense_fh_name_cmp(const void *obj, size_t H5_ATTR_UNUSED obj_len, void *_udata)
 {
     H5G_fh_ud_cmp_t *udata = (H5G_fh_ud_cmp_t *)_udata;         /* User data for 'op' callback */
     H5O_link_t *lnk;    /* Pointer to link created from heap object */
@@ -306,7 +306,7 @@ for(u = 0; u < H5G_DENSE_FHEAP_ID_LEN; u++)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_btree2_name_encode(uint8_t *raw, const void *_nrecord, void UNUSED *ctx)
+H5G_dense_btree2_name_encode(uint8_t *raw, const void *_nrecord, void H5_ATTR_UNUSED *ctx)
 {
     const H5G_dense_bt2_name_rec_t *nrecord = (const H5G_dense_bt2_name_rec_t *)_nrecord;
 
@@ -334,7 +334,7 @@ H5G_dense_btree2_name_encode(uint8_t *raw, const void *_nrecord, void UNUSED *ct
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_btree2_name_decode(const uint8_t *raw, void *_nrecord, void UNUSED *ctx)
+H5G_dense_btree2_name_decode(const uint8_t *raw, void *_nrecord, void H5_ATTR_UNUSED *ctx)
 {
     H5G_dense_bt2_name_rec_t *nrecord = (H5G_dense_bt2_name_rec_t *)_nrecord;
 
@@ -362,9 +362,9 @@ H5G_dense_btree2_name_decode(const uint8_t *raw, void *_nrecord, void UNUSED *ct
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_btree2_name_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
+H5G_dense_btree2_name_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
     int indent, int fwidth, const void *_nrecord,
-    const void UNUSED *_udata)
+    const void H5_ATTR_UNUSED *_udata)
 {
     const H5G_dense_bt2_name_rec_t *nrecord = (const H5G_dense_bt2_name_rec_t *)_nrecord;
     unsigned u;                 /* Local index variable */
@@ -472,7 +472,7 @@ for(u = 0; u < H5G_DENSE_FHEAP_ID_LEN; u++)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_btree2_corder_encode(uint8_t *raw, const void *_nrecord, void UNUSED *ctx)
+H5G_dense_btree2_corder_encode(uint8_t *raw, const void *_nrecord, void H5_ATTR_UNUSED *ctx)
 {
     const H5G_dense_bt2_corder_rec_t *nrecord = (const H5G_dense_bt2_corder_rec_t *)_nrecord;
 
@@ -500,7 +500,7 @@ H5G_dense_btree2_corder_encode(uint8_t *raw, const void *_nrecord, void UNUSED *
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_btree2_corder_decode(const uint8_t *raw, void *_nrecord, void UNUSED *ctx)
+H5G_dense_btree2_corder_decode(const uint8_t *raw, void *_nrecord, void H5_ATTR_UNUSED *ctx)
 {
     H5G_dense_bt2_corder_rec_t *nrecord = (H5G_dense_bt2_corder_rec_t *)_nrecord;
 
@@ -528,9 +528,9 @@ H5G_dense_btree2_corder_decode(const uint8_t *raw, void *_nrecord, void UNUSED *
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_btree2_corder_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
+H5G_dense_btree2_corder_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
     int indent, int fwidth, const void *_nrecord,
-    const void UNUSED *_udata)
+    const void H5_ATTR_UNUSED *_udata)
 {
     const H5G_dense_bt2_corder_rec_t *nrecord = (const H5G_dense_bt2_corder_rec_t *)_nrecord;
     unsigned u;                 /* Local index variable */
diff --git a/src/H5Gcache.c b/src/H5Gcache.c
index 575b27a..a42127b 100644
--- a/src/H5Gcache.c
+++ b/src/H5Gcache.c
@@ -212,7 +212,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_node_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5G_node_t *sym, unsigned UNUSED * flags_ptr)
+H5G_node_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5G_node_t *sym, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     H5WB_t     *wb = NULL;     /* Wrapped buffer for node data */
     uint8_t     node_buf[H5G_NODE_BUF_SIZE]; /* Buffer for node */
@@ -393,7 +393,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_node_size(const H5F_t UNUSED *f, const H5G_node_t *sym, size_t *size_ptr)
+H5G_node_size(const H5F_t H5_ATTR_UNUSED *f, const H5G_node_t *sym, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
diff --git a/src/H5Gcompact.c b/src/H5Gcompact.c
index e4de283..89e79cc 100644
--- a/src/H5Gcompact.c
+++ b/src/H5Gcompact.c
@@ -83,7 +83,7 @@ static herr_t H5G_compact_build_table(const H5O_loc_t *oloc, hid_t dxpl_id,
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_compact_build_table_cb(const void *_mesg, unsigned UNUSED idx, void *_udata)
+H5G_compact_build_table_cb(const void *_mesg, unsigned H5_ATTR_UNUSED idx, void *_udata)
 {
     const H5O_link_t *lnk = (const H5O_link_t *)_mesg;  /* Pointer to link */
     H5G_iter_bt_t *udata = (H5G_iter_bt_t *)_udata;     /* 'User data' passed in */
@@ -274,7 +274,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_compact_remove_common_cb(const void *_mesg, unsigned UNUSED idx, void *_udata)
+H5G_compact_remove_common_cb(const void *_mesg, unsigned H5_ATTR_UNUSED idx, void *_udata)
 {
     const H5O_link_t *lnk = (const H5O_link_t *)_mesg;  /* Pointer to link */
     H5G_iter_rm_t *udata = (H5G_iter_rm_t *)_udata;     /* 'User data' passed in */
@@ -452,7 +452,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_compact_lookup_cb(const void *_mesg, unsigned UNUSED idx, void *_udata)
+H5G_compact_lookup_cb(const void *_mesg, unsigned H5_ATTR_UNUSED idx, void *_udata)
 {
     const H5O_link_t *lnk = (const H5O_link_t *)_mesg;  /* Pointer to link */
     H5G_iter_lkp_t *udata = (H5G_iter_lkp_t *)_udata;     /* 'User data' passed in */
diff --git a/src/H5Gdense.c b/src/H5Gdense.c
index 841b4d3..285355f 100644
--- a/src/H5Gdense.c
+++ b/src/H5Gdense.c
@@ -599,7 +599,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_lookup_by_idx_fh_cb(const void *obj, size_t UNUSED obj_len, void *_udata)
+H5G_dense_lookup_by_idx_fh_cb(const void *obj, size_t H5_ATTR_UNUSED obj_len, void *_udata)
 {
     H5G_fh_ud_lbi_t *udata = (H5G_fh_ud_lbi_t *)_udata;       /* User data for fractal heap 'op' callback */
     H5O_link_t *tmp_lnk = NULL;         /* Temporary pointer to link */
@@ -889,7 +889,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_iterate_fh_cb(const void *obj, size_t UNUSED obj_len, void *_udata)
+H5G_dense_iterate_fh_cb(const void *obj, size_t H5_ATTR_UNUSED obj_len, void *_udata)
 {
     H5G_fh_ud_it_t *udata = (H5G_fh_ud_it_t *)_udata;       /* User data for fractal heap 'op' callback */
     herr_t ret_value = SUCCEED;   /* Return value */
@@ -1101,7 +1101,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_get_name_by_idx_fh_cb(const void *obj, size_t UNUSED obj_len, void *_udata)
+H5G_dense_get_name_by_idx_fh_cb(const void *obj, size_t H5_ATTR_UNUSED obj_len, void *_udata)
 {
     H5G_fh_ud_gnbi_t *udata = (H5G_fh_ud_gnbi_t *)_udata;       /* User data for fractal heap 'op' callback */
     H5O_link_t *lnk;            /* Pointer to link created from heap object */
@@ -1308,7 +1308,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_remove_fh_cb(const void *obj, size_t UNUSED obj_len, void *_udata)
+H5G_dense_remove_fh_cb(const void *obj, size_t H5_ATTR_UNUSED obj_len, void *_udata)
 {
     H5G_fh_ud_rm_t *udata = (H5G_fh_ud_rm_t *)_udata;       /* User data for fractal heap 'op' callback */
     H5O_link_t *lnk = NULL;             /* Pointer to link created from heap object */
@@ -1485,7 +1485,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_dense_remove_by_idx_fh_cb(const void *obj, size_t UNUSED obj_len, void *_udata)
+H5G_dense_remove_by_idx_fh_cb(const void *obj, size_t H5_ATTR_UNUSED obj_len, void *_udata)
 {
     H5G_fh_ud_rmbi_t *udata = (H5G_fh_ud_rmbi_t *)_udata;       /* User data for fractal heap 'op' callback */
     herr_t ret_value = SUCCEED; /* Return value */
diff --git a/src/H5Gdeprec.c b/src/H5Gdeprec.c
index df691f4..0927219 100644
--- a/src/H5Gdeprec.c
+++ b/src/H5Gdeprec.c
@@ -261,7 +261,7 @@ H5Gcreate1(hid_t loc_id, const char *name, size_t size_hint)
             HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get group info")
 
         /* Set the non-default local heap size hint */
-        H5_ASSIGN_OVERFLOW(ginfo.lheap_size_hint, size_hint, size_t, uint32_t);
+        H5_CHECKED_ASSIGN(ginfo.lheap_size_hint, uint32_t, size_hint, size_t);
         if(H5P_set(gc_plist, H5G_CRT_GROUP_INFO_NAME, &ginfo) < 0)
             HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set group info")
     } /* end if */
@@ -322,7 +322,7 @@ H5Gopen1(hid_t loc_id, const char *name)
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
 
     /* Open the group */
-    if((grp = H5G__open_name(&loc, name, H5P_DEFAULT, H5AC_dxpl_id)) == NULL)
+    if((grp = H5G__open_name(&loc, name, H5P_DEFAULT, H5AC_ind_dxpl_id)) == NULL)
         HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open group")
 
     /* Register an atom for the group */
@@ -917,7 +917,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_get_objinfo_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char *name, const H5O_link_t *lnk,
+H5G_get_objinfo_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char *name, const H5O_link_t *lnk,
     H5G_loc_t *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
 {
     H5G_trav_goi_t *udata = (H5G_trav_goi_t *)_udata;   /* User data passed in */
diff --git a/src/H5Gint.c b/src/H5Gint.c
index 6f42cc2..04b21a5 100644
--- a/src/H5Gint.c
+++ b/src/H5Gint.c
@@ -869,7 +869,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_free_visit_visited(void *item, void UNUSED *key, void UNUSED *operator_data/*in,out*/)
+H5G_free_visit_visited(void *item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *operator_data/*in,out*/)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
diff --git a/src/H5Glink.c b/src/H5Glink.c
index f934052..8b258b5 100644
--- a/src/H5Glink.c
+++ b/src/H5Glink.c
@@ -467,7 +467,7 @@ H5G__link_iterate_table(const H5G_link_table_t *ltable, hsize_t skip,
         *last_lnk += skip;
 
     /* Iterate over link messages */
-    H5_ASSIGN_OVERFLOW(/* To: */ u, /* From: */ skip, /* From: */ hsize_t, /* To: */ size_t)
+    H5_CHECKED_ASSIGN(u, size_t, skip, hsize_t)
     for(; u < ltable->nlinks && !ret_value; u++) {
         /* Make the callback */
         ret_value = (op)(&(ltable->lnks[u]), op_data);
diff --git a/src/H5Gloc.c b/src/H5Gloc.c
index 9f0095a..677cc25 100644
--- a/src/H5Gloc.c
+++ b/src/H5Gloc.c
@@ -371,8 +371,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_loc_find_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+H5G_loc_find_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char *name,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5G_loc_fnd_t *udata = (H5G_loc_fnd_t *)_udata;   /* User data passed in */
@@ -448,8 +448,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_loc_find_by_idx_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+H5G_loc_find_by_idx_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5G_loc_fbi_t *udata = (H5G_loc_fbi_t *)_udata;   /* User data passed in */
@@ -607,8 +607,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_loc_exists_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+H5G_loc_exists_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5G_loc_exists_t *udata = (H5G_loc_exists_t *)_udata;   /* User data passed in */
@@ -685,7 +685,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_loc_info_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, const H5O_link_t UNUSED *lnk,
+H5G_loc_info_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name, const H5O_link_t H5_ATTR_UNUSED *lnk,
     H5G_loc_t *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
 {
     H5G_loc_info_t *udata = (H5G_loc_info_t *)_udata;   /* User data passed in */
@@ -764,7 +764,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_loc_set_comment_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, const H5O_link_t UNUSED *lnk,
+H5G_loc_set_comment_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name, const H5O_link_t H5_ATTR_UNUSED *lnk,
     H5G_loc_t *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
 {
     H5G_loc_sc_t *udata = (H5G_loc_sc_t *)_udata;   /* User data passed in */
@@ -856,7 +856,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_loc_get_comment_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, const H5O_link_t UNUSED *lnk,
+H5G_loc_get_comment_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name, const H5O_link_t H5_ATTR_UNUSED *lnk,
     H5G_loc_t *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
 {
     H5G_loc_gc_t *udata = (H5G_loc_gc_t *)_udata;   /* User data passed in */
diff --git a/src/H5Gnode.c b/src/H5Gnode.c
index be339c4..e6ec886 100644
--- a/src/H5Gnode.c
+++ b/src/H5Gnode.c
@@ -157,7 +157,7 @@ H5FL_SEQ_DEFINE(H5G_entry_t);
  *-------------------------------------------------------------------------
  */
 static H5RC_t *
-H5G_node_get_shared(const H5F_t *f, const void UNUSED *_udata)
+H5G_node_get_shared(const H5F_t *f, const void H5_ATTR_UNUSED *_udata)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -323,8 +323,8 @@ H5G__node_free(H5G_node_t *sym)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_node_create(H5F_t *f, hid_t dxpl_id, H5B_ins_t UNUSED op, void *_lt_key,
-		void UNUSED *_udata, void *_rt_key, haddr_t *addr_p/*out*/)
+H5G_node_create(H5F_t *f, hid_t dxpl_id, H5B_ins_t H5_ATTR_UNUSED op, void *_lt_key,
+		void H5_ATTR_UNUSED *_udata, void *_rt_key, haddr_t *addr_p/*out*/)
 {
     H5G_node_key_t	*lt_key = (H5G_node_key_t *)_lt_key;
     H5G_node_key_t	*rt_key = (H5G_node_key_t *)_rt_key;
@@ -518,7 +518,7 @@ H5G_node_cmp3(void *_lt_key, void *_udata, void *_rt_key)
  *-------------------------------------------------------------------------
  */
 static htri_t
-H5G_node_found(H5F_t *f, hid_t dxpl_id, haddr_t addr, const void UNUSED *_lt_key,
+H5G_node_found(H5F_t *f, hid_t dxpl_id, haddr_t addr, const void H5_ATTR_UNUSED *_lt_key,
     void *_udata)
 {
     H5G_bt_lkp_t	*udata = (H5G_bt_lkp_t *)_udata;
@@ -614,7 +614,7 @@ done:
  */
 static H5B_ins_t
 H5G_node_insert(H5F_t *f, hid_t dxpl_id, haddr_t addr,
-    void UNUSED *_lt_key, hbool_t UNUSED *lt_key_changed,
+    void H5_ATTR_UNUSED *_lt_key, hbool_t H5_ATTR_UNUSED *lt_key_changed,
     void *_md_key, void *_udata,
     void *_rt_key, hbool_t *rt_key_changed,
     haddr_t *new_node_p)
@@ -785,7 +785,7 @@ done:
  */
 static H5B_ins_t
 H5G_node_remove(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_lt_key/*in,out*/,
-		hbool_t UNUSED *lt_key_changed/*out*/,
+		hbool_t H5_ATTR_UNUSED *lt_key_changed/*out*/,
 		void *_udata/*in,out*/, void *_rt_key/*in,out*/,
 		hbool_t *rt_key_changed/*out*/)
 {
@@ -982,8 +982,8 @@ done:
  *-------------------------------------------------------------------------
  */
 int
-H5G__node_iterate(H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t addr,
-    const void UNUSED *_rt_key, void *_udata)
+H5G__node_iterate(H5F_t *f, hid_t dxpl_id, const void H5_ATTR_UNUSED *_lt_key, haddr_t addr,
+    const void H5_ATTR_UNUSED *_rt_key, void *_udata)
 {
     H5G_bt_it_it_t	*udata = (H5G_bt_it_it_t *)_udata;
     H5G_node_t		*sn = NULL;
@@ -1061,8 +1061,8 @@ done:
  *-------------------------------------------------------------------------
  */
 int
-H5G__node_sumup(H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t addr,
-		  const void UNUSED *_rt_key, void *_udata)
+H5G__node_sumup(H5F_t *f, hid_t dxpl_id, const void H5_ATTR_UNUSED *_lt_key, haddr_t addr,
+		  const void H5_ATTR_UNUSED *_rt_key, void *_udata)
 {
     hsize_t	        *num_objs = (hsize_t *)_udata;
     H5G_node_t		*sn = NULL;
@@ -1106,8 +1106,8 @@ done:
  *-------------------------------------------------------------------------
  */
 int
-H5G__node_by_idx(H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t addr,
-		  const void UNUSED *_rt_key, void *_udata)
+H5G__node_by_idx(H5F_t *f, hid_t dxpl_id, const void H5_ATTR_UNUSED *_lt_key, haddr_t addr,
+		  const void H5_ATTR_UNUSED *_rt_key, void *_udata)
 {
     H5G_bt_it_idx_common_t	*udata = (H5G_bt_it_idx_common_t *)_udata;
     H5G_node_t		*sn = NULL;
@@ -1242,8 +1242,8 @@ H5G_node_close(const H5F_t *f)
  *-------------------------------------------------------------------------
  */
 int
-H5G__node_copy(H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t addr,
-		  const void UNUSED *_rt_key, void *_udata)
+H5G__node_copy(H5F_t *f, hid_t dxpl_id, const void H5_ATTR_UNUSED *_lt_key, haddr_t addr,
+		  const void H5_ATTR_UNUSED *_rt_key, void *_udata)
 {
     H5G_bt_it_cpy_t     *udata = (H5G_bt_it_cpy_t *)_udata;
     const H5O_loc_t     *src_oloc = udata->src_oloc;
@@ -1392,8 +1392,8 @@ done:
  *-------------------------------------------------------------------------
  */
 int
-H5G__node_build_table(H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t addr,
-    const void UNUSED *_rt_key, void *_udata)
+H5G__node_build_table(H5F_t *f, hid_t dxpl_id, const void H5_ATTR_UNUSED *_lt_key, haddr_t addr,
+    const void H5_ATTR_UNUSED *_rt_key, void *_udata)
 {
     H5G_bt_it_bt_t	*udata = (H5G_bt_it_bt_t *)_udata;
     H5G_node_t		*sn = NULL;             /* Symbol table node */
@@ -1467,8 +1467,8 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5G__node_iterate_size(H5F_t *f, hid_t UNUSED dxpl_id, const void UNUSED *_lt_key, haddr_t UNUSED addr,
-    const void UNUSED *_rt_key, void *_udata)
+H5G__node_iterate_size(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, const void H5_ATTR_UNUSED *_lt_key, haddr_t H5_ATTR_UNUSED addr,
+    const void H5_ATTR_UNUSED *_rt_key, void *_udata)
 {
     hsize_t     *stab_size = (hsize_t *)_udata;         /* User data */
 
diff --git a/src/H5Gobj.c b/src/H5Gobj.c
index e183a9b..f9ef67d 100644
--- a/src/H5Gobj.c
+++ b/src/H5Gobj.c
@@ -381,7 +381,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_obj_compact_to_dense_cb(const void *_mesg, unsigned UNUSED idx, void *_udata)
+H5G_obj_compact_to_dense_cb(const void *_mesg, unsigned H5_ATTR_UNUSED idx, void *_udata)
 {
     const H5O_link_t *lnk = (const H5O_link_t *)_mesg;  /* Pointer to link */
     H5G_obj_oh_it_ud1_t *udata = (H5G_obj_oh_it_ud1_t *)_udata;     /* 'User data' passed in */
diff --git a/src/H5Goh.c b/src/H5Goh.c
index fbf72bd..7b63e52 100644
--- a/src/H5Goh.c
+++ b/src/H5Goh.c
@@ -210,7 +210,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static hid_t
-H5O_group_open(const H5G_loc_t *obj_loc, hid_t UNUSED lapl_id, hid_t dxpl_id, hbool_t app_ref)
+H5O_group_open(const H5G_loc_t *obj_loc, hid_t H5_ATTR_UNUSED lapl_id, hid_t dxpl_id, hbool_t app_ref)
 {
     H5G_t       *grp = NULL;            /* Group opened */
     hid_t	ret_value;              /* Return value */
diff --git a/src/H5Gtest.c b/src/H5Gtest.c
index 9b05102..cc89f60 100644
--- a/src/H5Gtest.c
+++ b/src/H5Gtest.c
@@ -97,6 +97,7 @@ H5G__is_empty_test(hid_t gid)
     H5G_t *grp = NULL;          /* Pointer to group */
     htri_t msg_exists = FALSE;  /* Indicate that a header message is present */
     htri_t linfo_exists = FALSE;/* Indicate that the 'link info' message is present */
+    hid_t dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     htri_t ret_value = TRUE;    /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -108,11 +109,11 @@ H5G__is_empty_test(hid_t gid)
     /* "New format" checks */
 
     /* Check if the group has any link messages */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists > 0) {
         /* Sanity check that new group format shouldn't have old messages */
-        if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0)
+        if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0)
             HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
         if(msg_exists > 0)
             HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found")
@@ -121,19 +122,19 @@ H5G__is_empty_test(hid_t gid)
     } /* end if */
 
     /* Check for a link info message */
-    if((linfo_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, H5AC_dxpl_id)) < 0)
+    if((linfo_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(linfo_exists > 0) {
         H5O_linfo_t linfo;		/* Link info message */
 
         /* Sanity check that new group format shouldn't have old messages */
-        if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0)
+        if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0)
             HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
         if(msg_exists > 0)
             HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link info messages found")
 
         /* Get the link info */
-        if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0)
+        if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0)
             HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info")
 
         /* Check for 'dense' link storage file addresses being defined */
@@ -152,7 +153,7 @@ H5G__is_empty_test(hid_t gid)
     /* "Old format" checks */
 
     /* Check if the group has a symbol table message */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists > 0) {
         H5O_stab_t stab;        /* Info about local heap & B-tree */
@@ -161,17 +162,17 @@ H5G__is_empty_test(hid_t gid)
         /* Sanity check that old group format shouldn't have new messages */
         if(linfo_exists > 0)
             HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link info messages found")
-        if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_GINFO_ID, H5AC_dxpl_id)) < 0)
+        if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_GINFO_ID, dxpl_id)) < 0)
             HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
         if(msg_exists > 0)
             HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and group info messages found")
 
         /* Get the B-tree & local heap info */
-        if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_dxpl_id))
+        if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id))
             HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "unable to read symbol table message")
 
         /* Get the count of links in the group */
-        if(H5G__stab_count(&(grp->oloc), &nlinks, H5AC_dxpl_id) < 0)
+        if(H5G__stab_count(&(grp->oloc), &nlinks, dxpl_id) < 0)
             HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "unable to count links")
 
         /* Check for link count */
@@ -208,6 +209,7 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs)
 {
     H5G_t *grp = NULL;          /* Pointer to group */
     htri_t msg_exists = 0;      /* Indicate that a header message is present */
+    hid_t dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     htri_t ret_value = TRUE;    /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -217,13 +219,13 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs)
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group")
 
     /* Check if the group has any link messages */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists == 0)
         HGOTO_DONE(FALSE)
 
     /* Check if the group has a symbol table message */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists > 0)
 	HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found")
@@ -233,7 +235,7 @@ H5G__has_links_test(hid_t gid, unsigned *nmsgs)
         int msg_count;     /* Number of messages of a type */
 
         /* Check how many link messages there are */
-        if((msg_count = H5O_msg_count(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0)
+        if((msg_count = H5O_msg_count(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0)
             HGOTO_ERROR(H5E_SYM, H5E_CANTCOUNT, FAIL, "unable to count link messages")
         *nmsgs = (unsigned)msg_count;
     } /* end if */
@@ -266,6 +268,7 @@ H5G__has_stab_test(hid_t gid)
 {
     H5G_t *grp = NULL;          /* Pointer to group */
     htri_t msg_exists = 0;      /* Indicate that a header message is present */
+    hid_t dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     htri_t ret_value = TRUE;    /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -275,13 +278,13 @@ H5G__has_stab_test(hid_t gid)
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group")
 
     /* Check if the group has a symbol table message */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists == 0)
         HGOTO_DONE(FALSE)
 
     /* Check if the group has any link messages */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists > 0)
 	HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "both symbol table and link messages found")
@@ -316,6 +319,7 @@ H5G__is_new_dense_test(hid_t gid)
 {
     H5G_t *grp = NULL;          /* Pointer to group */
     htri_t msg_exists = 0;      /* Indicate that a header message is present */
+    hid_t dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     htri_t ret_value = TRUE;    /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -325,25 +329,25 @@ H5G__is_new_dense_test(hid_t gid)
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group")
 
     /* Check if the group has a symbol table message */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists > 0)
         HGOTO_DONE(FALSE)
 
     /* Check if the group has any link messages */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINK_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists > 0)
         HGOTO_DONE(FALSE)
 
     /* Check if the group has link info message */
-    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, H5AC_dxpl_id)) < 0)
+    if((msg_exists = H5O_msg_exists(&(grp->oloc), H5O_LINFO_ID, dxpl_id)) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
     if(msg_exists > 0) {
         H5O_linfo_t linfo;		/* Link info message */
 
         /* Get the link info */
-        if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0)
+        if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0)
             HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info")
 
         /* Check for 'dense' link storage file addresses being defined */
@@ -386,6 +390,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count)
     H5B2_t *bt2_corder = NULL;  /* v2 B-tree handle for creation order index */
     H5O_linfo_t linfo;		/* Link info message */
     H5G_t *grp = NULL;          /* Pointer to group */
+    hid_t dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     herr_t ret_value = SUCCEED; /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -395,7 +400,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count)
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group")
 
     /* Get the link info */
-    if(H5G__obj_get_linfo(&(grp->oloc), &linfo, H5AC_dxpl_id) < 0)
+    if(H5G__obj_get_linfo(&(grp->oloc), &linfo, dxpl_id) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link info")
 
     /* Check for 'dense' link storage file addresses being defined */
@@ -405,7 +410,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count)
         HGOTO_DONE(FAIL)
 
     /* Open the name index v2 B-tree */
-    if(NULL == (bt2_name = H5B2_open(grp->oloc.file, H5AC_dxpl_id, linfo.name_bt2_addr, NULL)))
+    if(NULL == (bt2_name = H5B2_open(grp->oloc.file, dxpl_id, linfo.name_bt2_addr, NULL)))
         HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for name index")
 
     /* Retrieve # of records in name index */
@@ -415,7 +420,7 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count)
     /* Check if there is a creation order index */
     if(H5F_addr_defined(linfo.corder_bt2_addr)) {
         /* Open the creation order index v2 B-tree */
-        if(NULL == (bt2_corder = H5B2_open(grp->oloc.file, H5AC_dxpl_id, linfo.corder_bt2_addr, NULL)))
+        if(NULL == (bt2_corder = H5B2_open(grp->oloc.file, dxpl_id, linfo.corder_bt2_addr, NULL)))
             HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open v2 B-tree for creation order index")
 
         /* Retrieve # of records in creation order index */
@@ -427,9 +432,9 @@ H5G__new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *corder_count)
 
 done:
     /* Release resources */
-    if(bt2_name && H5B2_close(bt2_name, H5AC_dxpl_id) < 0)
+    if(bt2_name && H5B2_close(bt2_name, dxpl_id) < 0)
         HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for name index")
-    if(bt2_corder && H5B2_close(bt2_corder, H5AC_dxpl_id) < 0)
+    if(bt2_corder && H5B2_close(bt2_corder, dxpl_id) < 0)
         HDONE_ERROR(H5E_SYM, H5E_CANTCLOSEOBJ, FAIL, "can't close v2 B-tree for creation order index")
 
     FUNC_LEAVE_NOAPI(ret_value)
@@ -459,7 +464,8 @@ herr_t
 H5G__lheap_size_test(hid_t gid, size_t *lheap_size)
 {
     H5G_t *grp = NULL;          /* Pointer to group */
-    H5O_stab_t stab;		/* Symbol table message		*/
+    H5O_stab_t stab;		/* Symbol table message	*/
+    hid_t dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     herr_t ret_value = SUCCEED; /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -469,11 +475,11 @@ H5G__lheap_size_test(hid_t gid, size_t *lheap_size)
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group")
 
     /* Make certain the group has a symbol table message */
-    if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_dxpl_id))
+    if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id))
 	HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read symbol table message")
 
     /* Check the size of the local heap for the group */
-    if(H5HL_get_size(grp->oloc.file, H5AC_dxpl_id, stab.heap_addr, lheap_size) < 0)
+    if(H5HL_get_size(grp->oloc.file, dxpl_id, stab.heap_addr, lheap_size) < 0)
 	HGOTO_ERROR(H5E_SYM, H5E_CANTGETSIZE, FAIL, "can't query local heap size")
 
 done:
@@ -601,6 +607,7 @@ H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent)
 {
     H5O_stab_t  stab;                   /* Symbol table */
     H5HL_t      *heap = NULL;           /* Pointer to local heap */
+    hid_t dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     herr_t	ret_value = SUCCEED;    /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -610,7 +617,7 @@ H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent)
         HGOTO_ERROR(H5E_SYM, H5E_BADTYPE, FAIL, "symbol table information is not cached")
 
     /* Read the symbol table message from the group */
-    if(NULL == H5O_msg_read(grp_oloc, H5O_STAB_ID, &stab, H5AC_ind_dxpl_id))
+    if(NULL == H5O_msg_read(grp_oloc, H5O_STAB_ID, &stab, dxpl_id))
         HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "unable to read symbol table message")
 
     /* Verify that the cached symbol table info matches the symbol table message
@@ -620,11 +627,11 @@ H5G__verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent)
         HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "cached stab info does not match object header")
 
     /* Verify that the btree address is valid */
-    if(H5B_valid(grp_oloc->file, H5AC_ind_dxpl_id, H5B_SNODE, stab.btree_addr) < 0)
+    if(H5B_valid(grp_oloc->file, dxpl_id, H5B_SNODE, stab.btree_addr) < 0)
         HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "b-tree address is invalid")
 
     /* Verify that the heap address is valid */
-    if(NULL == (heap = H5HL_protect(grp_oloc->file, H5AC_ind_dxpl_id, stab.heap_addr, H5AC_READ)))
+    if(NULL == (heap = H5HL_protect(grp_oloc->file, dxpl_id, stab.heap_addr, H5AC_READ)))
         HGOTO_ERROR(H5E_HEAP, H5E_NOTFOUND, FAIL, "heap address is invalid")
 
 done:
@@ -653,8 +660,8 @@ done:
  */
 static int
 H5G_verify_cached_stabs_test_cb(H5F_t *f, hid_t dxpl_id,
-    const void UNUSED *_lt_key, haddr_t addr, const void UNUSED *_rt_key,
-    void UNUSED *udata)
+    const void H5_ATTR_UNUSED *_lt_key, haddr_t addr, const void H5_ATTR_UNUSED *_rt_key,
+    void H5_ATTR_UNUSED *udata)
 {
     H5G_node_t          *sn = NULL;
     H5O_loc_t           targ_oloc;
@@ -756,6 +763,7 @@ H5G__verify_cached_stabs_test(hid_t gid)
     htri_t              stab_exists;
     H5O_stab_t          stab;                   /* Symbol table message */
     H5G_bt_common_t     udata = {NULL, NULL};   /* Dummy udata so H5B_iterate doesn't freak out */
+    hid_t               dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     herr_t              ret_value = SUCCEED;    /* Return value */
 
     FUNC_ENTER_PACKAGE
@@ -770,7 +778,7 @@ H5G__verify_cached_stabs_test(hid_t gid)
     /* Check for group having a symbol table message */
     /* Check for the group having a group info message */
     if((stab_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID,
-            H5AC_ind_dxpl_id)) < 0)
+            dxpl_id)) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
 
     /* No need to check anything if the symbol table doesn't exist */
@@ -778,11 +786,11 @@ H5G__verify_cached_stabs_test(hid_t gid)
         HGOTO_DONE(SUCCEED);
 
     /* Read the stab */
-    if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_ind_dxpl_id))
+    if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, dxpl_id))
         HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get symbol table info")
 
     /* Iterate over the b-tree, checking validity of cached information */
-    if((ret_value = H5B_iterate(grp->oloc.file, H5AC_ind_dxpl_id, H5B_SNODE,
+    if((ret_value = H5B_iterate(grp->oloc.file, dxpl_id, H5B_SNODE,
             stab.btree_addr, H5G_verify_cached_stabs_test_cb, &udata)) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_CANTNEXT, FAIL, "iteration operator failed");
 
diff --git a/src/H5Gtraverse.c b/src/H5Gtraverse.c
index dfe5172..87d6d2b 100644
--- a/src/H5Gtraverse.c
+++ b/src/H5Gtraverse.c
@@ -119,8 +119,8 @@ static herr_t H5G_traverse_real(const H5G_loc_t *loc, const char *name,
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5G_traverse_slink_cb(H5G_loc_t UNUSED *grp_loc, const char UNUSED *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+H5G_traverse_slink_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5G_trav_slink_t *udata = (H5G_trav_slink_t *)_udata;   /* User data passed in */
diff --git a/src/H5HF.c b/src/H5HF.c
index 3edc26f..2c32b71 100644
--- a/src/H5HF.c
+++ b/src/H5HF.c
@@ -557,7 +557,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5HF_write(H5HF_t *fh, hid_t dxpl_id, void *_id, hbool_t UNUSED *id_changed,
+H5HF_write(H5HF_t *fh, hid_t dxpl_id, void *_id, hbool_t H5_ATTR_UNUSED *id_changed,
     const void *obj)
 {
     uint8_t *id = (uint8_t *)_id;       /* Object ID */
diff --git a/src/H5HFbtree2.c b/src/H5HFbtree2.c
index 34b74d7..0229ebe 100644
--- a/src/H5HFbtree2.c
+++ b/src/H5HFbtree2.c
@@ -278,7 +278,7 @@ H5HF_huge_bt2_dst_context(void *_ctx)
  *-------------------------------------------------------------------------
  */
 static void *
-H5HF_huge_bt2_crt_dbg_context(H5F_t *f, hid_t UNUSED dxpl_id, haddr_t UNUSED addr)
+H5HF_huge_bt2_crt_dbg_context(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t H5_ATTR_UNUSED addr)
 {
     H5HF_huge_bt2_ctx_t *ctx;   /* Callback context structure */
     void *ret_value;            /* Return value */
@@ -505,9 +505,9 @@ H5HF_huge_bt2_indir_decode(const uint8_t *raw, void *_nrecord, void *_ctx)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_huge_bt2_indir_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
+H5HF_huge_bt2_indir_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
     int indent, int fwidth, const void *_nrecord,
-    const void UNUSED *_udata)
+    const void H5_ATTR_UNUSED *_udata)
 {
     const H5HF_huge_bt2_indir_rec_t *nrecord = (const H5HF_huge_bt2_indir_rec_t *)_nrecord;
 
@@ -727,9 +727,9 @@ H5HF_huge_bt2_filt_indir_decode(const uint8_t *raw, void *_nrecord, void *_ctx)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_huge_bt2_filt_indir_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
+H5HF_huge_bt2_filt_indir_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
     int indent, int fwidth, const void *_nrecord,
-    const void UNUSED *_udata)
+    const void H5_ATTR_UNUSED *_udata)
 {
     const H5HF_huge_bt2_filt_indir_rec_t *nrecord = (const H5HF_huge_bt2_filt_indir_rec_t *)_nrecord;
 
@@ -920,9 +920,9 @@ H5HF_huge_bt2_dir_decode(const uint8_t *raw, void *_nrecord, void *_ctx)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_huge_bt2_dir_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
+H5HF_huge_bt2_dir_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
     int indent, int fwidth, const void *_nrecord,
-    const void UNUSED *_udata)
+    const void H5_ATTR_UNUSED *_udata)
 {
     const H5HF_huge_bt2_dir_rec_t *nrecord = (const H5HF_huge_bt2_dir_rec_t *)_nrecord;
 
@@ -1149,8 +1149,8 @@ H5HF_huge_bt2_filt_dir_decode(const uint8_t *raw, void *_nrecord, void *_ctx)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_huge_bt2_filt_dir_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
-    int indent, int fwidth, const void *_nrecord, const void UNUSED *_udata)
+H5HF_huge_bt2_filt_dir_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
+    int indent, int fwidth, const void *_nrecord, const void H5_ATTR_UNUSED *_udata)
 {
     const H5HF_huge_bt2_filt_dir_rec_t *nrecord = (const H5HF_huge_bt2_filt_dir_rec_t *)_nrecord;
 
diff --git a/src/H5HFcache.c b/src/H5HFcache.c
index 7f1cf12..8e1f838 100644
--- a/src/H5HFcache.c
+++ b/src/H5HFcache.c
@@ -80,17 +80,17 @@ static herr_t H5HF_dtable_decode(H5F_t *f, const uint8_t **pp, H5HF_dtable_t *dt
 
 /* Metadata cache (H5AC) callbacks */
 static H5HF_hdr_t *H5HF_cache_hdr_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5HF_cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_hdr_t *hdr, unsigned UNUSED * flags_ptr);
+static herr_t H5HF_cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_hdr_t *hdr, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5HF_cache_hdr_dest(H5F_t *f, H5HF_hdr_t *hdr);
 static herr_t H5HF_cache_hdr_clear(H5F_t *f, H5HF_hdr_t *hdr, hbool_t destroy);
 static herr_t H5HF_cache_hdr_size(const H5F_t *f, const H5HF_hdr_t *hdr, size_t *size_ptr);
 static H5HF_indirect_t *H5HF_cache_iblock_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5HF_cache_iblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_indirect_t *iblock, unsigned UNUSED * flags_ptr);
+static herr_t H5HF_cache_iblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_indirect_t *iblock, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5HF_cache_iblock_dest(H5F_t *f, H5HF_indirect_t *iblock);
 static herr_t H5HF_cache_iblock_clear(H5F_t *f, H5HF_indirect_t *iblock, hbool_t destroy);
 static herr_t H5HF_cache_iblock_size(const H5F_t *f, const H5HF_indirect_t *iblock, size_t *size_ptr);
 static H5HF_direct_t *H5HF_cache_dblock_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5HF_cache_dblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_direct_t *dblock, unsigned UNUSED * flags_ptr);
+static herr_t H5HF_cache_dblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_direct_t *dblock, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5HF_cache_dblock_dest(H5F_t *f, H5HF_direct_t *dblock);
 static herr_t H5HF_cache_dblock_clear(H5F_t *f, H5HF_direct_t *dblock, hbool_t destroy);
 static herr_t H5HF_cache_dblock_size(const H5F_t *f, const H5HF_direct_t *dblock, size_t *size_ptr);
@@ -448,7 +448,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_hdr_t *hdr, unsigned UNUSED * flags_ptr)
+H5HF_cache_hdr_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_hdr_t *hdr, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     H5WB_t *wb = NULL;                  /* Wrapped buffer for header data */
     uint8_t hdr_buf[H5HF_HDR_BUF_SIZE]; /* Buffer for header */
@@ -667,7 +667,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_cache_hdr_size(const H5F_t UNUSED *f, const H5HF_hdr_t *hdr, size_t *size_ptr)
+H5HF_cache_hdr_size(const H5F_t H5_ATTR_UNUSED *f, const H5HF_hdr_t *hdr, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -900,7 +900,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_cache_iblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_indirect_t *iblock, unsigned UNUSED * flags_ptr)
+H5HF_cache_iblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_indirect_t *iblock, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     H5WB_t      *wb = NULL;             /* Wrapped buffer for indirect block data */
     uint8_t     iblock_buf[H5HF_IBLOCK_BUF_SIZE]; /* Buffer for indirect block */
@@ -1177,7 +1177,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_cache_iblock_size(const H5F_t UNUSED *f, const H5HF_indirect_t *iblock, size_t *size_ptr)
+H5HF_cache_iblock_size(const H5F_t H5_ATTR_UNUSED *f, const H5HF_indirect_t *iblock, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -1385,7 +1385,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_cache_dblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_direct_t *dblock, unsigned UNUSED * flags_ptr)
+H5HF_cache_dblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HF_direct_t *dblock, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     herr_t      ret_value = SUCCEED;    /* Return value */
 
@@ -1749,7 +1749,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_cache_dblock_size(const H5F_t UNUSED *f, const H5HF_direct_t *dblock, size_t *size_ptr)
+H5HF_cache_dblock_size(const H5F_t H5_ATTR_UNUSED *f, const H5HF_direct_t *dblock, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
diff --git a/src/H5HFdbg.c b/src/H5HFdbg.c
index 1dc2f2e..41e317d 100644
--- a/src/H5HFdbg.c
+++ b/src/H5HFdbg.c
@@ -387,11 +387,11 @@ H5HF_dblock_debug_cb(H5FS_section_info_t *_sect, void *_udata)
         if(sect_start < dblock_start)
             start = 0;
         else
-            H5_ASSIGN_OVERFLOW(/* To: */ start, /* From: */ (sect_start - dblock_start), /* From: */ hsize_t, /* To: */ size_t)
+            H5_CHECKED_ASSIGN(start, size_t, (sect_start - dblock_start), hsize_t)
         if(sect_end > dblock_end)
-            H5_ASSIGN_OVERFLOW(/* To: */ end, /* From: */ udata->dblock_size, /* From: */ hsize_t, /* To: */ size_t)
+            H5_CHECKED_ASSIGN(end, size_t, udata->dblock_size, hsize_t)
         else
-            H5_ASSIGN_OVERFLOW(/* To: */ end, /* From: */ ((sect_end - dblock_start) + 1), /* From: */ hsize_t, /* To: */ size_t)
+            H5_CHECKED_ASSIGN(end, size_t, ((sect_end - dblock_start) + 1), hsize_t)
 
         /* Calculate the length */
         len = end - start;
diff --git a/src/H5HFdblock.c b/src/H5HFdblock.c
index 6ee7070..97a519a 100644
--- a/src/H5HFdblock.c
+++ b/src/H5HFdblock.c
@@ -131,7 +131,7 @@ H5HF_man_dblock_create(hid_t dxpl_id, H5HF_hdr_t *hdr, H5HF_indirect_t *par_iblo
         dblock->block_off = par_iblock->block_off;
         dblock->block_off += hdr->man_dtable.row_block_off[par_row];
         dblock->block_off += hdr->man_dtable.row_block_size[par_row] * (par_entry % hdr->man_dtable.cparam.width);
-        H5_ASSIGN_OVERFLOW(/* To: */ dblock->size, /* From: */ hdr->man_dtable.row_block_size[par_row], /* From: */ hsize_t, /* To: */ size_t);
+        H5_CHECKED_ASSIGN(dblock->size, size_t, hdr->man_dtable.row_block_size[par_row], hsize_t);
     } /* end if */
     else {
         /* Must be the root direct block */
@@ -397,7 +397,7 @@ H5HF_man_dblock_new(H5HF_hdr_t *hdr, hid_t dxpl_id, size_t request,
         if(H5HF_man_iter_curr(&hdr->next_block, &next_row, NULL, &next_entry, &iblock) < 0)
             HGOTO_ERROR(H5E_HEAP, H5E_CANTGET, FAIL, "unable to retrieve current block iterator location")
         HDassert(next_row < iblock->nrows);
-        H5_ASSIGN_OVERFLOW(/* To: */ next_size, /* From: */ hdr->man_dtable.row_block_size[next_row], /* From: */ hsize_t, /* To: */ size_t);
+        H5_CHECKED_ASSIGN(next_size, size_t, hdr->man_dtable.row_block_size[next_row], hsize_t);
 
         /* Check for skipping over blocks */
         if(min_dblock_size > next_size) {
diff --git a/src/H5HFdtable.c b/src/H5HFdtable.c
index 607862a..c523396 100644
--- a/src/H5HFdtable.c
+++ b/src/H5HFdtable.c
@@ -168,7 +168,7 @@ HDfprintf(stderr, "%s: off = %Hu\n", "H5HF_dtable_lookup", off);
     /* Check for offset in first row */
     if(off < dtable->num_id_first_row) {
         *row = 0;
-        H5_ASSIGN_OVERFLOW(/* To: */ *col, /* From: */ (off / dtable->cparam.start_block_size), /* From: */ hsize_t, /* To: */ unsigned);
+        H5_CHECKED_ASSIGN(*col, unsigned, (off / dtable->cparam.start_block_size), hsize_t);
     } /* end if */
     else {
         unsigned high_bit = H5VM_log2_gen(off);  /* Determine the high bit in the offset */
@@ -178,7 +178,7 @@ HDfprintf(stderr, "%s: off = %Hu\n", "H5HF_dtable_lookup", off);
 HDfprintf(stderr, "%s: high_bit = %u, off_mask = %Hu\n", "H5HF_dtable_lookup", high_bit, off_mask);
 #endif /* QAK */
         *row = (high_bit - dtable->first_row_bits) + 1;
-        H5_ASSIGN_OVERFLOW(/* To: */ *col, /* From: */ ((off - off_mask) / dtable->row_block_size[*row]), /* From: */ hsize_t, /* To: */ unsigned);
+        H5_CHECKED_ASSIGN(*col, unsigned, ((off - off_mask) / dtable->row_block_size[*row]), hsize_t);
     } /* end else */
 
     FUNC_LEAVE_NOAPI(SUCCEED)
diff --git a/src/H5HFhdr.c b/src/H5HFhdr.c
index d3c4473..cf8da23 100644
--- a/src/H5HFhdr.c
+++ b/src/H5HFhdr.c
@@ -262,7 +262,7 @@ H5HF_hdr_finish_init_phase2(H5HF_hdr_t *hdr)
         if(u < hdr->man_dtable.max_direct_rows) {
             hdr->man_dtable.row_tot_dblock_free[u] = hdr->man_dtable.row_block_size[u] -
                     H5HF_MAN_ABS_DIRECT_OVERHEAD(hdr);
-            H5_ASSIGN_OVERFLOW(/* To: */ hdr->man_dtable.row_max_dblock_free[u], /* From: */ hdr->man_dtable.row_tot_dblock_free[u], /* From: */ hsize_t, /* To: */ size_t);
+            H5_CHECKED_ASSIGN(hdr->man_dtable.row_max_dblock_free[u], size_t, hdr->man_dtable.row_tot_dblock_free[u], hsize_t);
         } /* end if */
         else
             if(H5HF_hdr_compute_free_space(hdr, u) < 0)
diff --git a/src/H5HFhuge.c b/src/H5HFhuge.c
index 6f0b48e..7f0da02 100644
--- a/src/H5HFhuge.c
+++ b/src/H5HFhuge.c
@@ -653,7 +653,7 @@ H5HF_huge_op_real(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
 
             /* Retrieve the object's address & length */
             obj_addr = found_rec.addr;
-            H5_ASSIGN_OVERFLOW(/* To: */ obj_size, /* From: */ found_rec.len, /* From: */ hsize_t, /* To: */ size_t);
+            H5_CHECKED_ASSIGN(obj_size, size_t, found_rec.len, hsize_t);
             filter_mask = found_rec.filter_mask;
         } /* end if */
         else {
@@ -669,7 +669,7 @@ H5HF_huge_op_real(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
 
             /* Retrieve the object's address & length */
             obj_addr = found_rec.addr;
-            H5_ASSIGN_OVERFLOW(/* To: */ obj_size, /* From: */ found_rec.len, /* From: */ hsize_t, /* To: */ size_t);
+            H5_CHECKED_ASSIGN(obj_size, size_t, found_rec.len, hsize_t);
         } /* end else */
     } /* end else */
 
@@ -797,7 +797,7 @@ H5HF_huge_write(H5HF_hdr_t *hdr, hid_t dxpl_id, const uint8_t *id,
 
         /* Retrieve the object's address & length */
         obj_addr = found_rec.addr;
-        H5_ASSIGN_OVERFLOW(/* To: */ obj_size, /* From: */ found_rec.len, /* From: */ hsize_t, /* To: */ size_t);
+        H5_CHECKED_ASSIGN(obj_size, size_t, found_rec.len, hsize_t);
     } /* end else */
 
     /* Write the object's data to the file */
diff --git a/src/H5HFsection.c b/src/H5HFsection.c
index b3faebc..9098f0f 100644
--- a/src/H5HFsection.c
+++ b/src/H5HFsection.c
@@ -861,9 +861,9 @@ done:
  *-------------------------------------------------------------------------
  */
 static H5FS_section_info_t *
-H5HF_sect_single_deserialize(const H5FS_section_class_t UNUSED *cls,
-    hid_t UNUSED dxpl_id, const uint8_t UNUSED *buf, haddr_t sect_addr,
-    hsize_t sect_size, unsigned UNUSED *des_flags)
+H5HF_sect_single_deserialize(const H5FS_section_class_t H5_ATTR_UNUSED *cls,
+    hid_t H5_ATTR_UNUSED dxpl_id, const uint8_t H5_ATTR_UNUSED *buf, haddr_t sect_addr,
+    hsize_t sect_size, unsigned H5_ATTR_UNUSED *des_flags)
 {
     H5HF_free_section_t *new_sect;      /* New section */
     H5FS_section_info_t *ret_value;     /* Return value */
@@ -904,7 +904,7 @@ done:
  */
 static htri_t
 H5HF_sect_single_can_merge(const H5FS_section_info_t *_sect1,
-    const H5FS_section_info_t *_sect2, void UNUSED *_udata)
+    const H5FS_section_info_t *_sect2, void H5_ATTR_UNUSED *_udata)
 {
     const H5HF_free_section_t *sect1 = (const H5HF_free_section_t *)_sect1;   /* Fractal heap free section */
     const H5HF_free_section_t *sect2 = (const H5HF_free_section_t *)_sect2;   /* Fractal heap free section */
@@ -1063,7 +1063,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_sect_single_shrink(H5FS_section_info_t **_sect, void UNUSED *_udata)
+H5HF_sect_single_shrink(H5FS_section_info_t **_sect, void H5_ATTR_UNUSED *_udata)
 {
     H5HF_free_section_t **sect = (H5HF_free_section_t **)_sect;   /* Fractal heap free section */
     H5HF_sect_add_ud_t *udata = (H5HF_sect_add_ud_t *)_udata;   /* User callback data */
@@ -1171,7 +1171,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_sect_single_valid(const H5FS_section_class_t UNUSED *cls, const H5FS_section_info_t *_sect)
+H5HF_sect_single_valid(const H5FS_section_class_t H5_ATTR_UNUSED *cls, const H5FS_section_info_t *_sect)
 {
     const H5HF_free_section_t *sect = (const H5HF_free_section_t *)_sect;   /* Pointer to section to check */
 
@@ -1714,7 +1714,7 @@ done:
  */
 static htri_t
 H5HF_sect_row_can_merge(const H5FS_section_info_t *_sect1,
-    const H5FS_section_info_t *_sect2, void UNUSED *_udata)
+    const H5FS_section_info_t *_sect2, void H5_ATTR_UNUSED *_udata)
 {
     const H5HF_free_section_t *sect1 = (const H5HF_free_section_t *)_sect1;   /* Fractal heap free section */
     const H5HF_free_section_t *sect2 = (const H5HF_free_section_t *)_sect2;   /* Fractal heap free section */
@@ -1839,7 +1839,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static htri_t
-H5HF_sect_row_can_shrink(const H5FS_section_info_t *_sect, void UNUSED *_udata)
+H5HF_sect_row_can_shrink(const H5FS_section_info_t *_sect, void H5_ATTR_UNUSED *_udata)
 {
     const H5HF_free_section_t *sect = (const H5HF_free_section_t *)_sect;   /* Fractal heap free section */
     H5HF_sect_add_ud_t *udata = (H5HF_sect_add_ud_t *)_udata;   /* User callback data */
diff --git a/src/H5HFspace.c b/src/H5HFspace.c
index 3edf239..520c117 100644
--- a/src/H5HFspace.c
+++ b/src/H5HFspace.c
@@ -262,7 +262,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HF_space_revert_root_cb(H5FS_section_info_t *_sect, void UNUSED *_udata)
+H5HF_space_revert_root_cb(H5FS_section_info_t *_sect, void H5_ATTR_UNUSED *_udata)
 {
     H5HF_free_section_t *sect = (H5HF_free_section_t *)_sect;       /* Section to dump info */
     herr_t      ret_value = SUCCEED;    /* Return value */
diff --git a/src/H5HGcache.c b/src/H5HGcache.c
index 5af753e..533e26b 100644
--- a/src/H5HGcache.c
+++ b/src/H5HGcache.c
@@ -64,7 +64,7 @@
 /* Metadata cache callbacks */
 static H5HG_heap_t *H5HG_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
 static herr_t H5HG_flush(H5F_t *f, hid_t dxpl_id, hbool_t dest, haddr_t addr,
-			 H5HG_heap_t *heap, unsigned UNUSED * flags_ptr);
+			 H5HG_heap_t *heap, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5HG_dest(H5F_t *f, H5HG_heap_t *heap);
 static herr_t H5HG_clear(H5F_t *f, H5HG_heap_t *heap, hbool_t destroy);
 static herr_t H5HG_size(const H5F_t *f, const H5HG_heap_t *heap, size_t *size_ptr);
@@ -279,7 +279,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HG_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HG_heap_t *heap, unsigned UNUSED * flags_ptr)
+H5HG_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5HG_heap_t *heap, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     herr_t ret_value = SUCCEED;       /* Return value */
 
@@ -400,7 +400,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HG_size(const H5F_t UNUSED *f, const H5HG_heap_t *heap, size_t *size_ptr)
+H5HG_size(const H5F_t H5_ATTR_UNUSED *f, const H5HG_heap_t *heap, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
diff --git a/src/H5HL.c b/src/H5HL.c
index b1b5b24..a5d01cd 100644
--- a/src/H5HL.c
+++ b/src/H5HL.c
@@ -758,7 +758,7 @@ H5HL_insert(H5F_t *f, hid_t dxpl_id, H5HL_t *heap, size_t buf_size, const void *
         size_t	need_more;      /* How much more space we need */
         size_t	new_dblk_size;  /* Final size of space allocated for heap data block */
         size_t	old_dblk_size;  /* Previous size of space allocated for heap data block */
-        htri_t	extended;       /* Whether the local heap's data segment on disk was extended */
+        htri_t  was_extended;   /* Whether the local heap's data segment on disk was extended */
 
         /* At least double the heap's size, making certain there's enough room
          * for the new object */
@@ -781,12 +781,12 @@ H5HL_insert(H5F_t *f, hid_t dxpl_id, H5HL_t *heap, size_t buf_size, const void *
 	H5_CHECK_OVERFLOW(new_dblk_size, size_t, hsize_t);
 
         /* Extend current heap if possible */
-	extended = H5MF_try_extend(f, dxpl_id, H5FD_MEM_LHEAP, heap->dblk_addr, (hsize_t)(heap->dblk_size), (hsize_t)need_more);
-        if(extended < 0)
+	was_extended = H5MF_try_extend(f, dxpl_id, H5FD_MEM_LHEAP, heap->dblk_addr, (hsize_t)(heap->dblk_size), (hsize_t)need_more);
+        if(was_extended < 0)
             HGOTO_ERROR(H5E_HEAP, H5E_CANTEXTEND, UFAIL, "error trying to extend heap")
 
-	/* Check if we extended the heap data block in file */
-	if(extended == TRUE) {
+        /* Check if we extended the heap data block in file */
+        if(was_extended == TRUE) {
             /* Check for prefix & data block contiguous */
             if(heap->single_cache_obj) {
                 /* Resize prefix+data block */
diff --git a/src/H5HLcache.c b/src/H5HLcache.c
index aadae11..e4ffd5a 100644
--- a/src/H5HLcache.c
+++ b/src/H5HLcache.c
@@ -256,6 +256,7 @@ H5HL_prefix_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
     size_t	        spec_read_size; /* Size of buffer to speculatively read in */
     const uint8_t	*p;         /* Pointer into decoding buffer */
     haddr_t             eoa;        /* Relative end of file address */
+    hsize_t min;                    /* temp min value to avoid macro nesting */
     H5HL_prfx_t *ret_value;         /* Return value */
 
     FUNC_ENTER_NOAPI_NOINIT
@@ -274,7 +275,8 @@ H5HL_prefix_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
         HGOTO_ERROR(H5E_HEAP, H5E_CANTGET, NULL, "unable to determine file size")
 
     /* Compute the size of the speculative local heap prefix buffer */
-    H5_ASSIGN_OVERFLOW(spec_read_size, MIN(eoa - addr, H5HL_SPEC_READ_SIZE), /* From: */ hsize_t, /* To: */ size_t);
+    min = MIN(eoa - addr, H5HL_SPEC_READ_SIZE);
+    H5_CHECKED_ASSIGN(spec_read_size, size_t, min, hsize_t);
     HDassert(spec_read_size >= udata->sizeof_prfx);
 
     /* Attempt to speculatively read both local heap prefix and heap data */
@@ -389,7 +391,7 @@ done:
  */
 static herr_t
 H5HL_prefix_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr,
-    void *thing, unsigned UNUSED *flags_ptr)
+    void *thing, unsigned H5_ATTR_UNUSED *flags_ptr)
 {
     H5HL_prfx_t *prfx = (H5HL_prfx_t *)thing;   /* Local heap prefix to flush */
     H5WB_t *wb = NULL;                  /* Wrapped buffer for heap data */
@@ -548,7 +550,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HL_prefix_clear(H5F_t UNUSED *f, void *thing, hbool_t destroy)
+H5HL_prefix_clear(H5F_t H5_ATTR_UNUSED *f, void *thing, hbool_t destroy)
 {
     H5HL_prfx_t *prfx = (H5HL_prfx_t *)thing;   /* The local heap prefix to operate on */
     herr_t ret_value = SUCCEED;         /* Return value */
@@ -585,7 +587,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HL_prefix_size(const H5F_t UNUSED *f, const void *thing, size_t *size_ptr)
+H5HL_prefix_size(const H5F_t H5_ATTR_UNUSED *f, const void *thing, size_t *size_ptr)
 {
     const H5HL_prfx_t *prfx = (const H5HL_prfx_t *)thing;   /* Pointer to local heap prefix to query */
 
@@ -689,7 +691,7 @@ done:
  */
 static herr_t
 H5HL_datablock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr,
-    void *_thing, unsigned UNUSED * flags_ptr)
+    void *_thing, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     H5HL_dblk_t *dblk = (H5HL_dblk_t *)_thing; /* Pointer to the local heap data block */
     herr_t ret_value = SUCCEED;         /* Return value */
@@ -830,7 +832,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5HL_datablock_size(const H5F_t UNUSED *f, const void *_thing, size_t *size_ptr)
+H5HL_datablock_size(const H5F_t H5_ATTR_UNUSED *f, const void *_thing, size_t *size_ptr)
 {
     const H5HL_dblk_t *dblk = (const H5HL_dblk_t *)_thing; /* Pointer to the local heap data block */
 
diff --git a/src/H5I.c b/src/H5I.c
index 48451b9..4eeaba0 100644
--- a/src/H5I.c
+++ b/src/H5I.c
@@ -113,6 +113,13 @@ typedef struct {
     hbool_t app_ref;                    /* Whether this is an appl. ref. call */
 } H5I_iterate_ud_t;
 
+/* User data for H5I__clear_type_cb */
+typedef struct {
+    H5I_id_type_t *type_ptr;    /* Pointer to the type being cleard */
+    hbool_t force;              /* Whether to always remove the id */
+    hbool_t app_ref;            /* Whether this is an appl. ref. call */
+} H5I_clear_type_ud_t;
+
 /*-------------------- Locally scoped variables -----------------------------*/
 
 /* Array of pointers to atomic types */
@@ -137,6 +144,7 @@ H5FL_DEFINE_STATIC(H5I_class_t);
 
 /*--------------------- Local function prototypes ---------------------------*/
 static herr_t H5I__free_cb(void *_item, void *_key, void *_udata);
+static htri_t H5I__clear_type_cb(void *_id, void *key, void *udata);
 static int H5I__destroy_type(H5I_type_t type);
 static void *H5I__remove_verify(hid_t id, H5I_type_t id_type);
 static void *H5I__remove_common(H5I_id_type_t *type_ptr, hid_t id);
@@ -454,7 +462,7 @@ H5Inmembers(H5I_type_t type, hsize_t *num_members)
         if((members = H5I_nmembers(type)) < 0)
             HGOTO_ERROR(H5E_ATOM, H5E_CANTCOUNT, FAIL, "can't compute number of members")
 
-        H5_ASSIGN_OVERFLOW(*num_members, members, int, hsize_t);
+        H5_CHECKED_ASSIGN(*num_members, hsize_t, members, int);
     } /* end if */
 
 done:
@@ -481,17 +489,17 @@ int
 H5I_nmembers(H5I_type_t type)
 {
     H5I_id_type_t	*type_ptr = NULL;
-    int		ret_value;
+    int		        ret_value;
 
     FUNC_ENTER_NOAPI(FAIL)
 
     if(type <= H5I_BADID || type >= H5I_next_type)
-	HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number")
+        HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number")
     if(NULL == (type_ptr = H5I_id_type_list_g[type]) || type_ptr->init_count <= 0)
-	HGOTO_DONE(0);
+        HGOTO_DONE(0);
 
     /* Set return value */
-    H5_ASSIGN_OVERFLOW(ret_value, type_ptr->id_count, unsigned, int);
+    H5_CHECKED_ASSIGN(ret_value, int, type_ptr->id_count, unsigned);
 
 done:
     FUNC_LEAVE_NOAPI(ret_value)
@@ -546,7 +554,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5I__free_cb(void *_item, void UNUSED *_key, void UNUSED *_udata)
+H5I__free_cb(void *_item, void H5_ATTR_UNUSED *_key, void H5_ATTR_UNUSED *_udata)
 {
     H5I_id_info_t *item = (H5I_id_info_t *)_item;       /* Pointer to the ID node */
 
@@ -578,93 +586,104 @@ H5I__free_cb(void *_item, void UNUSED *_key, void UNUSED *_udata)
 herr_t
 H5I_clear_type(H5I_type_t type, hbool_t force, hbool_t app_ref)
 {
-    H5I_id_type_t *type_ptr;	        /* ptr to the atomic type */
-    H5SL_node_t *curr_node;             /* Current skip list node ptr */
-    H5SL_node_t *next_node;             /* Next skip list node ptr */
-    int		ret_value = SUCCEED;    /* Return value */
+    H5I_clear_type_ud_t udata;          /* udata struct for callback */
+    int         ret_value = SUCCEED;    /* Return value */
 
     FUNC_ENTER_NOAPI(FAIL)
 
     if(type <= H5I_BADID || type >= H5I_next_type)
-	HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number")
+        HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number")
 
-    type_ptr = H5I_id_type_list_g[type];
-    if(type_ptr == NULL || type_ptr->init_count <= 0)
-	HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, FAIL, "invalid type")
+    udata.type_ptr = H5I_id_type_list_g[type];
+    if(udata.type_ptr == NULL || udata.type_ptr->init_count <= 0)
+        HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, FAIL, "invalid type")
 
-    /*
-     * Call free method for all objects in type regardless of their reference
-     * counts. Ignore the return value from from the free method and remove
-     * object from type regardless if FORCE is non-zero.
-     */
-    for(curr_node = H5SL_first(type_ptr->ids); curr_node; curr_node = next_node) {
-        H5I_id_info_t *cur;         /* Current ID being worked with */
-        hbool_t    delete_node;     /* Flag to indicate node should be removed from linked list */
+    /* Finish constructing udata */
+    udata.force = force;
+    udata.app_ref = app_ref;
 
-        /* Get ID for this node */
-        if(NULL == (cur = (H5I_id_info_t *)H5SL_item(curr_node)))
-            HGOTO_ERROR(H5E_ATOM, H5E_CANTGET, FAIL, "can't get ID info for node")
+    /* Attempt to free all ids in the type */
+    if(H5SL_try_free_safe(udata.type_ptr->ids, H5I__clear_type_cb, &udata) < 0)
+        HGOTO_ERROR(H5E_ATOM, H5E_CANTDELETE, FAIL, "can't free ids in type")
 
-        /*
-         * Do nothing to the object if the reference count is larger than
-         * one and forcing is off.
-         */
-        if(!force && (cur->count - (!app_ref * cur->app_count)) > 1)
-            delete_node = FALSE;
-        else {
-            /* Check for a 'free' function and call it, if it exists */
-            /* (Casting away const OK -QAK) */
-            if(type_ptr->cls->free_func && (type_ptr->cls->free_func)((void *)cur->obj_ptr) < 0) {
-                if(force) {
+    /* Also free any ID structures being retained for potential re-use */
+    if(udata.type_ptr->avail_count > 0) {
+        if(H5SL_free(udata.type_ptr->avail_ids, H5I__free_cb, NULL) < 0)
+            HGOTO_ERROR(H5E_ATOM, H5E_CANTREMOVE, FAIL, "can't release available ID nodes")
+        udata.type_ptr->avail_count = 0;
+    } /* end if */
+
+done:
+    FUNC_LEAVE_NOAPI(ret_value)
+} /* end H5I_clear_type() */
+
+

+/*-------------------------------------------------------------------------
+ * Function:    H5I__clear_type_cb
+ *
+ * Purpose:     Attempts to free the specified ID , calling the free
+ *              function for the object.
+ *
+ * Return:      Success:        Non-negative
+ *              Failure:        negative
+ *
+ * Programmer:  Neil Fortner
+ *              Friday, July 10, 2015
+ *
+ *-------------------------------------------------------------------------
+ */
+static htri_t
+H5I__clear_type_cb(void *_id, void H5_ATTR_UNUSED *key, void *_udata)
+{
+    H5I_id_info_t       *id = (H5I_id_info_t *)_id; /* Current ID being worked with */
+    H5I_clear_type_ud_t *udata = (H5I_clear_type_ud_t *)_udata; /* udata struct */
+    htri_t              ret_value = FALSE;    /* Return value */
+
+    FUNC_ENTER_STATIC_NOERR
+
+    HDassert(id);
+    HDassert(udata);
+    HDassert(udata->type_ptr);
+
+    /*
+     * Do nothing to the object if the reference count is larger than
+     * one and forcing is off.
+     */
+    if(udata->force || (id->count - (!udata->app_ref * id->app_count)) <= 1) {
+        /* Check for a 'free' function and call it, if it exists */
+        /* (Casting away const OK -QAK) */
+        if(udata->type_ptr->cls->free_func && (udata->type_ptr->cls->free_func)((void *)id->obj_ptr) < 0) {
+            if(udata->force) {
 #ifdef H5I_DEBUG
-                    if(H5DEBUG(I)) {
-                        fprintf(H5DEBUG(I), "H5I: free type=%d obj=0x%08lx "
-                            "failure ignored\n", (int)type,
-                            (unsigned long)(cur->obj_ptr));
-                    } /* end if */
+                if(H5DEBUG(I)) {
+                    fprintf(H5DEBUG(I), "H5I: free type=%d obj=0x%08lx "
+                            "failure ignored\n",
+                            (int)udata->type_ptr->cls->type_id,
+                            (unsigned long)(id->obj_ptr));
+                } /* end if */
 #endif /*H5I_DEBUG*/
 
-                    /* Indicate node should be removed from list */
-                    delete_node = TRUE;
-                } /* end if */
-                else {
-                    /* Indicate node should _NOT_ be remove from list */
-                    delete_node = FALSE;
-                } /* end else */
-            } /* end if */
-            else {
                 /* Indicate node should be removed from list */
-                delete_node = TRUE;
-            } /* end else */
+                ret_value = TRUE;
+            } /* end if */
+        } /* end if */
+        else {
+            /* Indicate node should be removed from list */
+            ret_value = TRUE;
         } /* end else */
 
-        /* Get the next node in the list */
-        next_node = H5SL_next(curr_node);
+        /* Remove ID if requested */
+        if(ret_value) {
+            /* Free ID info */
+            id = H5FL_FREE(H5I_id_info_t, id);
 
-        /* Check if we should delete this node or not */
-        if(delete_node) {
             /* Decrement the number of IDs in the type */
-            (type_ptr->id_count)--;
-
-            /* Remove the node from the list */
-            if(NULL == H5SL_remove(type_ptr->ids, &cur->id))
-                HGOTO_ERROR(H5E_ATOM, H5E_CANTDELETE, FAIL, "can't remove ID node from skip list")
-
-            /* Free the node */
-            cur = H5FL_FREE(H5I_id_info_t, cur);
+            udata->type_ptr->id_count--;
         } /* end if */
-    } /* end for */
-
-    /* Also free any ID structures being retained for potential re-use */
-    if(type_ptr->avail_count > 0) {
-        if(H5SL_free(type_ptr->avail_ids, H5I__free_cb, NULL) < 0)
-            HGOTO_ERROR(H5E_ATOM, H5E_CANTREMOVE, FAIL, "can't release available ID nodes")
-        type_ptr->avail_count = 0;
     } /* end if */
 
-done:
     FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5I_clear_type() */
+} /* end H5I__clear_type_cb() */
 
 

 /*-------------------------------------------------------------------------
@@ -801,7 +820,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5I__wrapped_cb(void *_item, void UNUSED *_key, void *_udata)
+H5I__wrapped_cb(void *_item, void H5_ATTR_UNUSED *_key, void *_udata)
 {
     H5I_id_info_t *item = (H5I_id_info_t *)_item;       /* Pointer to the ID node */
     H5I_wrap_ud_t *udata = (H5I_wrap_ud_t *)_udata;     /* Pointer to user data */
@@ -1389,8 +1408,6 @@ done:
 int
 H5I_dec_ref(hid_t id)
 {
-    H5I_type_t		type;		/*type the object is in*/
-    H5I_id_type_t	*type_ptr;	/*ptr to the type	*/
     H5I_id_info_t	*id_ptr;	/*ptr to the new ID	*/
     int ret_value;                      /* Return value */
 
@@ -1399,17 +1416,9 @@ H5I_dec_ref(hid_t id)
     /* Sanity check */
     HDassert(id >= 0);
 
-    /* Check arguments */
-    type = H5I_TYPE(id);
-    if(type <= H5I_BADID || type >= H5I_next_type)
-	HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number")
-    type_ptr = H5I_id_type_list_g[type];
-    if(NULL == type_ptr || type_ptr->init_count <= 0)
-	HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number")
-
     /* General lookup of the ID */
-    if(NULL == (id_ptr = (H5I_id_info_t *)H5SL_search(type_ptr->ids, &id)))
-	HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't locate ID")
+    if(NULL == (id_ptr = H5I__find_id(id)))
+        HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't locate ID")
 
     /*
      * If this is the last reference to the object then invoke the type's
@@ -1427,6 +1436,11 @@ H5I_dec_ref(hid_t id)
      * file.  We have to close the dataset anyway. (SLU - 2010/9/7)
      */
     if(1 == id_ptr->count) {
+        H5I_id_type_t	*type_ptr;		/*ptr to the type	*/
+
+        /* Get the ID's type */
+        type_ptr = H5I_id_type_list_g[H5I_TYPE(id)];
+
         /* (Casting away const OK -QAK) */
         if(!type_ptr->cls->free_func || (type_ptr->cls->free_func)((void *)id_ptr->obj_ptr) >= 0) {
             /* Remove the node from the type */
@@ -1590,8 +1604,6 @@ done:
 int
 H5I_inc_ref(hid_t id, hbool_t app_ref)
 {
-    H5I_type_t		type;		/*type the object is in*/
-    H5I_id_type_t	*type_ptr;	/*ptr to the type	*/
     H5I_id_info_t	*id_ptr;	/*ptr to the ID		*/
     int ret_value;                      /* Return value */
 
@@ -1600,16 +1612,8 @@ H5I_inc_ref(hid_t id, hbool_t app_ref)
     /* Sanity check */
     HDassert(id >= 0);
 
-    /* Check arguments */
-    type = H5I_TYPE(id);
-    if(type <= H5I_BADID || type >= H5I_next_type)
-	HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number")
-    type_ptr = H5I_id_type_list_g[type];
-    if(!type_ptr || type_ptr->init_count <= 0)
-	HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, FAIL, "invalid type")
-
     /* General lookup of the ID */
-    if(NULL == (id_ptr = (H5I_id_info_t *)H5SL_search(type_ptr->ids, &id)))
+    if(NULL == (id_ptr = H5I__find_id(id)))
 	HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't locate ID")
 
     /* Adjust reference counts */
@@ -1675,8 +1679,6 @@ done:
 int
 H5I_get_ref(hid_t id, hbool_t app_ref)
 {
-    H5I_type_t		type;		/*type the object is in*/
-    H5I_id_type_t	*type_ptr;	/*ptr to the type	*/
     H5I_id_info_t	*id_ptr;	/*ptr to the ID		*/
     int ret_value;                      /* Return value */
 
@@ -1685,16 +1687,8 @@ H5I_get_ref(hid_t id, hbool_t app_ref)
     /* Sanity check */
     HDassert(id >= 0);
 
-    /* Check arguments */
-    type = H5I_TYPE(id);
-    if(type <= H5I_BADID || type >= H5I_next_type)
-	HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "invalid type number")
-    type_ptr = H5I_id_type_list_g[type];
-    if(!type_ptr || type_ptr->init_count <= 0)
-	HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, FAIL, "invalid type")
-
     /* General lookup of the ID */
-    if(NULL == (id_ptr = (H5I_id_info_t *)H5SL_search(type_ptr->ids, &id)))
+    if(NULL == (id_ptr = H5I__find_id(id)))
 	HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't locate ID")
 
     /* Set return value */
@@ -2094,7 +2088,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5I__iterate_cb(void *_item, void UNUSED *_key, void *_udata)
+H5I__iterate_cb(void *_item, void H5_ATTR_UNUSED *_key, void *_udata)
 {
     H5I_id_info_t *item = (H5I_id_info_t *)_item;       /* Pointer to the ID node */
     H5I_iterate_ud_t *udata = (H5I_iterate_ud_t *)_udata; /* User data for callback */
@@ -2197,20 +2191,20 @@ done:
 static H5I_id_info_t *
 H5I__find_id(hid_t id)
 {
-    H5I_id_type_t	*type_ptr;		/*ptr to the type	*/
     H5I_type_t		type;			/*ID's type		*/
+    H5I_id_type_t	*type_ptr;		/*ptr to the type	*/
     H5I_id_info_t	*ret_value;		/*return value		*/
 
     FUNC_ENTER_STATIC_NOERR
 
     /* Check arguments */
     type = H5I_TYPE(id);
-    if (type <= H5I_BADID || type >= H5I_next_type)
-        HGOTO_DONE(NULL);
+    if(type <= H5I_BADID || type >= H5I_next_type)
+	HGOTO_DONE(NULL)
 
     type_ptr = H5I_id_type_list_g[type];
-    if (!type_ptr || type_ptr->init_count <= 0)
-        HGOTO_DONE(NULL);
+    if(!type_ptr || type_ptr->init_count <= 0)
+	HGOTO_DONE(NULL)
 
     /* Locate the ID node for the ID */
     ret_value = (H5I_id_info_t *)H5SL_search(type_ptr->ids, &id);
@@ -2364,7 +2358,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5I__debug_cb(void *_item, void UNUSED *_key, void *_udata)
+H5I__debug_cb(void *_item, void H5_ATTR_UNUSED *_key, void *_udata)
 {
     H5I_id_info_t *item = (H5I_id_info_t *)_item;       /* Pointer to the ID node */
     H5I_type_t type = *(H5I_type_t *)_udata;            /* User data */
diff --git a/src/H5L.c b/src/H5L.c
index fff14e5..9c81f98 100644
--- a/src/H5L.c
+++ b/src/H5L.c
@@ -1655,7 +1655,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5L_link_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t UNUSED *lnk,
+H5L_link_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t H5_ATTR_UNUSED *lnk,
     H5G_loc_t *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_cr_t *udata = (H5L_trav_cr_t *)_udata;   /* User data passed in */
@@ -2140,8 +2140,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5L_get_val_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char *name, const H5O_link_t *lnk,
-    H5G_loc_t UNUSED *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
+H5L_get_val_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char *name, const H5O_link_t *lnk,
+    H5G_loc_t H5_ATTR_UNUSED *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_gv_t *udata = (H5L_trav_gv_t *)_udata;   /* User data passed in */
     herr_t ret_value = SUCCEED;               /* Return value */
@@ -2224,8 +2224,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5L_get_val_by_idx_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+H5L_get_val_by_idx_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_gvbi_t *udata = (H5L_trav_gvbi_t *)_udata;   /* User data passed in */
@@ -2277,7 +2277,7 @@ done:
  */
 static herr_t
 H5L_delete_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t *lnk,
-    H5G_loc_t UNUSED *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
+    H5G_loc_t H5_ATTR_UNUSED *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_rm_t *udata = (H5L_trav_rm_t *)_udata;   /* User data passed in */
     herr_t ret_value = SUCCEED;
@@ -2365,8 +2365,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5L_delete_by_idx_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+H5L_delete_by_idx_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_gvbi_t *udata = (H5L_trav_gvbi_t *)_udata;   /* User data passed in */
@@ -2408,7 +2408,7 @@ done:
  */
 static herr_t
 H5L_move_dest_cb(H5G_loc_t *grp_loc/*in*/, const char *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_mv2_t *udata = (H5L_trav_mv2_t *)_udata;   /* User data passed in */
@@ -2721,8 +2721,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5L_exists_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
-    const H5O_link_t *lnk, H5G_loc_t UNUSED *obj_loc, void *_udata/*in,out*/,
+H5L_exists_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t *lnk, H5G_loc_t H5_ATTR_UNUSED *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     hbool_t *udata = (hbool_t *)_udata;   /* User data passed in */
@@ -2785,8 +2785,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5L_get_info_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
-    const H5O_link_t *lnk, H5G_loc_t UNUSED *obj_loc, void *_udata/*in,out*/,
+H5L_get_info_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t *lnk, H5G_loc_t H5_ATTR_UNUSED *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_gi_t *udata = (H5L_trav_gi_t *)_udata;   /* User data passed in */
@@ -2858,8 +2858,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5L_get_info_by_idx_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+H5L_get_info_by_idx_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_gibi_t *udata = (H5L_trav_gibi_t *)_udata;   /* User data passed in */
@@ -2938,8 +2938,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5L_get_name_by_idx_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
-    const H5O_link_t UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
+H5L_get_name_by_idx_cb(H5G_loc_t H5_ATTR_UNUSED *grp_loc/*in*/, const char H5_ATTR_UNUSED *name,
+    const H5O_link_t H5_ATTR_UNUSED *lnk, H5G_loc_t *obj_loc, void *_udata/*in,out*/,
     H5G_own_loc_t *own_loc/*out*/)
 {
     H5L_trav_gnbi_t *udata = (H5L_trav_gnbi_t *)_udata;   /* User data passed in */
diff --git a/src/H5Lexternal.c b/src/H5Lexternal.c
index 9d1fe48..6269ae7 100644
--- a/src/H5Lexternal.c
+++ b/src/H5Lexternal.c
@@ -29,9 +29,9 @@
 #include "H5Opublic.h"          /* File objects                         */
 #include "H5Pprivate.h"         /* Property lists                       */
 
-static hid_t H5L_extern_traverse(const char UNUSED *link_name, hid_t cur_group,
-    const void *udata, size_t UNUSED udata_size, hid_t lapl_id);
-static ssize_t H5L_extern_query(const char UNUSED * link_name, const void *udata,
+static hid_t H5L_extern_traverse(const char H5_ATTR_UNUSED *link_name, hid_t cur_group,
+    const void *udata, size_t H5_ATTR_UNUSED udata_size, hid_t lapl_id);
+static ssize_t H5L_extern_query(const char H5_ATTR_UNUSED * link_name, const void *udata,
     size_t udata_size, void * buf /*out*/, size_t buf_size);
 
 /* Default External Link link class */
@@ -125,8 +125,6 @@ H5L_getenv_prefix_name(char **env_prefix/*in,out*/)
  *
  * Programmer:	Vailin Choi, April 2, 2008
  *
- * Modification: Raymond Lu, 14 Jan. 2009
- *           Added support for OpenVMS pathname
 --------------------------------------------------------------------------*/
 static herr_t
 H5L_build_name(char *prefix, char *file_name, char **full_name/*out*/)
@@ -188,8 +186,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static hid_t
-H5L_extern_traverse(const char UNUSED *link_name, hid_t cur_group,
-    const void *_udata, size_t UNUSED udata_size, hid_t lapl_id)
+H5L_extern_traverse(const char H5_ATTR_UNUSED *link_name, hid_t cur_group,
+    const void *_udata, size_t H5_ATTR_UNUSED udata_size, hid_t lapl_id)
 {
     H5P_genplist_t *plist;              /* Property list pointer */
     char       *my_prefix;              /* Library's copy of the prefix */
@@ -490,7 +488,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static ssize_t
-H5L_extern_query(const char UNUSED * link_name, const void *_udata, size_t udata_size,
+H5L_extern_query(const char H5_ATTR_UNUSED * link_name, const void *_udata, size_t udata_size,
     void *buf /*out*/, size_t buf_size)
 {
     const uint8_t *udata = (const uint8_t *)_udata;      /* Pointer to external link buffer */
diff --git a/src/H5MFaggr.c b/src/H5MFaggr.c
index c971355..02a1720 100644
--- a/src/H5MFaggr.c
+++ b/src/H5MFaggr.c
@@ -211,7 +211,7 @@ HDfprintf(stderr, "%s: aggr = {%a, %Hu, %Hu}\n", FUNC, aggr->addr, aggr->tot_siz
 
         /* Check if the space requested is larger than the space left in the block */
         if((size + aggr_frag_size) > aggr->size) {
-            htri_t  	extended = FALSE;   /* Whether the file was extended */
+            htri_t  	was_extended = FALSE;   /* Whether the file was extended */
 
             /* Check if the block asked for is too large for 'normal' aggregator block */
             if(size >= aggr->alloc_size) {
@@ -221,9 +221,9 @@ HDfprintf(stderr, "%s: aggr = {%a, %Hu, %Hu}\n", FUNC, aggr->addr, aggr->tot_siz
                 if(H5F_addr_gt((aggr->addr + aggr->size + ext_size), f->shared->tmp_addr))
                     HGOTO_ERROR(H5E_RESOURCE, H5E_BADRANGE, HADDR_UNDEF, "'normal' file space allocation request will overlap into 'temporary' file space")
 
-		if ((aggr->addr > 0) && (extended = H5FD_try_extend(f->shared->lf, alloc_type, f, aggr->addr + aggr->size, ext_size)) < 0)
+		if ((aggr->addr > 0) && (was_extended = H5FD_try_extend(f->shared->lf, alloc_type, f, aggr->addr + aggr->size, ext_size)) < 0)
 		    HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, HADDR_UNDEF, "can't extending space")
-		else if (extended) {
+		else if (was_extended) {
 		    /* aggr->size is unchanged */
 		    ret_value = aggr->addr + aggr_frag_size;
 		    aggr->addr += ext_size;
@@ -263,9 +263,9 @@ HDfprintf(stderr, "%s: Allocating block\n", FUNC);
                 if(H5F_addr_gt((aggr->addr + aggr->size + ext_size), f->shared->tmp_addr))
                     HGOTO_ERROR(H5E_RESOURCE, H5E_BADRANGE, HADDR_UNDEF, "'normal' file space allocation request will overlap into 'temporary' file space")
 
-		if((aggr->addr > 0) && (extended = H5FD_try_extend(f->shared->lf, alloc_type, f, aggr->addr + aggr->size, ext_size)) < 0)
+		if((aggr->addr > 0) && (was_extended = H5FD_try_extend(f->shared->lf, alloc_type, f, aggr->addr + aggr->size, ext_size)) < 0)
 		    HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, HADDR_UNDEF, "can't extending space")
-		else if (extended) {
+		else if (was_extended) {
 		    aggr->addr += aggr_frag_size;
 		    aggr->size += (ext_size - aggr_frag_size);
 		    aggr->tot_size += ext_size;
@@ -313,7 +313,7 @@ HDfprintf(stderr, "%s: Allocating block\n", FUNC);
 		    HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free eoa fragment")
 
 	    /* Freeing any possible fragment due to alignment in the block after extension */
-	    if(extended && aggr_frag_size)
+	    if(was_extended && aggr_frag_size)
 		if(H5MF_xfree(f, alloc_type, dxpl_id, aggr_frag_addr, aggr_frag_size) < 0)
 		    HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation fragment")
         } /* end if */
@@ -536,7 +536,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5MF_aggr_absorb(const H5F_t UNUSED *f, H5F_blk_aggr_t *aggr, H5MF_free_section_t *sect,
+H5MF_aggr_absorb(const H5F_t H5_ATTR_UNUSED *f, H5F_blk_aggr_t *aggr, H5MF_free_section_t *sect,
     hbool_t allow_sect_absorb)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
diff --git a/src/H5MFsection.c b/src/H5MFsection.c
index 0572def..bc147ed 100644
--- a/src/H5MFsection.c
+++ b/src/H5MFsection.c
@@ -173,9 +173,9 @@ done:
  *-------------------------------------------------------------------------
  */
 static H5FS_section_info_t *
-H5MF_sect_simple_deserialize(const H5FS_section_class_t UNUSED *cls,
-    hid_t UNUSED dxpl_id, const uint8_t UNUSED *buf, haddr_t sect_addr,
-    hsize_t sect_size, unsigned UNUSED *des_flags)
+H5MF_sect_simple_deserialize(const H5FS_section_class_t H5_ATTR_UNUSED *cls,
+    hid_t H5_ATTR_UNUSED dxpl_id, const uint8_t H5_ATTR_UNUSED *buf, haddr_t sect_addr,
+    hsize_t sect_size, unsigned H5_ATTR_UNUSED *des_flags)
 {
     H5MF_free_section_t *sect;          /* New section */
     H5FS_section_info_t *ret_value;     /* Return value */
@@ -215,7 +215,7 @@ done:
  */
 static htri_t
 H5MF_sect_simple_can_merge(const H5FS_section_info_t *_sect1,
-    const H5FS_section_info_t *_sect2, void UNUSED *_udata)
+    const H5FS_section_info_t *_sect2, void H5_ATTR_UNUSED *_udata)
 {
     const H5MF_free_section_t *sect1 = (const H5MF_free_section_t *)_sect1;   /* File free section */
     const H5MF_free_section_t *sect2 = (const H5MF_free_section_t *)_sect2;   /* File free section */
@@ -253,7 +253,7 @@ H5MF_sect_simple_can_merge(const H5FS_section_info_t *_sect1,
  */
 static herr_t
 H5MF_sect_simple_merge(H5FS_section_info_t *_sect1, H5FS_section_info_t *_sect2,
-    void UNUSED *_udata)
+    void H5_ATTR_UNUSED *_udata)
 {
     H5MF_free_section_t *sect1 = (H5MF_free_section_t *)_sect1;   /* File free section */
     H5MF_free_section_t *sect2 = (H5MF_free_section_t *)_sect2;   /* File free section */
@@ -483,10 +483,10 @@ H5MF_sect_simple_free(H5FS_section_info_t *_sect)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5MF_sect_simple_valid(const H5FS_section_class_t UNUSED *cls,
+H5MF_sect_simple_valid(const H5FS_section_class_t H5_ATTR_UNUSED *cls,
     const H5FS_section_info_t
 #ifdef NDEBUG
-    UNUSED
+    H5_ATTR_UNUSED
 #endif /* NDEBUG */
     *_sect)
 {
diff --git a/src/H5O.c b/src/H5O.c
index 3d31c39..38d9f6b 100644
--- a/src/H5O.c
+++ b/src/H5O.c
@@ -308,12 +308,12 @@ H5Oopen_by_idx(hid_t loc_id, const char *group_name, H5_index_t idx_type,
     H5G_loc_reset(&obj_loc);
 
     /* Find the object's location, according to the order in the index */
-    if(H5G_loc_find_by_idx(&loc, group_name, idx_type, order, n, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0)
+    if(H5G_loc_find_by_idx(&loc, group_name, idx_type, order, n, &obj_loc/*out*/, lapl_id, H5AC_ind_dxpl_id) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "group not found")
     loc_found = TRUE;
 
     /* Open the object */
-    if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_dxpl_id, TRUE)) < 0)
+    if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, TRUE)) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object")
 
 done:
@@ -389,7 +389,7 @@ H5Oopen_by_addr(hid_t loc_id, haddr_t addr)
     H5G_name_reset(obj_loc.path);       /* objects opened through this routine don't have a path name */
 
     /* Open the object */
-    if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_dxpl_id, TRUE)) < 0)
+    if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, TRUE)) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object")
 
 done:
@@ -572,7 +572,7 @@ H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id)
             HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not link access property list ID")
 
     /* Check if the object exists */
-    if((ret_value = H5G_loc_exists(&loc, name, lapl_id, H5AC_dxpl_id)) < 0)
+    if((ret_value = H5G_loc_exists(&loc, name, lapl_id, H5AC_ind_dxpl_id)) < 0)
         HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "unable to determine if '%s' exists", name)
 
 done:
@@ -1339,6 +1339,7 @@ H5O_open_name(H5G_loc_t *loc, const char *name, hid_t lapl_id, hbool_t app_ref)
     H5G_name_t  obj_path;            	/* Opened object group hier. path */
     H5O_loc_t   obj_oloc;            	/* Opened object object location */
     hbool_t     loc_found = FALSE;      /* Entry at 'name' found */
+    hid_t       dxpl_id = H5AC_ind_dxpl_id;  /* transfer property list used for this operation */
     hid_t       ret_value = FAIL;
 
     FUNC_ENTER_NOAPI(FAIL)
@@ -1353,12 +1354,12 @@ H5O_open_name(H5G_loc_t *loc, const char *name, hid_t lapl_id, hbool_t app_ref)
     H5G_loc_reset(&obj_loc);
 
     /* Find the object's location */
-    if(H5G_loc_find(loc, name, &obj_loc/*out*/, lapl_id, H5AC_dxpl_id) < 0)
+    if(H5G_loc_find(loc, name, &obj_loc/*out*/, lapl_id, dxpl_id) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found")
     loc_found = TRUE;
 
     /* Open the object */
-    if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, H5AC_ind_dxpl_id, app_ref)) < 0)
+    if((ret_value = H5O_open_by_loc(&obj_loc, lapl_id, dxpl_id, app_ref)) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_CANTOPENOBJ, FAIL, "unable to open object")
 
 done:
@@ -2708,8 +2709,8 @@ H5O_get_hdr_info_real(const H5O_t *oh, H5O_hdr_info_t *hdr)
     hdr->version = oh->version;
 
     /* Set the number of messages & chunks */
-    H5_ASSIGN_OVERFLOW(hdr->nmesgs, oh->nmesgs, size_t, unsigned);
-    H5_ASSIGN_OVERFLOW(hdr->nchunks, oh->nchunks, size_t, unsigned);
+    H5_CHECKED_ASSIGN(hdr->nmesgs, unsigned, oh->nmesgs, size_t);
+    H5_CHECKED_ASSIGN(hdr->nchunks, unsigned, oh->nchunks, size_t);
 
     /* Set the status flags */
     hdr->flags = oh->flags;
@@ -3113,7 +3114,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_free_visit_visited(void *item, void UNUSED *key, void UNUSED *operator_data/*in,out*/)
+H5O_free_visit_visited(void *item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *operator_data/*in,out*/)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -3137,7 +3138,7 @@ H5O_free_visit_visited(void *item, void UNUSED *key, void UNUSED *operator_data/
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_visit_cb(hid_t UNUSED group, const char *name, const H5L_info_t *linfo,
+H5O_visit_cb(hid_t H5_ATTR_UNUSED group, const char *name, const H5L_info_t *linfo,
     void *_udata)
 {
     H5O_iter_visit_ud_t *udata = (H5O_iter_visit_ud_t *)_udata;     /* User data for callback */
diff --git a/src/H5Oainfo.c b/src/H5Oainfo.c
index fb68958..5e0703b 100644
--- a/src/H5Oainfo.c
+++ b/src/H5Oainfo.c
@@ -105,8 +105,8 @@ H5FL_DEFINE_STATIC(H5O_ainfo_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_ainfo_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_ainfo_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_ainfo_t	*ainfo = NULL;  /* Attribute info */
     unsigned char flags;        /* Flags for encoding attribute info */
@@ -179,7 +179,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_ainfo_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_ainfo_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_ainfo_t   *ainfo = (const H5O_ainfo_t *)_mesg;
     unsigned char       flags;          /* Flags for encoding attribute info */
@@ -276,7 +276,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_ainfo_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void *_mesg)
+H5O_ainfo_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *_mesg)
 {
     const H5O_ainfo_t   *ainfo = (const H5O_ainfo_t *)_mesg;
     size_t ret_value;   /* Return value */
@@ -333,7 +333,7 @@ H5O_ainfo_free(void *mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_ainfo_delete(H5F_t *f, hid_t dxpl_id, H5O_t UNUSED *open_oh, void *_mesg)
+H5O_ainfo_delete(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh, void *_mesg)
 {
     H5O_ainfo_t *ainfo = (H5O_ainfo_t *)_mesg;
     herr_t ret_value = SUCCEED;   /* Return value */
@@ -369,8 +369,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_ainfo_pre_copy_file(H5F_t UNUSED *file_src, const void UNUSED *native_src,
-    hbool_t *deleted, const H5O_copy_t *cpy_info, void UNUSED *udata)
+H5O_ainfo_pre_copy_file(H5F_t H5_ATTR_UNUSED *file_src, const void H5_ATTR_UNUSED *native_src,
+    hbool_t *deleted, const H5O_copy_t *cpy_info, void H5_ATTR_UNUSED *udata)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -403,8 +403,8 @@ H5O_ainfo_pre_copy_file(H5F_t UNUSED *file_src, const void UNUSED *native_src,
  */
 static void *
 H5O_ainfo_copy_file(H5F_t *file_src, void *mesg_src, H5F_t *file_dst,
-    hbool_t UNUSED *recompute_size, unsigned UNUSED *mesg_flags,
-    H5O_copy_t *cpy_info, void UNUSED *udata, hid_t dxpl_id)
+    hbool_t H5_ATTR_UNUSED *recompute_size, unsigned H5_ATTR_UNUSED *mesg_flags,
+    H5O_copy_t *cpy_info, void H5_ATTR_UNUSED *udata, hid_t dxpl_id)
 {
     H5O_ainfo_t *ainfo_src = (H5O_ainfo_t *)mesg_src;
     H5O_ainfo_t *ainfo_dst = NULL;
@@ -463,7 +463,7 @@ done:
  */
 static herr_t
 H5O_ainfo_post_copy_file(const H5O_loc_t *src_oloc, const void *mesg_src,
-    H5O_loc_t *dst_oloc, void *mesg_dst, unsigned UNUSED *mesg_flags,
+    H5O_loc_t *dst_oloc, void *mesg_dst, unsigned H5_ATTR_UNUSED *mesg_flags,
     hid_t dxpl_id, H5O_copy_t *cpy_info)
 {
     const H5O_ainfo_t *ainfo_src = (const H5O_ainfo_t *)mesg_src;
@@ -498,7 +498,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_ainfo_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * stream,
+H5O_ainfo_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream,
 	       int indent, int fwidth)
 {
     const H5O_ainfo_t       *ainfo = (const H5O_ainfo_t *) _mesg;
diff --git a/src/H5Oalloc.c b/src/H5Oalloc.c
index 76f392d..e9d4f85 100644
--- a/src/H5Oalloc.c
+++ b/src/H5Oalloc.c
@@ -514,7 +514,7 @@ H5O_alloc_extend_chunk(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned chunkno,
     size_t      aligned_size = H5O_ALIGN_OH(oh, size);
     uint8_t     *old_image;     /* Old address of chunk's image in memory */
     size_t      old_size;       /* Old size of chunk */
-    htri_t      extended;       /* If chunk can be extended */
+    htri_t      was_extended;   /* If chunk can be extended */
     size_t      extend_msg;     /* Index of null message to extend */
     hbool_t     extended_msg = FALSE;   /* Whether an existing message was extended */
     uint8_t     new_size_flags = 0;     /* New chunk #0 size flags */
@@ -592,11 +592,11 @@ H5O_alloc_extend_chunk(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned chunkno,
 	HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header chunk")
 
     /* Determine whether the chunk can be extended */
-    extended = H5MF_try_extend(f, dxpl_id, H5FD_MEM_OHDR, oh->chunk[chunkno].addr,
+    was_extended = H5MF_try_extend(f, dxpl_id, H5FD_MEM_OHDR, oh->chunk[chunkno].addr,
                                  (hsize_t)(oh->chunk[chunkno].size), (hsize_t)(delta + extra_prfx_size));
-    if(extended < 0) /* error */
+    if(was_extended < 0) /* error */
         HGOTO_ERROR(H5E_OHDR, H5E_CANTEXTEND, FAIL, "can't tell if we can extend chunk")
-    else if(extended == FALSE)     /* can't extend -- we are done */
+    else if(was_extended == FALSE)     /* can't extend -- we are done */
         HGOTO_DONE(FALSE)
 
     /* Adjust object header prefix flags */
diff --git a/src/H5Oattr.c b/src/H5Oattr.c
index 2269bd3..fd7fcda 100644
--- a/src/H5Oattr.c
+++ b/src/H5Oattr.c
@@ -122,7 +122,7 @@ H5FL_EXTERN(H5S_extent_t);
     function using malloc() and is returned to the caller.
 --------------------------------------------------------------------------*/
 static void *
-H5O_attr_decode(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, unsigned UNUSED mesg_flags,
+H5O_attr_decode(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, unsigned H5_ATTR_UNUSED mesg_flags,
     unsigned *ioflags, const uint8_t *p)
 {
     H5A_t		*attr = NULL;
@@ -218,7 +218,7 @@ H5O_attr_decode(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, unsigned UNUSED mesg_fl
         p += attr->shared->ds_size;
 
     /* Compute the size of the data */
-    H5_ASSIGN_OVERFLOW(attr->shared->data_size, H5S_GET_EXTENT_NPOINTS(attr->shared->ds) * H5T_get_size(attr->shared->dt), hsize_t, size_t);
+    H5_CHECKED_ASSIGN(attr->shared->data_size, size_t, H5S_GET_EXTENT_NPOINTS(attr->shared->ds) * H5T_get_size(attr->shared->dt), hsize_t);
 
     /* Go get the data */
     if(attr->shared->data_size) {
@@ -413,7 +413,7 @@ done:
     portion of the message).  It doesn't take into account alignment.
 --------------------------------------------------------------------------*/
 static size_t
-H5O_attr_size(const H5F_t UNUSED *f, const void *_mesg)
+H5O_attr_size(const H5F_t H5_ATTR_UNUSED *f, const void *_mesg)
 {
     const H5A_t         *attr = (const H5A_t *)_mesg;
     size_t		name_len;
@@ -478,7 +478,7 @@ H5O_attr_size(const H5F_t UNUSED *f, const void *_mesg)
  *-------------------------------------------------------------------------
  */
 herr_t
-H5O_attr_reset(void UNUSED *_mesg)
+H5O_attr_reset(void H5_ATTR_UNUSED *_mesg)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -614,8 +614,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_attr_pre_copy_file(H5F_t UNUSED *file_src, const void UNUSED *native_src,
-    hbool_t *deleted, const H5O_copy_t *cpy_info, void UNUSED *udata)
+H5O_attr_pre_copy_file(H5F_t H5_ATTR_UNUSED *file_src, const void H5_ATTR_UNUSED *native_src,
+    hbool_t *deleted, const H5O_copy_t *cpy_info, void H5_ATTR_UNUSED *udata)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -648,9 +648,9 @@ H5O_attr_pre_copy_file(H5F_t UNUSED *file_src, const void UNUSED *native_src,
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_attr_copy_file(H5F_t *file_src, const H5O_msg_class_t UNUSED *mesg_type,
+H5O_attr_copy_file(H5F_t *file_src, const H5O_msg_class_t H5_ATTR_UNUSED *mesg_type,
     void *native_src, H5F_t *file_dst, hbool_t *recompute_size,
-    H5O_copy_t *cpy_info, void UNUSED *udata, hid_t dxpl_id)
+    H5O_copy_t *cpy_info, void H5_ATTR_UNUSED *udata, hid_t dxpl_id)
 {
     void        *ret_value;             /* Return value */
 
diff --git a/src/H5Oattribute.c b/src/H5Oattribute.c
index 0ab74ac..0e6adf0 100644
--- a/src/H5Oattribute.c
+++ b/src/H5Oattribute.c
@@ -174,7 +174,7 @@ static htri_t H5O_attr_find_opened_attr(const H5O_loc_t *loc, H5A_t **attr,
  */
 static herr_t
 H5O_attr_to_dense_cb(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/,
-    unsigned UNUSED sequence, unsigned *oh_modified, void *_udata/*in,out*/)
+    unsigned H5_ATTR_UNUSED sequence, unsigned *oh_modified, void *_udata/*in,out*/)
 {
     H5O_iter_cvt_t *udata = (H5O_iter_cvt_t *)_udata;   /* Operator user data */
     H5A_t *attr = (H5A_t *)mesg->native;        /* Pointer to attribute to insert */
@@ -424,7 +424,7 @@ done:
  */
 static herr_t
 H5O_attr_open_cb(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, unsigned sequence,
-    unsigned UNUSED *oh_modified, void *_udata/*in,out*/)
+    unsigned H5_ATTR_UNUSED *oh_modified, void *_udata/*in,out*/)
 {
     H5O_iter_opn_t *udata = (H5O_iter_opn_t *)_udata;   /* Operator user data */
     herr_t ret_value = H5_ITER_CONT;   /* Return value */
@@ -863,7 +863,7 @@ done:
  */
 static herr_t
 H5O_attr_write_cb(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/,
-    unsigned UNUSED sequence, unsigned *oh_modified, void *_udata/*in,out*/)
+    unsigned H5_ATTR_UNUSED sequence, unsigned *oh_modified, void *_udata/*in,out*/)
 {
     H5O_iter_wrt_t *udata = (H5O_iter_wrt_t *)_udata;   /* Operator user data */
     H5O_chunk_proxy_t *chk_proxy = NULL;        /* Chunk that message is in */
@@ -1025,8 +1025,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_attr_rename_chk_cb(H5O_t UNUSED *oh, H5O_mesg_t *mesg/*in,out*/,
-    unsigned UNUSED sequence, unsigned UNUSED *oh_modified, void *_udata/*in,out*/)
+H5O_attr_rename_chk_cb(H5O_t H5_ATTR_UNUSED *oh, H5O_mesg_t *mesg/*in,out*/,
+    unsigned H5_ATTR_UNUSED sequence, unsigned H5_ATTR_UNUSED *oh_modified, void *_udata/*in,out*/)
 {
     H5O_iter_ren_t *udata = (H5O_iter_ren_t *)_udata;   /* Operator user data */
     herr_t ret_value = H5_ITER_CONT;   /* Return value */
@@ -1076,7 +1076,7 @@ H5O_attr_rename_chk_cb(H5O_t UNUSED *oh, H5O_mesg_t *mesg/*in,out*/,
  */
 static herr_t
 H5O_attr_rename_mod_cb(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/,
-    unsigned UNUSED sequence, unsigned *oh_modified, void *_udata/*in,out*/)
+    unsigned H5_ATTR_UNUSED sequence, unsigned *oh_modified, void *_udata/*in,out*/)
 {
     H5O_iter_ren_t *udata = (H5O_iter_ren_t *)_udata;   /* Operator user data */
     H5O_chunk_proxy_t *chk_proxy = NULL;        /* Chunk that message is in */
@@ -1542,7 +1542,7 @@ done:
  */
 static herr_t
 H5O_attr_remove_cb(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/,
-    unsigned UNUSED sequence, unsigned *oh_modified, void *_udata/*in,out*/)
+    unsigned H5_ATTR_UNUSED sequence, unsigned *oh_modified, void *_udata/*in,out*/)
 {
     H5O_iter_rm_t *udata = (H5O_iter_rm_t *)_udata;   /* Operator user data */
     herr_t ret_value = H5_ITER_CONT;    /* Return value */
@@ -1824,8 +1824,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_attr_exists_cb(H5O_t UNUSED *oh, H5O_mesg_t *mesg/*in,out*/,
-    unsigned UNUSED sequence, unsigned UNUSED *oh_modified, void *_udata/*in,out*/)
+H5O_attr_exists_cb(H5O_t H5_ATTR_UNUSED *oh, H5O_mesg_t *mesg/*in,out*/,
+    unsigned H5_ATTR_UNUSED sequence, unsigned H5_ATTR_UNUSED *oh_modified, void *_udata/*in,out*/)
 {
     H5O_iter_rm_t *udata = (H5O_iter_rm_t *)_udata;   /* Operator user data */
     herr_t ret_value = H5_ITER_CONT;    /* Return value */
diff --git a/src/H5Obogus.c b/src/H5Obogus.c
index d930683..b368ab6 100644
--- a/src/H5Obogus.c
+++ b/src/H5Obogus.c
@@ -87,8 +87,8 @@ const H5O_msg_class_t H5O_MSG_BOGUS[1] = {{
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_bogus_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_bogus_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_bogus_t *mesg = NULL;
     void *ret_value;            /* Return value */
@@ -135,7 +135,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_bogus_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void UNUSED *mesg)
+H5O_bogus_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void H5_ATTR_UNUSED *mesg)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -170,7 +170,7 @@ H5O_bogus_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, con
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_bogus_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void UNUSED *mesg)
+H5O_bogus_size(const H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, const void H5_ATTR_UNUSED *mesg)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -194,7 +194,7 @@ H5O_bogus_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_bogus_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE *stream,
+H5O_bogus_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE *stream,
 	       int indent, int fwidth)
 {
     const H5O_bogus_t	*mesg = (const H5O_bogus_t *)_mesg;
diff --git a/src/H5Obtreek.c b/src/H5Obtreek.c
index d25a7a3..802f23a 100644
--- a/src/H5Obtreek.c
+++ b/src/H5Obtreek.c
@@ -79,8 +79,8 @@ const H5O_msg_class_t H5O_MSG_BTREEK[1] = {{
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_btreek_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_btreek_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_btreek_t	*mesg;          /* Native message */
     void                *ret_value;     /* Return value */
@@ -125,7 +125,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_btreek_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_btreek_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_btreek_t *mesg = (const H5O_btreek_t *)_mesg;
 
@@ -201,7 +201,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_btreek_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void UNUSED *_mesg)
+H5O_btreek_size(const H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, const void H5_ATTR_UNUSED *_mesg)
 {
     size_t                   ret_value;
 
@@ -232,7 +232,7 @@ H5O_btreek_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_btreek_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE *stream,
+H5O_btreek_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE *stream,
     int indent, int fwidth)
 {
     const H5O_btreek_t *mesg = (const H5O_btreek_t *)_mesg;
diff --git a/src/H5Ocache.c b/src/H5Ocache.c
index d51e715..9057223 100644
--- a/src/H5Ocache.c
+++ b/src/H5Ocache.c
@@ -69,13 +69,13 @@
 
 /* Metadata cache callbacks */
 static H5O_t *H5O_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5O_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5O_t *oh, unsigned UNUSED * flags_ptr);
+static herr_t H5O_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5O_t *oh, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5O_dest(H5F_t *f, H5O_t *oh);
 static herr_t H5O_clear(H5F_t *f, H5O_t *oh, hbool_t destroy);
 static herr_t H5O_size(const H5F_t *f, const H5O_t *oh, size_t *size_ptr);
 
 static H5O_chunk_proxy_t *H5O_cache_chk_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
-static herr_t H5O_cache_chk_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5O_chunk_proxy_t *chk_proxy, unsigned UNUSED * flags_ptr);
+static herr_t H5O_cache_chk_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5O_chunk_proxy_t *chk_proxy, unsigned H5_ATTR_UNUSED * flags_ptr);
 static herr_t H5O_cache_chk_dest(H5F_t *f, H5O_chunk_proxy_t *chk_proxy);
 static herr_t H5O_cache_chk_clear(H5F_t *f, H5O_chunk_proxy_t *chk_proxy, hbool_t destroy);
 static herr_t H5O_cache_chk_size(const H5F_t *f, const H5O_chunk_proxy_t *chk_proxy, size_t *size_ptr);
@@ -182,7 +182,7 @@ H5O_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *_udata)
         HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, NULL, "unable to determine file size")
 
     /* Compute the size of the speculative object header buffer */
-    H5_ASSIGN_OVERFLOW(spec_read_size, MIN(eoa - addr, H5O_SPEC_READ_SIZE), /* From: */ hsize_t, /* To: */ size_t);
+    H5_CHECKED_ASSIGN(spec_read_size, size_t, MIN(eoa - addr, H5O_SPEC_READ_SIZE), hsize_t);
 
     /* Attempt to speculatively read both object header prefix and first chunk */
     if(H5F_block_read(f, H5FD_MEM_OHDR, addr, spec_read_size, dxpl_id, read_buf) < 0)
@@ -368,7 +368,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t UNUSED addr, H5O_t *oh, unsigned UNUSED * flags_ptr)
+H5O_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t H5_ATTR_UNUSED addr, H5O_t *oh, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     herr_t ret_value = SUCCEED; /* Return value */
 
@@ -646,7 +646,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_size(const H5F_t UNUSED *f, const H5O_t *oh, size_t *size_ptr)
+H5O_size(const H5F_t H5_ATTR_UNUSED *f, const H5O_t *oh, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -777,7 +777,7 @@ done:
  */
 static herr_t
 H5O_cache_chk_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr,
-    H5O_chunk_proxy_t *chk_proxy, unsigned UNUSED * flags_ptr)
+    H5O_chunk_proxy_t *chk_proxy, unsigned H5_ATTR_UNUSED * flags_ptr)
 {
     herr_t ret_value = SUCCEED; /* Return value */
 
@@ -948,7 +948,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_cache_chk_size(const H5F_t UNUSED *f, const H5O_chunk_proxy_t *chk_proxy, size_t *size_ptr)
+H5O_cache_chk_size(const H5F_t H5_ATTR_UNUSED *f, const H5O_chunk_proxy_t *chk_proxy, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
diff --git a/src/H5Ocont.c b/src/H5Ocont.c
index 647532b..a139654 100644
--- a/src/H5Ocont.c
+++ b/src/H5Ocont.c
@@ -90,8 +90,8 @@ H5FL_DEFINE(H5O_cont_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_cont_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_cont_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_cont_t             *cont = NULL;
     void                   *ret_value;
@@ -133,7 +133,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_cont_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_cont_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_cont_t       *cont = (const H5O_cont_t *) _mesg;
 
@@ -172,7 +172,7 @@ H5O_cont_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_cont_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void UNUSED *_mesg)
+H5O_cont_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void H5_ATTR_UNUSED *_mesg)
 {
     size_t ret_value;   /* Return value */
 
@@ -261,7 +261,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_cont_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * stream,
+H5O_cont_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream,
 	       int indent, int fwidth)
 {
     const H5O_cont_t       *cont = (const H5O_cont_t *) _mesg;
diff --git a/src/H5Ocopy.c b/src/H5Ocopy.c
index 5698fc0..cc2030f 100644
--- a/src/H5Ocopy.c
+++ b/src/H5Ocopy.c
@@ -86,7 +86,7 @@ static herr_t H5O_copy_header_real(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_ds
 static herr_t H5O_copy_header(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_dst /*out*/,
     hid_t dxpl_id, hid_t ocpypl_id);
 static herr_t H5O_copy_obj(H5G_loc_t *src_loc, H5G_loc_t *dst_loc,
-    const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id);
+    const char *dst_name, hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id);
 static herr_t H5O_copy_obj_by_ref(H5O_loc_t *src_oloc, hid_t dxpl_id,
     H5O_loc_t *dst_oloc, H5G_loc_t *dst_root_loc, H5O_copy_t *cpy_info);
 static herr_t H5O_copy_free_comm_dt_cb(void *item, void *key, void *op_data);
@@ -243,7 +243,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
         H5G_loc_reset(&tmp_loc);
 
         /* Check if object already exists in destination */
-        if(H5G_loc_find(&dst_loc, dst_name, &tmp_loc, H5P_DEFAULT, H5AC_dxpl_id) >= 0) {
+        if(H5G_loc_find(&dst_loc, dst_name, &tmp_loc, H5P_DEFAULT, H5AC_ind_dxpl_id) >= 0) {
             H5G_name_free(&tmp_path);
             HGOTO_ERROR(H5E_SYM, H5E_EXISTS, FAIL, "destination object already exists")
         } /* end if */
@@ -255,7 +255,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
     H5G_loc_reset(&src_loc);
 
     /* Find the source object to copy */
-    if(H5G_loc_find(&loc, src_name, &src_loc/*out*/, H5P_DEFAULT, H5AC_dxpl_id) < 0)
+    if(H5G_loc_find(&loc, src_name, &src_loc/*out*/, H5P_DEFAULT, H5AC_ind_dxpl_id) < 0)
         HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "source object not found")
     loc_found = TRUE;
 
@@ -281,7 +281,7 @@ H5Ocopy(hid_t src_loc_id, const char *src_name, hid_t dst_loc_id,
             HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not object copy property list")
 
     /* Do the actual copying of the object */
-    if(H5O_copy_obj(&src_loc, &dst_loc, dst_name, ocpypl_id, lcpl_id) < 0)
+    if(H5O_copy_obj(&src_loc, &dst_loc, dst_name, ocpypl_id, lcpl_id, H5AC_dxpl_id) < 0)
         HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, FAIL, "unable to copy object")
 
 done:
@@ -1009,7 +1009,7 @@ done:
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5O_copy_free_addrmap_cb(void *_item, void UNUSED *key, void UNUSED *op_data)
+H5O_copy_free_addrmap_cb(void *_item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *op_data)
 {
     H5O_addr_map_t *item = (H5O_addr_map_t *)_item;
 
@@ -1141,14 +1141,13 @@ done:
  */
 static herr_t
 H5O_copy_obj(H5G_loc_t *src_loc, H5G_loc_t *dst_loc, const char *dst_name,
-    hid_t ocpypl_id, hid_t lcpl_id)
+    hid_t ocpypl_id, hid_t lcpl_id, hid_t dxpl_id)
 {
     H5G_name_t      new_path;                   /* Copied object group hier. path */
     H5O_loc_t       new_oloc;                   /* Copied object object location */
     H5G_loc_t       new_loc;                    /* Group location of object copied */
     H5F_t           *cached_dst_file;           /* Cached destination file */
     hbool_t         entry_inserted = FALSE;     /* Flag to indicate that the new entry was inserted into a group */
-    hid_t           dxpl_id = H5AC_dxpl_id;     /* DXPL for operation */
     herr_t          ret_value = SUCCEED;        /* Return value */
 
     FUNC_ENTER_NOAPI(FAIL)
@@ -1402,7 +1401,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_copy_free_comm_dt_cb(void *item, void *_key, void UNUSED *op_data)
+H5O_copy_free_comm_dt_cb(void *item, void *_key, void H5_ATTR_UNUSED *op_data)
 {
     haddr_t     *addr = (haddr_t *)item;
     H5O_copy_search_comm_dt_key_t *key = (H5O_copy_search_comm_dt_key_t *)_key;
@@ -1646,7 +1645,8 @@ H5O_copy_search_comm_dt_check(H5O_loc_t *obj_oloc,
     attr_op.u.lib_op = H5O_copy_search_comm_dt_attr_cb;
     udata->obj_oloc.file = obj_oloc->file;
     udata->obj_oloc.addr = obj_oloc->addr;
-    if(H5O_attr_iterate_real((hid_t)-1, obj_oloc, udata->dxpl_id, H5_INDEX_NAME, H5_ITER_NATIVE, 0, NULL, &attr_op, udata) < 0)
+    if(H5O_attr_iterate_real((hid_t)-1, obj_oloc, udata->dxpl_id, H5_INDEX_NAME, 
+                             H5_ITER_NATIVE, (hsize_t)0, NULL, &attr_op, udata) < 0)
         HGOTO_ERROR(H5E_OHDR, H5E_BADITER, FAIL, "error iterating over attributes");
 
 done:
@@ -1682,7 +1682,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_copy_search_comm_dt_cb(hid_t UNUSED group, const char *name,
+H5O_copy_search_comm_dt_cb(hid_t H5_ATTR_UNUSED group, const char *name,
     const H5L_info_t *linfo, void *_udata)
 {
     H5O_copy_search_comm_dt_ud_t *udata = (H5O_copy_search_comm_dt_ud_t *)_udata; /* Skip list of dtypes in dest file */
diff --git a/src/H5Odrvinfo.c b/src/H5Odrvinfo.c
index 005b74a..73cb7cc 100644
--- a/src/H5Odrvinfo.c
+++ b/src/H5Odrvinfo.c
@@ -80,8 +80,8 @@ const H5O_msg_class_t H5O_MSG_DRVINFO[1] = {{
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_drvinfo_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_drvinfo_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_drvinfo_t	*mesg;          /* Native message */
     void                *ret_value;     /* Return value */
@@ -139,7 +139,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_drvinfo_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_drvinfo_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_drvinfo_t *mesg = (const H5O_drvinfo_t *)_mesg;
 
@@ -225,7 +225,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_drvinfo_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void *_mesg)
+H5O_drvinfo_size(const H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *_mesg)
 {
     const H5O_drvinfo_t *mesg = (const H5O_drvinfo_t *)_mesg;
     size_t                   ret_value;
@@ -289,7 +289,7 @@ H5O_drvinfo_reset(void *_mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_drvinfo_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE *stream,
+H5O_drvinfo_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE *stream,
     int indent, int fwidth)
 {
     const H5O_drvinfo_t *mesg = (const H5O_drvinfo_t *)_mesg;
diff --git a/src/H5Odtype.c b/src/H5Odtype.c
index cb6bf98..622a18e 100644
--- a/src/H5Odtype.c
+++ b/src/H5Odtype.c
@@ -1089,7 +1089,7 @@ done:
     function using malloc() and is returned to the caller.
 --------------------------------------------------------------------------*/
 static void *
-H5O_dtype_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh, unsigned UNUSED mesg_flags,
+H5O_dtype_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh, unsigned H5_ATTR_UNUSED mesg_flags,
     unsigned *ioflags/*in,out*/, const uint8_t *p)
 {
     H5T_t	*dt = NULL;
@@ -1508,7 +1508,7 @@ done:
  */
 static herr_t
 H5O_dtype_pre_copy_file(H5F_t *file_src, const void *mesg_src,
-    hbool_t UNUSED *deleted, const H5O_copy_t UNUSED *cpy_info,
+    hbool_t H5_ATTR_UNUSED *deleted, const H5O_copy_t H5_ATTR_UNUSED *cpy_info,
     void *_udata)
 {
     const H5T_t	*dt_src = (const H5T_t *)mesg_src;  /* Source datatype */
@@ -1557,9 +1557,9 @@ done:
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_dtype_copy_file(H5F_t UNUSED *file_src, const H5O_msg_class_t *mesg_type,
-    void *native_src, H5F_t *file_dst, hbool_t UNUSED *recompute_size,
-    H5O_copy_t UNUSED *cpy_info, void UNUSED *udata, hid_t UNUSED dxpl_id)
+H5O_dtype_copy_file(H5F_t H5_ATTR_UNUSED *file_src, const H5O_msg_class_t *mesg_type,
+    void *native_src, H5F_t *file_dst, hbool_t H5_ATTR_UNUSED *recompute_size,
+    H5O_copy_t H5_ATTR_UNUSED *cpy_info, void H5_ATTR_UNUSED *udata, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_t *dst_mesg;            /* Destination datatype */
     void *ret_value;            /* Return value */
@@ -1597,9 +1597,9 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_dtype_shared_post_copy_upd(const H5O_loc_t UNUSED *src_oloc,
-    const void UNUSED *mesg_src, H5O_loc_t UNUSED *dst_oloc, void *mesg_dst,
-    hid_t UNUSED dxpl_id, H5O_copy_t UNUSED *cpy_info)
+H5O_dtype_shared_post_copy_upd(const H5O_loc_t H5_ATTR_UNUSED *src_oloc,
+    const void H5_ATTR_UNUSED *mesg_src, H5O_loc_t H5_ATTR_UNUSED *dst_oloc, void *mesg_dst,
+    hid_t H5_ATTR_UNUSED dxpl_id, H5O_copy_t H5_ATTR_UNUSED *cpy_info)
 {
     H5T_t       *dt_dst = (H5T_t *)mesg_dst;    /* Destination datatype */
 
diff --git a/src/H5Oefl.c b/src/H5Oefl.c
index bbc7e92..c413c3c 100644
--- a/src/H5Oefl.c
+++ b/src/H5Oefl.c
@@ -89,8 +89,8 @@ const H5O_msg_class_t H5O_MSG_EFL[1] = {{
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_efl_decode(H5F_t *f, hid_t dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_efl_decode(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_efl_t		*mesg = NULL;
     int			version;
@@ -192,7 +192,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_efl_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_efl_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_efl_t	*mesg = (const H5O_efl_t *)_mesg;
     size_t		u;      /* Local index variable */
@@ -340,7 +340,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_efl_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void *_mesg)
+H5O_efl_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *_mesg)
 {
     const H5O_efl_t	*mesg = (const H5O_efl_t *) _mesg;
     size_t		ret_value = 0;
@@ -454,9 +454,9 @@ done:
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_efl_copy_file(H5F_t UNUSED *file_src, void *mesg_src, H5F_t *file_dst,
-    hbool_t UNUSED *recompute_size, unsigned UNUSED *mesg_flags,
-    H5O_copy_t UNUSED *cpy_info, void UNUSED *_udata, hid_t dxpl_id)
+H5O_efl_copy_file(H5F_t H5_ATTR_UNUSED *file_src, void *mesg_src, H5F_t *file_dst,
+    hbool_t H5_ATTR_UNUSED *recompute_size, unsigned H5_ATTR_UNUSED *mesg_flags,
+    H5O_copy_t H5_ATTR_UNUSED *cpy_info, void H5_ATTR_UNUSED *_udata, hid_t dxpl_id)
 {
     H5O_efl_t   *efl_src = (H5O_efl_t *) mesg_src;
     H5O_efl_t   *efl_dst = NULL;
@@ -541,7 +541,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_efl_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * stream,
+H5O_efl_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream,
 	      int indent, int fwidth)
 {
     const H5O_efl_t	   *mesg = (const H5O_efl_t *) _mesg;
diff --git a/src/H5Ofill.c b/src/H5Ofill.c
index 1e8ccb1..3bdf2b6 100644
--- a/src/H5Ofill.c
+++ b/src/H5Ofill.c
@@ -184,8 +184,8 @@ H5FL_BLK_EXTERN(type_conv);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_fill_new_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_fill_new_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_fill_t	*fill = NULL;
     void	*ret_value;
@@ -298,8 +298,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_fill_old_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_fill_old_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_fill_t *fill = NULL;		/* Decoded fill value message */
     void *ret_value;                    /* Return value */
@@ -359,7 +359,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_fill_new_encode(H5F_t UNUSED *f, uint8_t *p, const void *_fill)
+H5O_fill_new_encode(H5F_t H5_ATTR_UNUSED *f, uint8_t *p, const void *_fill)
 {
     const H5O_fill_t	*fill = (const H5O_fill_t *)_fill;
 
@@ -455,7 +455,7 @@ H5O_fill_new_encode(H5F_t UNUSED *f, uint8_t *p, const void *_fill)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_fill_old_encode(H5F_t UNUSED *f, uint8_t *p, const void *_fill)
+H5O_fill_old_encode(H5F_t H5_ATTR_UNUSED *f, uint8_t *p, const void *_fill)
 {
     const H5O_fill_t *fill = (const H5O_fill_t *)_fill;
 
@@ -608,7 +608,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_fill_new_size(const H5F_t UNUSED *f, const void *_fill)
+H5O_fill_new_size(const H5F_t H5_ATTR_UNUSED *f, const void *_fill)
 {
     const H5O_fill_t	*fill = (const H5O_fill_t *)_fill;
     size_t		ret_value;
@@ -656,7 +656,7 @@ H5O_fill_new_size(const H5F_t UNUSED *f, const void *_fill)
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_fill_old_size(const H5F_t UNUSED *f, const void *_fill)
+H5O_fill_old_size(const H5F_t H5_ATTR_UNUSED *f, const void *_fill)
 {
     const H5O_fill_t *fill = (const H5O_fill_t *)_fill;
 
@@ -805,7 +805,7 @@ H5O_fill_free(void *fill)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_fill_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_fill, FILE *stream,
+H5O_fill_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_fill, FILE *stream,
 	       int indent, int fwidth)
 {
     const H5O_fill_t *fill = (const H5O_fill_t *)_fill;
@@ -977,7 +977,7 @@ H5O_fill_convert(H5O_fill_t *fill, H5T_t *dset_type, hbool_t *fill_changed, hid_
         } /* end if */
         H5T_close(fill->type);
         fill->type = NULL;
-        H5_ASSIGN_OVERFLOW(fill->size, H5T_get_size(dset_type), size_t, ssize_t);
+        H5_CHECKED_ASSIGN(fill->size, ssize_t, H5T_get_size(dset_type), size_t);
 
         /* Note that the fill value info has changed */
         *fill_changed = TRUE;
diff --git a/src/H5Oginfo.c b/src/H5Oginfo.c
index d579984..5519021 100644
--- a/src/H5Oginfo.c
+++ b/src/H5Oginfo.c
@@ -95,8 +95,8 @@ H5FL_DEFINE_STATIC(H5O_ginfo_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_ginfo_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_ginfo_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_ginfo_t         *ginfo = NULL;  /* Pointer to group information message */
     unsigned char       flags;          /* Flags for encoding group info */
@@ -168,7 +168,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_ginfo_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_ginfo_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_ginfo_t  *ginfo = (const H5O_ginfo_t *) _mesg;
     unsigned char       flags;          /* Flags for encoding group info */
@@ -262,7 +262,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_ginfo_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void *_mesg)
+H5O_ginfo_size(const H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *_mesg)
 {
     const H5O_ginfo_t   *ginfo = (const H5O_ginfo_t *)_mesg;
     size_t ret_value;   /* Return value */
@@ -324,7 +324,7 @@ H5O_ginfo_free(void *mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_ginfo_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * stream,
+H5O_ginfo_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream,
 	       int indent, int fwidth)
 {
     const H5O_ginfo_t       *ginfo = (const H5O_ginfo_t *) _mesg;
diff --git a/src/H5Olayout.c b/src/H5Olayout.c
index 4c43873..20ea1a0 100644
--- a/src/H5Olayout.c
+++ b/src/H5Olayout.c
@@ -96,8 +96,8 @@ H5FL_DEFINE(H5O_layout_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_layout_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_layout_t           *mesg = NULL;
     unsigned               u;
@@ -291,7 +291,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_layout_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_layout_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_layout_t     *mesg = (const H5O_layout_t *) _mesg;
     unsigned               u;
@@ -432,7 +432,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_layout_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void *_mesg)
+H5O_layout_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *_mesg)
 {
     const H5O_layout_t     *mesg = (const H5O_layout_t *) _mesg;
     size_t                  ret_value;
@@ -587,7 +587,7 @@ done:
  */
 static void *
 H5O_layout_copy_file(H5F_t *file_src, void *mesg_src, H5F_t *file_dst,
-    hbool_t UNUSED *recompute_size, unsigned UNUSED *mesg_flags,
+    hbool_t H5_ATTR_UNUSED *recompute_size, unsigned H5_ATTR_UNUSED *mesg_flags,
     H5O_copy_t *cpy_info, void *_udata, hid_t dxpl_id)
 {
     H5D_copy_file_ud_t *udata = (H5D_copy_file_ud_t *)_udata;   /* Dataset copying user data */
@@ -682,7 +682,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg,
+H5O_layout_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg,
     FILE * stream, int indent, int fwidth)
 {
     const H5O_layout_t     *mesg = (const H5O_layout_t *) _mesg;
diff --git a/src/H5Olinfo.c b/src/H5Olinfo.c
index 77df8f6..d9351b3 100644
--- a/src/H5Olinfo.c
+++ b/src/H5Olinfo.c
@@ -114,8 +114,8 @@ H5FL_DEFINE_STATIC(H5O_linfo_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_linfo_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_linfo_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_linfo_t	*linfo = NULL;  /* Link info */
     unsigned char index_flags;  /* Flags for encoding link index info */
@@ -189,7 +189,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_linfo_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_linfo_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_linfo_t   *linfo = (const H5O_linfo_t *)_mesg;
     unsigned char       index_flags;          /* Flags for encoding link index info */
@@ -286,7 +286,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_linfo_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void *_mesg)
+H5O_linfo_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *_mesg)
 {
     const H5O_linfo_t   *linfo = (const H5O_linfo_t *)_mesg;
     size_t ret_value;   /* Return value */
@@ -343,7 +343,7 @@ H5O_linfo_free(void *mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_linfo_delete(H5F_t *f, hid_t dxpl_id, H5O_t UNUSED *open_oh, void *_mesg)
+H5O_linfo_delete(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh, void *_mesg)
 {
     H5O_linfo_t *linfo = (H5O_linfo_t *)_mesg;
     herr_t ret_value = SUCCEED;   /* Return value */
@@ -379,8 +379,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_linfo_copy_file(H5F_t UNUSED *file_src, void *native_src, H5F_t *file_dst,
-    hbool_t UNUSED *recompute_size, unsigned UNUSED *mesg_flags,
+H5O_linfo_copy_file(H5F_t H5_ATTR_UNUSED *file_src, void *native_src, H5F_t *file_dst,
+    hbool_t H5_ATTR_UNUSED *recompute_size, unsigned H5_ATTR_UNUSED *mesg_flags,
     H5O_copy_t *cpy_info, void *_udata, hid_t dxpl_id)
 {
     H5O_linfo_t          *linfo_src = (H5O_linfo_t *) native_src;
@@ -496,7 +496,7 @@ done:
  */
 static herr_t
 H5O_linfo_post_copy_file(const H5O_loc_t *src_oloc, const void *mesg_src,
-    H5O_loc_t *dst_oloc, void *mesg_dst, unsigned UNUSED *mesg_flags,
+    H5O_loc_t *dst_oloc, void *mesg_dst, unsigned H5_ATTR_UNUSED *mesg_flags,
     hid_t dxpl_id, H5O_copy_t *cpy_info)
 {
     const H5O_linfo_t   *linfo_src = (const H5O_linfo_t *)mesg_src;
@@ -552,7 +552,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_linfo_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * stream,
+H5O_linfo_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream,
 	       int indent, int fwidth)
 {
     const H5O_linfo_t       *linfo = (const H5O_linfo_t *) _mesg;
diff --git a/src/H5Olink.c b/src/H5Olink.c
index 184f6b9..53191ca 100644
--- a/src/H5Olink.c
+++ b/src/H5Olink.c
@@ -118,8 +118,8 @@ H5FL_DEFINE_STATIC(H5O_link_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_link_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_link_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_link_t          *lnk = NULL;    /* Pointer to link message */
     size_t              len = 0;        /* Length of a string in the message */
@@ -280,7 +280,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_link_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_link_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_link_t    *lnk = (const H5O_link_t *) _mesg;
     uint64_t            len;            /* Length of a string in the message */
@@ -475,7 +475,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_link_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void *_mesg)
+H5O_link_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *_mesg)
 {
     const H5O_link_t *lnk = (const H5O_link_t *)_mesg;
     uint64_t name_len;    /* Length of name */
@@ -611,7 +611,7 @@ H5O_link_free(void *_mesg)
  *-------------------------------------------------------------------------
  */
 herr_t
-H5O_link_delete(H5F_t *f, hid_t dxpl_id, H5O_t UNUSED *open_oh, void *_mesg)
+H5O_link_delete(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh, void *_mesg)
 {
     H5O_link_t *lnk = (H5O_link_t *)_mesg;
     herr_t ret_value = SUCCEED;   /* Return value */
@@ -686,8 +686,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_link_pre_copy_file(H5F_t UNUSED *file_src, const void UNUSED *native_src,
-    hbool_t *deleted, const H5O_copy_t *cpy_info, void UNUSED *udata)
+H5O_link_pre_copy_file(H5F_t H5_ATTR_UNUSED *file_src, const void H5_ATTR_UNUSED *native_src,
+    hbool_t *deleted, const H5O_copy_t *cpy_info, void H5_ATTR_UNUSED *udata)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -722,9 +722,9 @@ H5O_link_pre_copy_file(H5F_t UNUSED *file_src, const void UNUSED *native_src,
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_link_copy_file(H5F_t UNUSED *file_src, void *native_src, H5F_t UNUSED *file_dst,
-    hbool_t UNUSED *recompute_size, unsigned UNUSED *mesg_flags,
-    H5O_copy_t UNUSED *cpy_info, void UNUSED *udata, hid_t UNUSED dxpl_id)
+H5O_link_copy_file(H5F_t H5_ATTR_UNUSED *file_src, void *native_src, H5F_t H5_ATTR_UNUSED *file_dst,
+    hbool_t H5_ATTR_UNUSED *recompute_size, unsigned H5_ATTR_UNUSED *mesg_flags,
+    H5O_copy_t H5_ATTR_UNUSED *cpy_info, void H5_ATTR_UNUSED *udata, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5O_link_t  *link_src = (H5O_link_t *)native_src;
     void        *ret_value;          /* Return value */
@@ -764,7 +764,7 @@ done:
  */
 static herr_t
 H5O_link_post_copy_file(const H5O_loc_t *src_oloc, const void *mesg_src,
-    H5O_loc_t *dst_oloc, void *mesg_dst, unsigned UNUSED *mesg_flags,
+    H5O_loc_t *dst_oloc, void *mesg_dst, unsigned H5_ATTR_UNUSED *mesg_flags,
     hid_t dxpl_id, H5O_copy_t *cpy_info)
 {
     const H5O_link_t    *link_src = (const H5O_link_t *)mesg_src;
@@ -806,7 +806,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_link_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * stream,
+H5O_link_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream,
 	       int indent, int fwidth)
 {
     const H5O_link_t    *lnk = (const H5O_link_t *) _mesg;
diff --git a/src/H5Omessage.c b/src/H5Omessage.c
index c349a9b..7a946df 100644
--- a/src/H5Omessage.c
+++ b/src/H5Omessage.c
@@ -807,7 +807,7 @@ H5O_msg_count(const H5O_loc_t *loc, unsigned type_id, hid_t dxpl_id)
 
     /* Count the messages of the correct type */
     msg_count = H5O_msg_count_real(oh, type);
-    H5_ASSIGN_OVERFLOW(ret_value, msg_count, unsigned, int);
+    H5_CHECKED_ASSIGN(ret_value, int, msg_count, unsigned);
 
 done:
     if(oh && H5O_unprotect(loc, dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
@@ -2310,7 +2310,7 @@ H5O_msg_get_chunkno(const H5O_loc_t *loc, unsigned type_id, hid_t dxpl_id)
         HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL, "message type not found")
 
     /* Set return value */
-    H5_ASSIGN_OVERFLOW(ret_value, idx_msg->chunkno, unsigned, int);
+    H5_CHECKED_ASSIGN(ret_value, int, idx_msg->chunkno, unsigned);
 
 done:
     if(oh && H5O_unprotect(loc, dxpl_id, oh, H5AC__NO_FLAGS_SET) < 0)
diff --git a/src/H5Omtime.c b/src/H5Omtime.c
index a3703b5..7c1851b 100644
--- a/src/H5Omtime.c
+++ b/src/H5Omtime.c
@@ -119,8 +119,8 @@ H5FL_DEFINE(time_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_mtime_new_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_mtime_new_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     time_t	*mesg;
     uint32_t    tmp_time;       /* Temporary copy of the time */
@@ -172,13 +172,20 @@ done:
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_mtime_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_mtime_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     time_t	*mesg, the_time;
     int	i;
     struct tm	tm;
-    void        *ret_value;     /* Return value */
+    void        *ret_value = NULL;      /* Return value */
+#if _MSC_VER >= 1900  /* VS 2015 */
+/* In gcc and in Visual Studio prior to VS 2015 'timezone' is a global
+ * variable declared in time.h. That variable was deprecated and in VS 2015
+ * is removed, with _get_timezone replacing it.
+ */
+    long timezone = 0;
+#endif
 
     FUNC_ENTER_NOAPI_NOINIT
 
@@ -219,6 +226,9 @@ H5O_mtime_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
     /* BSD-like systems */
     the_time += tm.tm_gmtoff;
 #elif defined(H5_HAVE_TIMEZONE)
+    #if _MSC_VER >= 1900  // VS 2015
+        HDget_timezone(&timezone);
+    #endif
     /* GNU/Linux systems */
     the_time -= timezone - (tm.tm_isdst ? 3600 : 0);
 #else
@@ -259,7 +269,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_mtime_new_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_mtime_new_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const time_t	*mesg = (const time_t *) _mesg;
 
@@ -301,7 +311,7 @@ H5O_mtime_new_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p,
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_mtime_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_mtime_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const time_t	*mesg = (const time_t *) _mesg;
     struct tm		*tm;
@@ -387,7 +397,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_mtime_new_size(const H5F_t UNUSED * f, hbool_t UNUSED disable_shared, const void UNUSED * mesg)
+H5O_mtime_new_size(const H5F_t H5_ATTR_UNUSED * f, hbool_t H5_ATTR_UNUSED disable_shared, const void H5_ATTR_UNUSED * mesg)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -420,7 +430,7 @@ H5O_mtime_new_size(const H5F_t UNUSED * f, hbool_t UNUSED disable_shared, const
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_mtime_size(const H5F_t UNUSED * f, hbool_t UNUSED disable_shared, const void UNUSED * mesg)
+H5O_mtime_size(const H5F_t H5_ATTR_UNUSED * f, hbool_t H5_ATTR_UNUSED disable_shared, const void H5_ATTR_UNUSED * mesg)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -448,7 +458,7 @@ H5O_mtime_size(const H5F_t UNUSED * f, hbool_t UNUSED disable_shared, const void
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_mtime_reset(void UNUSED *_mesg)
+H5O_mtime_reset(void H5_ATTR_UNUSED *_mesg)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -499,7 +509,7 @@ H5O_mtime_free(void *mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_mtime_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE *stream,
+H5O_mtime_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE *stream,
 		int indent, int fwidth)
 {
     const time_t	*mesg = (const time_t *)_mesg;
diff --git a/src/H5Oname.c b/src/H5Oname.c
index 5ca05e1..2cd9e72 100644
--- a/src/H5Oname.c
+++ b/src/H5Oname.c
@@ -84,8 +84,8 @@ const H5O_msg_class_t H5O_MSG_NAME[1] = {{
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_name_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_name_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_name_t          *mesg;
     void                *ret_value;     /* Return value */
@@ -131,7 +131,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_name_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_name_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_name_t       *mesg = (const H5O_name_t *) _mesg;
 
@@ -220,7 +220,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_name_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void *_mesg)
+H5O_name_size(const H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, const void *_mesg)
 {
     const H5O_name_t       *mesg = (const H5O_name_t *) _mesg;
     size_t                  ret_value;
@@ -286,7 +286,7 @@ H5O_name_reset(void *_mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_name_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE *stream,
+H5O_name_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE *stream,
 	       int indent, int fwidth)
 {
     const H5O_name_t	*mesg = (const H5O_name_t *)_mesg;
diff --git a/src/H5Opline.c b/src/H5Opline.c
index 0a0f12a..b79a73c 100644
--- a/src/H5Opline.c
+++ b/src/H5Opline.c
@@ -109,8 +109,8 @@ H5FL_DEFINE(H5O_pline_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_pline_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_pline_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_pline_t		*pline = NULL;          /* Pipeline message */
     H5Z_filter_info_t   *filter;                /* Filter to decode */
@@ -237,7 +237,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_pline_encode(H5F_t UNUSED *f, uint8_t *p/*out*/, const void *mesg)
+H5O_pline_encode(H5F_t H5_ATTR_UNUSED *f, uint8_t *p/*out*/, const void *mesg)
 {
     const H5O_pline_t	*pline = (const H5O_pline_t*)mesg;      /* Pipeline message to encode */
     const       H5Z_filter_info_t *filter;      /* Filter to encode */
@@ -430,7 +430,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_pline_size(const H5F_t UNUSED *f, const void *mesg)
+H5O_pline_size(const H5F_t H5_ATTR_UNUSED *f, const void *mesg)
 {
     const H5O_pline_t	*pline = (const H5O_pline_t*)mesg;      /* Pipeline message */
     size_t i;                   /* Local index variable */
@@ -566,8 +566,8 @@ H5O_pline_free(void *mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_pline_pre_copy_file(H5F_t UNUSED *file_src, const void *mesg_src,
-    hbool_t UNUSED *deleted, const H5O_copy_t UNUSED *cpy_info, void *_udata)
+H5O_pline_pre_copy_file(H5F_t H5_ATTR_UNUSED *file_src, const void *mesg_src,
+    hbool_t H5_ATTR_UNUSED *deleted, const H5O_copy_t H5_ATTR_UNUSED *cpy_info, void *_udata)
 {
     const H5O_pline_t *pline_src = (const H5O_pline_t *)mesg_src;    /* Source datatype */
     H5O_copy_file_ud_common_t *udata = (H5O_copy_file_ud_common_t *)_udata; /* Object copying user data */
@@ -606,7 +606,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_pline_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *mesg, FILE *stream,
+H5O_pline_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *mesg, FILE *stream,
 		int indent, int fwidth)
 {
     const H5O_pline_t	*pline = (const H5O_pline_t *)mesg;
diff --git a/src/H5Orefcount.c b/src/H5Orefcount.c
index 399c8da..f5c7e25 100644
--- a/src/H5Orefcount.c
+++ b/src/H5Orefcount.c
@@ -90,8 +90,8 @@ H5FL_DEFINE_STATIC(H5O_refcount_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_refcount_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_refcount_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_refcount_t *refcount = NULL;  /* Reference count */
     void        *ret_value;     /* Return value */
@@ -138,7 +138,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_refcount_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_refcount_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_refcount_t   *refcount = (const H5O_refcount_t *)_mesg;
 
@@ -216,8 +216,8 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_refcount_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared,
-    const void UNUSED *_mesg)
+H5O_refcount_size(const H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared,
+    const void H5_ATTR_UNUSED *_mesg)
 {
     size_t ret_value;   /* Return value */
 
@@ -271,8 +271,8 @@ H5O_refcount_free(void *mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_refcount_pre_copy_file(H5F_t UNUSED *file_src, const void UNUSED *native_src,
-    hbool_t *deleted, const H5O_copy_t UNUSED *cpy_info, void UNUSED *udata)
+H5O_refcount_pre_copy_file(H5F_t H5_ATTR_UNUSED *file_src, const void H5_ATTR_UNUSED *native_src,
+    hbool_t *deleted, const H5O_copy_t H5_ATTR_UNUSED *cpy_info, void H5_ATTR_UNUSED *udata)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -303,7 +303,7 @@ H5O_refcount_pre_copy_file(H5F_t UNUSED *file_src, const void UNUSED *native_src
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_refcount_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * stream,
+H5O_refcount_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream,
 	       int indent, int fwidth)
 {
     const H5O_refcount_t       *refcount = (const H5O_refcount_t *) _mesg;
diff --git a/src/H5Osdspace.c b/src/H5Osdspace.c
index 875cd56..8d357c2 100644
--- a/src/H5Osdspace.c
+++ b/src/H5Osdspace.c
@@ -111,8 +111,8 @@ H5FL_ARR_EXTERN(hsize_t);
     within this function using malloc() and is returned to the caller.
 --------------------------------------------------------------------------*/
 static void *
-H5O_sdspace_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_sdspace_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5S_extent_t	*sdim = NULL;/* New extent dimensionality structure */
     void		*ret_value;
@@ -442,8 +442,8 @@ H5O_sdspace_free(void *mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_sdspace_pre_copy_file(H5F_t UNUSED *file_src, const void *mesg_src,
-    hbool_t UNUSED *deleted, const H5O_copy_t UNUSED *cpy_info, void *_udata)
+H5O_sdspace_pre_copy_file(H5F_t H5_ATTR_UNUSED *file_src, const void *mesg_src,
+    hbool_t H5_ATTR_UNUSED *deleted, const H5O_copy_t H5_ATTR_UNUSED *cpy_info, void *_udata)
 {
     const H5S_extent_t *src_space_extent = (const H5S_extent_t *)mesg_src;  /* Source dataspace extent */
     H5D_copy_file_ud_t *udata = (H5D_copy_file_ud_t *)_udata;   /* Dataset copying user data */
@@ -495,7 +495,7 @@ done:
     parameter.
 --------------------------------------------------------------------------*/
 static herr_t
-H5O_sdspace_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *mesg,
+H5O_sdspace_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *mesg,
 		  FILE * stream, int indent, int fwidth)
 {
     const H5S_extent_t	   *sdim = (const H5S_extent_t *)mesg;
diff --git a/src/H5Oshared.c b/src/H5Oshared.c
index 8a18c4a..bd1bb07 100644
--- a/src/H5Oshared.c
+++ b/src/H5Oshared.c
@@ -589,8 +589,8 @@ done:
 herr_t
 H5O_shared_copy_file(H5F_t *file_src, H5F_t *file_dst,
     const H5O_msg_class_t *mesg_type, const void *_native_src, void *_native_dst,
-    hbool_t UNUSED *recompute_size, unsigned *mesg_flags, H5O_copy_t *cpy_info,
-    void UNUSED *udata, hid_t dxpl_id)
+    hbool_t H5_ATTR_UNUSED *recompute_size, unsigned *mesg_flags, H5O_copy_t *cpy_info,
+    void H5_ATTR_UNUSED *udata, hid_t dxpl_id)
 {
     const H5O_shared_t  *shared_src = (const H5O_shared_t *)_native_src; /* Alias to shared info in native source */
     H5O_shared_t        *shared_dst = (H5O_shared_t *)_native_dst; /* Alias to shared info in native destination message */
diff --git a/src/H5Oshared.h b/src/H5Oshared.h
index 3ec5709..2ac2a98 100644
--- a/src/H5Oshared.h
+++ b/src/H5Oshared.h
@@ -47,7 +47,7 @@
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline void *
+static H5_INLINE void *
 H5O_SHARED_DECODE(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, unsigned mesg_flags,
     unsigned *ioflags, const uint8_t *p)
 {
@@ -107,7 +107,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline herr_t
+static H5_INLINE herr_t
 H5O_SHARED_ENCODE(H5F_t *f, hbool_t disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_shared_t *sh_mesg = (const H5O_shared_t *)_mesg;     /* Pointer to shared message portion of actual message */
@@ -162,7 +162,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline size_t
+static H5_INLINE size_t
 H5O_SHARED_SIZE(const H5F_t *f, hbool_t disable_shared, const void *_mesg)
 {
     const H5O_shared_t *sh_mesg = (const H5O_shared_t *)_mesg;     /* Pointer to shared message portion of actual message */
@@ -215,7 +215,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline herr_t
+static H5_INLINE herr_t
 H5O_SHARED_DELETE(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, void *_mesg)
 {
     H5O_shared_t *sh_mesg = (H5O_shared_t *)_mesg;     /* Pointer to shared message portion of actual message */
@@ -267,7 +267,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline herr_t
+static H5_INLINE herr_t
 H5O_SHARED_LINK(H5F_t *f, hid_t dxpl_id, H5O_t *open_oh, void *_mesg)
 {
     H5O_shared_t *sh_mesg = (H5O_shared_t *)_mesg;     /* Pointer to shared message portion of actual message */
@@ -318,7 +318,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline void *
+static H5_INLINE void *
 H5O_SHARED_COPY_FILE(H5F_t *file_src, void *_native_src, H5F_t *file_dst,
     hbool_t *recompute_size, unsigned *mesg_flags, H5O_copy_t *cpy_info,
     void *udata, hid_t dxpl_id)
@@ -382,7 +382,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline herr_t
+static H5_INLINE herr_t
 H5O_SHARED_POST_COPY_FILE(const H5O_loc_t *oloc_src, const void *mesg_src,
     H5O_loc_t *oloc_dst, void *mesg_dst, unsigned *mesg_flags, hid_t dxpl_id,
     H5O_copy_t *cpy_info)
@@ -453,7 +453,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline herr_t
+static H5_INLINE herr_t
 H5O_SHARED_DEBUG(H5F_t *f, hid_t dxpl_id, const void *_mesg, FILE *stream,
     int indent, int fwidth)
 {
diff --git a/src/H5Oshmesg.c b/src/H5Oshmesg.c
index 2575856..deb10ab 100644
--- a/src/H5Oshmesg.c
+++ b/src/H5Oshmesg.c
@@ -76,8 +76,8 @@ const H5O_msg_class_t H5O_MSG_SHMESG[1] = {{
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_shmesg_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_shmesg_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_shmesg_table_t	*mesg;          /* Native message */
     void                *ret_value;     /* Return value */
@@ -117,7 +117,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_shmesg_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_shmesg_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_shmesg_table_t *mesg = (const H5O_shmesg_table_t *)_mesg;
 
@@ -192,7 +192,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_shmesg_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void UNUSED *_mesg)
+H5O_shmesg_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void H5_ATTR_UNUSED *_mesg)
 {
     size_t                   ret_value;
 
@@ -222,7 +222,7 @@ H5O_shmesg_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void UNUSED
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_shmesg_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE *stream,
+H5O_shmesg_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE *stream,
     int indent, int fwidth)
 {
     const H5O_shmesg_table_t *mesg = (const H5O_shmesg_table_t *)_mesg;
diff --git a/src/H5Ostab.c b/src/H5Ostab.c
index 0230e3d..cfbaacb 100644
--- a/src/H5Ostab.c
+++ b/src/H5Ostab.c
@@ -97,8 +97,8 @@ H5FL_DEFINE_STATIC(H5O_stab_t);
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_stab_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
-    unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
+H5O_stab_decode(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh,
+    unsigned H5_ATTR_UNUSED mesg_flags, unsigned H5_ATTR_UNUSED *ioflags, const uint8_t *p)
 {
     H5O_stab_t          *stab = NULL;
     void                *ret_value;     /* Return value */
@@ -142,7 +142,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_stab_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const void *_mesg)
+H5O_stab_encode(H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, uint8_t *p, const void *_mesg)
 {
     const H5O_stab_t       *stab = (const H5O_stab_t *) _mesg;
 
@@ -220,7 +220,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static size_t
-H5O_stab_size(const H5F_t *f, hbool_t UNUSED disable_shared, const void UNUSED *_mesg)
+H5O_stab_size(const H5F_t *f, hbool_t H5_ATTR_UNUSED disable_shared, const void H5_ATTR_UNUSED *_mesg)
 {
     size_t ret_value;   /* Return value */
 
@@ -273,7 +273,7 @@ H5O_stab_free(void *mesg)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_stab_delete(H5F_t *f, hid_t dxpl_id, H5O_t UNUSED *open_oh, void *mesg)
+H5O_stab_delete(H5F_t *f, hid_t dxpl_id, H5O_t H5_ATTR_UNUSED *open_oh, void *mesg)
 {
     herr_t ret_value = SUCCEED;   /* Return value */
 
@@ -308,8 +308,8 @@ done:
  */
 static void *
 H5O_stab_copy_file(H5F_t *file_src, void *native_src, H5F_t *file_dst,
-    hbool_t UNUSED *recompute_size, unsigned UNUSED *mesg_flags,
-    H5O_copy_t UNUSED *cpy_info, void *_udata, hid_t dxpl_id)
+    hbool_t H5_ATTR_UNUSED *recompute_size, unsigned H5_ATTR_UNUSED *mesg_flags,
+    H5O_copy_t H5_ATTR_UNUSED *cpy_info, void *_udata, hid_t dxpl_id)
 {
     H5O_stab_t          *stab_src = (H5O_stab_t *) native_src;
     H5O_stab_t          *stab_dst = NULL;
@@ -366,7 +366,7 @@ done:
  */
 static herr_t
 H5O_stab_post_copy_file(const H5O_loc_t *src_oloc, const void *mesg_src,
-    H5O_loc_t *dst_oloc, void *mesg_dst, unsigned UNUSED *mesg_flags,
+    H5O_loc_t *dst_oloc, void *mesg_dst, unsigned H5_ATTR_UNUSED *mesg_flags,
     hid_t dxpl_id, H5O_copy_t *cpy_info)
 {
     const H5O_stab_t    *stab_src = (const H5O_stab_t *)mesg_src;
@@ -419,7 +419,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5O_stab_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE * stream,
+H5O_stab_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE * stream,
 	       int indent, int fwidth)
 {
     const H5O_stab_t       *stab = (const H5O_stab_t *) _mesg;
diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c
index 0841e5b..071ce41 100644
--- a/src/H5Pdcpl.c
+++ b/src/H5Pdcpl.c
@@ -226,7 +226,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P__dcrt_copy(hid_t dst_plist_id, hid_t src_plist_id, void UNUSED *copy_data)
+H5P__dcrt_copy(hid_t dst_plist_id, hid_t src_plist_id, void H5_ATTR_UNUSED *copy_data)
 {
     H5O_fill_t     src_fill, dst_fill;          /* Source & destination fill values */
     H5O_efl_t      src_efl, dst_efl;            /* Source & destination external file lists */
@@ -340,7 +340,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P__dcrt_close(hid_t dcpl_id, void UNUSED *close_data)
+H5P__dcrt_close(hid_t dcpl_id, void H5_ATTR_UNUSED *close_data)
 {
     H5O_fill_t      fill;               /* Fill value */
     H5O_efl_t       efl;                /* External file list */
@@ -388,7 +388,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5P__dcrt_layout_cmp(const void *_layout1, const void *_layout2, size_t UNUSED size)
+H5P__dcrt_layout_cmp(const void *_layout1, const void *_layout2, size_t H5_ATTR_UNUSED size)
 {
     const H5O_layout_t *layout1 = (const H5O_layout_t *)_layout1,     /* Create local aliases for values */
         *layout2 = (const H5O_layout_t *)_layout2;
@@ -458,7 +458,7 @@ done:
  *-------------------------------------------------------------------------
  */
 int
-H5P_fill_value_cmp(const void *_fill1, const void *_fill2, size_t UNUSED size)
+H5P_fill_value_cmp(const void *_fill1, const void *_fill2, size_t H5_ATTR_UNUSED size)
 {
     const H5O_fill_t *fill1 = (const H5O_fill_t *)_fill1,     /* Create local aliases for values */
         *fill2 = (const H5O_fill_t *)_fill2;
@@ -520,7 +520,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5P__dcrt_ext_file_list_cmp(const void *_efl1, const void *_efl2, size_t UNUSED size)
+H5P__dcrt_ext_file_list_cmp(const void *_efl1, const void *_efl2, size_t H5_ATTR_UNUSED size)
 {
     const H5O_efl_t *efl1 = (const H5O_efl_t *)_efl1,     /* Create local aliases for values */
         *efl2 = (const H5O_efl_t *)_efl2;
diff --git a/src/H5Pdxpl.c b/src/H5Pdxpl.c
index 4372417..ce16036 100644
--- a/src/H5Pdxpl.c
+++ b/src/H5Pdxpl.c
@@ -385,7 +385,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P__dxfr_xform_del(hid_t UNUSED prop_id, const char UNUSED *name, size_t UNUSED size, void *value)
+H5P__dxfr_xform_del(hid_t H5_ATTR_UNUSED prop_id, const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
@@ -417,7 +417,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P__dxfr_xform_copy(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P__dxfr_xform_copy(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
@@ -447,7 +447,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5P__dxfr_xform_cmp(const void *_xform1, const void *_xform2, size_t UNUSED size)
+H5P__dxfr_xform_cmp(const void *_xform1, const void *_xform2, size_t H5_ATTR_UNUSED size)
 {
     const H5Z_data_xform_t * const *xform1 = (const H5Z_data_xform_t * const *)_xform1; /* Create local aliases for values */
     const H5Z_data_xform_t * const *xform2 = (const H5Z_data_xform_t * const *)_xform2; /* Create local aliases for values */
@@ -502,7 +502,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P__dxfr_xform_close(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P__dxfr_xform_close(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
diff --git a/src/H5Pfapl.c b/src/H5Pfapl.c
index e5bba33..3c9dcc4 100644
--- a/src/H5Pfapl.c
+++ b/src/H5Pfapl.c
@@ -354,7 +354,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P_facc_create(hid_t fapl_id, void UNUSED *copy_data)
+H5P_facc_create(hid_t fapl_id, void H5_ATTR_UNUSED *copy_data)
 {
     hid_t          driver_id;
     H5P_genplist_t *plist;              /* Property list */
@@ -404,7 +404,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P_facc_copy(hid_t dst_fapl_id, hid_t src_fapl_id, void UNUSED *copy_data)
+H5P_facc_copy(hid_t dst_fapl_id, hid_t src_fapl_id, void H5_ATTR_UNUSED *copy_data)
 {
     hid_t          driver_id;
     H5P_genplist_t *src_plist;              /* Source property list */
@@ -455,7 +455,7 @@ done:
  */
 /* ARGSUSED */
 herr_t
-H5P_facc_close(hid_t fapl_id, void UNUSED *close_data)
+H5P_facc_close(hid_t fapl_id, void H5_ATTR_UNUSED *close_data)
 {
     hid_t      driver_id;
     H5P_genplist_t *plist;              /* Property list */
@@ -1026,7 +1026,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5Pset_cache(hid_t plist_id, int UNUSED mdc_nelmts,
+H5Pset_cache(hid_t plist_id, int H5_ATTR_UNUSED mdc_nelmts,
 	     size_t rdcc_nslots, size_t rdcc_nbytes, double rdcc_w0)
 {
     H5P_genplist_t *plist;      /* Property list pointer */
@@ -2203,7 +2203,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5P_file_image_info_del(hid_t UNUSED prop_id, const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_file_image_info_del(hid_t H5_ATTR_UNUSED prop_id, const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     H5FD_file_image_info_t info;        /* Image info struct */
     herr_t ret_value = SUCCEED;         /* Return value */
@@ -2257,7 +2257,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5P_file_image_info_copy(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_file_image_info_copy(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
@@ -2332,7 +2332,7 @@ done:
  *-------------------------------------------------------------------------
  */
 herr_t
-H5P_file_image_info_close(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_file_image_info_close(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
diff --git a/src/H5Pgcpl.c b/src/H5Pgcpl.c
index 754e44d..bf29f28 100644
--- a/src/H5Pgcpl.c
+++ b/src/H5Pgcpl.c
@@ -161,7 +161,7 @@ H5Pset_local_heap_size_hint(hid_t plist_id, size_t size_hint)
         HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get group info")
 
     /* Update field */
-    H5_ASSIGN_OVERFLOW(ginfo.lheap_size_hint, size_hint, size_t, uint32_t);
+    H5_CHECKED_ASSIGN(ginfo.lheap_size_hint, uint32_t, size_hint, size_t);
 
     /* Set value */
     if(H5P_set(plist, H5G_CRT_GROUP_INFO_NAME, &ginfo) < 0)
diff --git a/src/H5Pint.c b/src/H5Pint.c
index 8bc0b6a..abd204e 100644
--- a/src/H5Pint.c
+++ b/src/H5Pint.c
@@ -1302,7 +1302,7 @@ H5P_free_prop(H5P_genprop_t *prop)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5P_free_prop_cb(void *item, void UNUSED *key, void *op_data)
+H5P_free_prop_cb(void *item, void H5_ATTR_UNUSED *key, void *op_data)
 {
     H5P_genprop_t *tprop=(H5P_genprop_t *)item; /* Temporary pointer to property */
     hbool_t make_cb = *(hbool_t *)op_data;      /* Whether to make property 'close' callback */
@@ -1342,7 +1342,7 @@ H5P_free_prop_cb(void *item, void UNUSED *key, void *op_data)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5P_free_del_name_cb(void *item, void UNUSED *key, void UNUSED *op_data)
+H5P_free_del_name_cb(void *item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *op_data)
 {
     char *del_name=(char *)item;       /* Temporary pointer to deleted name */
 
@@ -1472,7 +1472,7 @@ H5P_access_class(H5P_genclass_t *pclass, H5P_class_mod_t mod)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static int
-H5P_open_class_path_cb(void *_obj, hid_t UNUSED id, void *_key)
+H5P_open_class_path_cb(void *_obj, hid_t H5_ATTR_UNUSED id, void *_key)
 {
     H5P_genclass_t *obj = (H5P_genclass_t *)_obj; /* Pointer to the class for this ID */
     H5P_check_class_t *key = (H5P_check_class_t *)_key; /* Pointer to key information for comparison */
diff --git a/src/H5Plapl.c b/src/H5Plapl.c
index 25ae661..24c6614 100644
--- a/src/H5Plapl.c
+++ b/src/H5Plapl.c
@@ -206,7 +206,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P_lacc_elink_fapl_del(hid_t UNUSED prop_id, const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_lacc_elink_fapl_del(hid_t H5_ATTR_UNUSED prop_id, const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     hid_t          l_fapl_id;
     herr_t         ret_value = SUCCEED;
@@ -240,7 +240,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P_lacc_elink_fapl_copy(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_lacc_elink_fapl_copy(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     hid_t          l_fapl_id;
     herr_t         ret_value = SUCCEED;
@@ -281,7 +281,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5P_lacc_elink_fapl_cmp(const void *value1, const void *value2, size_t UNUSED size)
+H5P_lacc_elink_fapl_cmp(const void *value1, const void *value2, size_t H5_ATTR_UNUSED size)
 {
     const hid_t *fapl1 = (const hid_t *)value1;
     const hid_t *fapl2 = (const hid_t *)value2;
@@ -328,7 +328,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P_lacc_elink_fapl_close(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_lacc_elink_fapl_close(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     hid_t		l_fapl_id;
     herr_t     		ret_value = SUCCEED;
@@ -360,7 +360,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P_lacc_elink_pref_del(hid_t UNUSED prop_id, const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_lacc_elink_pref_del(hid_t H5_ATTR_UNUSED prop_id, const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -386,7 +386,7 @@ H5P_lacc_elink_pref_del(hid_t UNUSED prop_id, const char UNUSED *name, size_t UN
  */
 /* ARGSUSED */
 static herr_t
-H5P_lacc_elink_pref_copy(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_lacc_elink_pref_copy(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -413,7 +413,7 @@ H5P_lacc_elink_pref_copy(const char UNUSED *name, size_t UNUSED size, void *valu
  *-------------------------------------------------------------------------
  */
 static int
-H5P_lacc_elink_pref_cmp(const void *value1, const void *value2, size_t UNUSED size)
+H5P_lacc_elink_pref_cmp(const void *value1, const void *value2, size_t H5_ATTR_UNUSED size)
 {
     const char *pref1 = *(const char * const *)value1;
     const char *pref2 = *(const char * const *)value2;
@@ -447,7 +447,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P_lacc_elink_pref_close(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P_lacc_elink_pref_close(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
diff --git a/src/H5Pocpl.c b/src/H5Pocpl.c
index 838931c..74b0bc7 100644
--- a/src/H5Pocpl.c
+++ b/src/H5Pocpl.c
@@ -182,7 +182,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P__ocrt_copy(hid_t dst_plist_id, hid_t src_plist_id, void UNUSED *copy_data)
+H5P__ocrt_copy(hid_t dst_plist_id, hid_t src_plist_id, void H5_ATTR_UNUSED *copy_data)
 {
     H5O_pline_t    src_pline, dst_pline;        /* Source & destination pipelines */
     H5P_genplist_t *src_plist;                  /* Pointer to source property list */
@@ -231,7 +231,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P__ocrt_close(hid_t dcpl_id, void UNUSED *close_data)
+H5P__ocrt_close(hid_t dcpl_id, void H5_ATTR_UNUSED *close_data)
 {
     H5O_pline_t     pline;              /* I/O pipeline */
     H5P_genplist_t *plist;              /* Property list */
@@ -811,16 +811,12 @@ H5P__set_filter(H5P_genplist_t *plist, H5Z_filter_t filter, unsigned int flags,
 
     /* If filter is not available, try to dynamically load it */
     if(!filter_avail) {
-#ifndef H5_VMS
         const H5Z_class2_t *filter_info;
 
         if(NULL == (filter_info = (const H5Z_class2_t *)H5PL_load(H5PL_TYPE_FILTER, (int)filter)))
             HGOTO_ERROR(H5E_PLINE, H5E_CANTLOAD, FAIL, "failed to load dynamically loaded plugin")
         if(H5Z_register(filter_info) < 0)
 	    HGOTO_ERROR(H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register dynamic filter")
-#else /*H5_VMS*/
-        HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "filter is NOT registered")
-#endif /*H5_VMS*/
     } /* end if */
 
     /* Get the pipeline property to append to */
@@ -1462,7 +1458,7 @@ H5P_get_filter(const H5Z_filter_info_t *filter, unsigned int *flags/*out*/,
  *-------------------------------------------------------------------------
  */
 static int
-H5P__ocrt_pipeline_cmp(const void *_pline1, const void *_pline2, size_t UNUSED size)
+H5P__ocrt_pipeline_cmp(const void *_pline1, const void *_pline2, size_t H5_ATTR_UNUSED size)
 {
     const H5O_pline_t *pline1 = (const H5O_pline_t *)_pline1,     /* Create local aliases for values */
         *pline2 = (const H5O_pline_t *)_pline2;
diff --git a/src/H5Pocpypl.c b/src/H5Pocpypl.c
index 895c8fe..3de20ff 100644
--- a/src/H5Pocpypl.c
+++ b/src/H5Pocpypl.c
@@ -208,7 +208,7 @@ H5P__free_merge_comm_dtype_list(H5O_copy_dtype_merge_list_t *dt_list)
  */
 /* ARGSUSED */
 static herr_t
-H5P__ocpy_merge_comm_dt_list_copy(const char UNUSED *name, size_t UNUSED size,
+H5P__ocpy_merge_comm_dt_list_copy(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size,
     void *value)
 {
     const H5O_copy_dtype_merge_list_t *src_dt_list;     /* Source merge named datatype lists */
@@ -278,7 +278,7 @@ done:
  */
 static int
 H5P__ocpy_merge_comm_dt_list_cmp(const void *_dt_list1, const void *_dt_list2,
-    size_t UNUSED size)
+    size_t H5_ATTR_UNUSED size)
 {
     const H5O_copy_dtype_merge_list_t *dt_list1 = *(H5O_copy_dtype_merge_list_t * const *)_dt_list1,     /* Create local aliases for values */
         *dt_list2 = *(H5O_copy_dtype_merge_list_t * const *)_dt_list2;
@@ -327,7 +327,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5P__ocpy_merge_comm_dt_list_close(const char UNUSED *name, size_t UNUSED size, void *value)
+H5P__ocpy_merge_comm_dt_list_close(const char H5_ATTR_UNUSED *name, size_t H5_ATTR_UNUSED size, void *value)
 {
     FUNC_ENTER_STATIC_NOERR
 
diff --git a/src/H5R.c b/src/H5R.c
index 1e99b86..a2b310c 100644
--- a/src/H5R.c
+++ b/src/H5R.c
@@ -589,7 +589,7 @@ H5Rdereference(hid_t id, H5R_type_t ref_type, const void *_ref)
     file = loc.oloc->file;
 
     /* Create reference */
-    if((ret_value = H5R_dereference(file, H5AC_dxpl_id, ref_type, _ref, TRUE)) < 0)
+    if((ret_value = H5R_dereference(file, H5AC_ind_dxpl_id, ref_type, _ref, TRUE)) < 0)
         HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to dereference object")
 
 done:
@@ -1005,7 +1005,7 @@ H5Rget_name(hid_t id, H5R_type_t ref_type, const void *_ref, char *name,
     file = loc.oloc->file;
 
     /* Get name */
-    if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_dxpl_id, id, ref_type, _ref, name, size)) < 0)
+    if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_ind_dxpl_id, id, ref_type, _ref, name, size)) < 0)
         HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object path")
 
 done:
diff --git a/src/H5S.c b/src/H5S.c
index f687476..5eb4425 100644
--- a/src/H5S.c
+++ b/src/H5S.c
@@ -190,7 +190,7 @@ H5S_create(H5S_class_t type)
     FUNC_ENTER_NOAPI(NULL)
 
     /* Create a new dataspace */
-    if(NULL == (new_ds = H5FL_MALLOC(H5S_t)))
+    if(NULL == (new_ds = H5FL_CALLOC(H5S_t)))
         HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
 
     /* Initialize default dataspace state */
@@ -1520,7 +1520,7 @@ H5S_encode(H5S_t *obj, unsigned char *buf, size_t *nalloc)
     /* Find out the size of buffer needed for selection */
     if((sselect_size = H5S_SELECT_SERIAL_SIZE(obj)) < 0)
 	HGOTO_ERROR(H5E_DATASPACE, H5E_BADSIZE, FAIL, "can't find dataspace selection size")
-    H5_ASSIGN_OVERFLOW(select_size, sselect_size, hssize_t, size_t);
+    H5_CHECKED_ASSIGN(select_size, size_t, sselect_size, hssize_t);
 
     /* Verify the size of buffer.  If it's not big enough, simply return the
      * right size without filling the buffer. */
diff --git a/src/H5SL.c b/src/H5SL.c
index 2e72819..d766066 100644
--- a/src/H5SL.c
+++ b/src/H5SL.c
@@ -74,11 +74,26 @@
 
 /* Define the code template for searches for the "OP" in the H5SL_LOCATE macro */
 #define H5SL_LOCATE_SEARCH_FOUND(SLIST, X, I)                   \
-        HGOTO_DONE(X->item);
+{                                                                              \
+    HDassert(!X->removed);                                                     \
+    HGOTO_DONE(X->item);                                                       \
+} /* end block */
+
+/* Define the code template for deferred removals for the "OP" in the
+ * H5SL_LOCATE macro */
+#define H5SL_LOCATE_SEARCH_DEFER_REMOVE_FOUND(SLIST, X, I)      \
+{                                                                              \
+    HDassert(!X->removed);                                                     \
+    X->removed = TRUE;                                                         \
+    HGOTO_DONE(X->item);                                                       \
+} /* end block */
 
 /* Define the code template for finds for the "OP" in the H5SL_LOCATE macro */
 #define H5SL_LOCATE_FIND_FOUND(SLIST, X, I)                     \
-        HGOTO_DONE(X);
+{                                                                              \
+    HDassert(!X->removed);                                                     \
+    HGOTO_DONE(X);                                                             \
+} /* end block */
 
 
 /* Define a code template for comparing scalar keys for the "CMP" in the H5SL_LOCATE macro */
@@ -133,8 +148,8 @@
 #define H5SL_LOCATE_GENERIC_HASHINIT(KEY, HASHVAL)
 
 
-/* Macro used to find node for operation */
-#define H5SL_LOCATE(OP, CMP, SLIST, X, TYPE, KEY, HASHVAL)      \
+/* Macro used to find node for operation, if all keys are valid */
+#define H5SL_LOCATE_OPT(OP, CMP, SLIST, X, TYPE, KEY, HASHVAL)      \
 {                                                                       \
     int _i;                     /* Local index variable */              \
     unsigned _count;            /* Num nodes searched at this height */ \
@@ -150,15 +165,53 @@
     } /* end for */                                                     \
     X = X->forward[0];                                                  \
     if(X != NULL && H5_GLUE3(H5SL_LOCATE_,CMP,_EQ)(SLIST, TYPE, X, KEY, HASHVAL) ) { \
-        /* What to do when a node is found */				\
+        /* What to do when a node is found */                           \
         H5_GLUE3(H5SL_LOCATE_,OP,_FOUND)(SLIST, X, _i)                  \
     } /* end if */                                                      \
 }
 
+/* Macro used to find node for operation, if there may be "removed" nodes in the
+ * list (whose keys cannot be read) */
+#define H5SL_LOCATE_SAFE(OP, CMP, SLIST, X, TYPE, KEY, HASHVAL)      \
+{                                                                       \
+    int _i;                     /* Local index variable */              \
+    H5SL_node_t *_low = X;                                              \
+    H5SL_node_t *_high = NULL;                                          \
+                                                                        \
+    H5_GLUE3(H5SL_LOCATE_,CMP,_HASHINIT)(KEY, HASHVAL)                  \
+    for(_i = (int)SLIST->curr_level; _i >= 0; _i--) {                   \
+        X = _low->forward[_i];                                          \
+        while(X != _high) {                                             \
+            if(!X->removed) {                                            \
+                if(H5_GLUE3(H5SL_LOCATE_,CMP,_CMP)(SLIST, TYPE, X, KEY, HASHVAL)) \
+                    _low = X;                                           \
+                else                                                    \
+                    break;                                              \
+            } /* end if */                                              \
+            X = X->forward[_i];                                         \
+        } /* end while */                                               \
+        _high = X;                                                      \
+        if(X != NULL && H5_GLUE3(H5SL_LOCATE_,CMP,_EQ)(SLIST, TYPE, X, KEY, HASHVAL) ) { \
+            /* What to do when a node is found */                       \
+            H5_GLUE3(H5SL_LOCATE_,OP,_FOUND)(SLIST, X, _i)              \
+            break;                                                      \
+        } /* end if */                                                  \
+    } /* end for */                                                     \
+}
+
+/* Macro used to find node for operation */
+#define H5SL_LOCATE(OP, CMP, SLIST, X, TYPE, KEY, HASHVAL)              \
+{                                                                       \
+    if((SLIST)->safe_iterating)                                         \
+        H5SL_LOCATE_SAFE(OP, CMP, SLIST, X, TYPE, KEY, HASHVAL)         \
+    else                                                                \
+        H5SL_LOCATE_OPT(OP, CMP, SLIST, X, TYPE, KEY, HASHVAL)          \
+}
+
 
 /* Macro used to grow a node by 1.  Does not update pointers. LVL is the current
  * level of X.  Does not update LVL but does update X->lvl. */
-#define H5SL_GROW(X, LVL)                                                      \
+#define H5SL_GROW(X, LVL, ERR)                                                 \
 {                                                                              \
     /* Check if we need to increase allocation of forward pointers */          \
     if(LVL + 1 >= 1u << X->log_nalloc) {                                       \
@@ -176,8 +229,10 @@
                 HDassert(H5SL_fac_nused_g == H5SL_fac_nalloc_g);               \
                 /* Double the size of the array of factory pointers */         \
                 H5SL_fac_nalloc_g *= 2;                                        \
-                H5SL_fac_g = (H5FL_fac_head_t **)H5MM_realloc((void *)H5SL_fac_g, \
-                    H5SL_fac_nalloc_g * sizeof(H5FL_fac_head_t *));            \
+                if(NULL == (H5SL_fac_g = (H5FL_fac_head_t **)H5MM_realloc(     \
+                        (void *)H5SL_fac_g, H5SL_fac_nalloc_g                  \
+                        * sizeof(H5FL_fac_head_t *))))                         \
+                    HGOTO_ERROR(H5E_SLIST, H5E_CANTALLOC, ERR, "memory allocation failed") \
             } /* end if */                                                     \
                                                                                \
             /* Create the new factory */                                       \
@@ -187,7 +242,7 @@
                                                                                \
         /* Allocate space for new forward pointers */                          \
         if(NULL == (_tmp = (H5SL_node_t **)H5FL_FAC_MALLOC(H5SL_fac_g[X->log_nalloc]))) \
-            HGOTO_ERROR(H5E_SLIST, H5E_NOSPACE, NULL, "memory allocation failed") \
+            HGOTO_ERROR(H5E_SLIST, H5E_CANTALLOC, ERR, "memory allocation failed") \
         HDmemcpy((void *)_tmp, (const void *)X->forward, (LVL + 1) * sizeof(H5SL_node_t *)); \
         X->forward = (H5SL_node_t **)H5FL_FAC_FREE(H5SL_fac_g[X->log_nalloc-1], (void *)X->forward);  \
         X->forward = _tmp;                                                     \
@@ -222,16 +277,16 @@
 /* Macro used to grow the level of a node by 1, with appropriate changes to the
  * head node if necessary.  PREV is the previous node of the height that X is to
  * grow to. */
-#define H5SL_PROMOTE(SLIST, X, PREV)                                           \
+#define H5SL_PROMOTE(SLIST, X, PREV, ERR)                                      \
 {                                                                              \
     size_t _lvl = X->level;                                                    \
                                                                                \
-    H5SL_GROW(X, _lvl);                                                        \
+    H5SL_GROW(X, _lvl, ERR);                                                   \
                                                                                \
     if(_lvl == (size_t) SLIST->curr_level) {                                   \
         HDassert(PREV == SLIST->header);                                       \
         /* Grow the head */                                                    \
-        H5SL_GROW(PREV, _lvl);                                                 \
+        H5SL_GROW(PREV, _lvl, ERR)                                             \
         SLIST->curr_level++;                                                   \
         X->forward[_lvl+1] = NULL;                                             \
     } else {                                                                   \
@@ -298,7 +353,7 @@
         /* Promote the middle node if necessary */                             \
         if(_count == 3) {                                                      \
             HDassert(X == _last->forward[_i]->forward[_i]);                    \
-            H5SL_PROMOTE(SLIST, X, _last)                                      \
+            H5SL_PROMOTE(SLIST, X, _last, NULL)                                \
         }                                                                      \
                                                                                \
         /* Prepare to drop down */                                             \
@@ -314,161 +369,167 @@
 /* Macro used to remove node */
 #define H5SL_REMOVE(CMP, SLIST, X, TYPE, KEY, HASHVAL)                         \
 {                                                                              \
-    H5SL_node_t *_last = X;     /* Lowest node in the current gap */           \
-    H5SL_node_t *_llast = X;    /* Lowest node in the previous gap */          \
-    H5SL_node_t *_next = NULL;  /* Highest node in the currect gap */          \
-    H5SL_node_t *_drop = NULL;  /* Low node of the gap to drop into */         \
-    H5SL_node_t *_ldrop = NULL; /* Low node of gap before the one to drop into */ \
-    H5SL_node_t *_head = SLIST->header; /* Head of the skip list */            \
-    int         _count;         /* Number of nodes in the current gap */       \
-    int         _i = (int)SLIST->curr_level;                                   \
+    /* Check for deferred removal */                                           \
+    if(SLIST->safe_iterating)                                                  \
+        H5SL_LOCATE(SEARCH_DEFER_REMOVE, CMP, SLIST, X, TYPE, KEY, HASHVAL)           \
+    else {                                                                     \
+        H5SL_node_t *_last = X;     /* Lowest node in the current gap */       \
+        H5SL_node_t *_llast = X;    /* Lowest node in the previous gap */      \
+        H5SL_node_t *_next = NULL;  /* Highest node in the currect gap */      \
+        H5SL_node_t *_drop = NULL;  /* Low node of the gap to drop into */     \
+        H5SL_node_t *_ldrop = NULL; /* Low node of gap before the one to drop into */ \
+        H5SL_node_t *_head = SLIST->header; /* Head of the skip list */        \
+        int         _count;         /* Number of nodes in the current gap */   \
+        int         _i = (int)SLIST->curr_level;                               \
                                                                                \
-    if(_i < 0)                                                                 \
-        HGOTO_DONE(NULL);                                                      \
+        if(_i < 0)                                                             \
+            HGOTO_DONE(NULL);                                                  \
                                                                                \
-    H5_GLUE3(H5SL_LOCATE_,CMP,_HASHINIT)(KEY, HASHVAL)                         \
+        H5_GLUE3(H5SL_LOCATE_,CMP,_HASHINIT)(KEY, HASHVAL)                     \
                                                                                \
-    /* Find the gap to drop in to at the highest level */                      \
-    while(X && (!X->key || H5_GLUE3(H5SL_LOCATE_,CMP,_CMP)(SLIST, TYPE, X, KEY, HASHVAL))) { \
-        _llast = _last;                                                        \
-        _last = X;                                                             \
-        X = X->forward[_i];                                                    \
-    }                                                                          \
-    _next = X;                                                                 \
+        /* Find the gap to drop in to at the highest level */                  \
+        while(X && (!X->key || H5_GLUE3(H5SL_LOCATE_,CMP,_CMP)(SLIST, TYPE, X, KEY, HASHVAL))) { \
+            _llast = _last;                                                    \
+            _last = X;                                                         \
+            X = X->forward[_i];                                                \
+        }                                                                      \
+        _next = X;                                                             \
                                                                                \
-    /* Main loop */                                                            \
-    for(_i--; _i >= 0; _i--) {                                                 \
-        /* Search for the node to drop into, also count the number of nodes */ \
-        /* of height _i in this gap and keep track of of the node before */    \
-        /* the one to drop into (_ldrop will become _llast, _drop will */      \
-        /* become _last). */                                                   \
-        X = _ldrop = _last;                                                    \
-        _drop = NULL;                                                          \
-        for(_count = 0; ; _count++) {                                          \
-            /* Terminate if this is the last node in the gap */                \
-            if(X->forward[_i] == _next) {                                      \
-                if(!_drop)                                                     \
-                    _drop = X;                                                 \
-                break;                                                         \
-            } /* end if */                                                     \
+        /* Main loop */                                                        \
+        for(_i--; _i >= 0; _i--) {                                             \
+            /* Search for the node to drop into, also count the number of */   \
+            /* nodes of height _i in this gap and keep track of of the node */ \
+            /* before the one to drop into (_ldrop will become _llast, */      \
+            /* _drop will become _last). */                                    \
+            X = _ldrop = _last;                                                \
+            _drop = NULL;                                                      \
+            for(_count = 0; ; _count++) {                                      \
+                /* Terminate if this is the last node in the gap */            \
+                if(X->forward[_i] == _next) {                                  \
+                    if(!_drop)                                                 \
+                        _drop = X;                                             \
+                    break;                                                     \
+                } /* end if */                                                 \
                                                                                \
-            /* If we have already found the node to drop into and there is */  \
-            /* more than one node in this gap, we can stop searching */        \
-            if(_drop) {                                                        \
-                HDassert(_count >= 1);                                         \
-                _count = 2;                                                    \
-                break;                                                         \
-            } else { /* !_drop */                                              \
-                /* Check if this node is the start of the next gap */          \
-                if (!H5_GLUE3(H5SL_LOCATE_,CMP,_CMP)(SLIST, TYPE, X->forward[_i], KEY, HASHVAL)) { \
-                    _drop = X;                                                 \
-                    /* Again check if we can stop searching */                 \
-                    if(_count) {                                               \
-                        _count = 2;                                            \
-                        break;                                                 \
+                /* If we have already found the node to drop into and there */ \
+                /* is more than one node in this gap, we can stop searching */ \
+                if(_drop) {                                                    \
+                    HDassert(_count >= 1);                                     \
+                    _count = 2;                                                \
+                    break;                                                     \
+                } else { /* !_drop */                                          \
+                    /* Check if this node is the start of the next gap */      \
+                    if (!H5_GLUE3(H5SL_LOCATE_,CMP,_CMP)(SLIST, TYPE, X->forward[_i], KEY, HASHVAL)) { \
+                        _drop = X;                                             \
+                        /* Again check if we can stop searching */             \
+                        if(_count) {                                           \
+                            _count = 2;                                        \
+                            break;                                             \
+                        } /* end if */                                         \
                     } /* end if */                                             \
-                } /* end if */                                                 \
-                else                                                           \
-                    _ldrop = X;                                                \
-            } /* end else */                                                   \
+                    else                                                       \
+                        _ldrop = X;                                            \
+                } /* end else */                                               \
                                                                                \
-            /* No need to check the last node in the gap if there are 3, as */ \
-            /* there cannot be a fourth */                                     \
-            if(_count == 2) {                                                  \
-                if(!_drop)                                                     \
-                    _drop = X->forward[_i];                                    \
-                break;                                                         \
-            } /* end if */                                                     \
-            X = X->forward[_i];                                                \
-        } /* end for */                                                        \
-        HDassert(_count >= 1 && _count <= 3);                                  \
-        HDassert(!_drop->forward[_i] ||                                        \
-                !H5_GLUE3(H5SL_LOCATE_,CMP,_CMP)(SLIST, TYPE, _drop->forward[_i], KEY, HASHVAL)); \
+                /* No need to check the last node in the gap if there are */   \
+                /* 3, as there cannot be a fourth */                           \
+                if(_count == 2) {                                              \
+                    if(!_drop)                                                 \
+                        _drop = X->forward[_i];                                \
+                    break;                                                     \
+                } /* end if */                                                 \
+                X = X->forward[_i];                                            \
+            } /* end for */                                                    \
+            HDassert(_count >= 1 && _count <= 3);                              \
+            HDassert(!_drop->forward[_i] ||                                    \
+                    !H5_GLUE3(H5SL_LOCATE_,CMP,_CMP)(SLIST, TYPE, _drop->forward[_i], KEY, HASHVAL)); \
                                                                                \
-        /* Check if we need to adjust node heights */                          \
-        if(_count == 1) {                                                      \
-            /* Check if we are in the first gap */                             \
-            if(_llast == _last) {                                              \
-                /* We are in the first gap, count the number of nodes of */    \
-                /* height _i in the next gap.  We need only check one node */  \
-                /* to see if we should promote the first node in the next */   \
-                /* gap */                                                      \
-                _llast = _next->forward[_i+1];                                 \
+            /* Check if we need to adjust node heights */                      \
+            if(_count == 1) {                                                  \
+                /* Check if we are in the first gap */                         \
+                if(_llast == _last) {                                          \
+                    /* We are in the first gap, count the number of nodes */   \
+                    /* of height _i in the next gap.  We need only check */    \
+                    /* onenode to see if we should promote the first node */   \
+                    /* in the next gap */                                      \
+                    _llast = _next->forward[_i+1];                             \
                                                                                \
-                /* Demote the separator node */                                \
-                H5SL_DEMOTE(_next, _last)                                      \
+                    /* Demote the separator node */                            \
+                    H5SL_DEMOTE(_next, _last)                                  \
                                                                                \
-                /* If there are 2 or more nodes, promote the first */          \
-                if(_next->forward[_i]->forward[_i] != _llast) {                \
-                    X = _next->forward[_i];                                    \
-                    H5SL_PROMOTE(SLIST, X, _last)                              \
-                } else if(!_head->forward[_i+1]) {                             \
-                    /* shrink the header */                                    \
-                    HDassert(_i == SLIST->curr_level - 1);                     \
-                    HDassert((size_t) SLIST->curr_level == _head->level);      \
+                    /* If there are 2 or more nodes, promote the first */      \
+                    if(_next->forward[_i]->forward[_i] != _llast) {            \
+                        X = _next->forward[_i];                                \
+                        H5SL_PROMOTE(SLIST, X, _last, NULL)                    \
+                    } else if(!_head->forward[_i+1]) {                         \
+                        /* shrink the header */                                \
+                        HDassert(_i == SLIST->curr_level - 1);                 \
+                        HDassert((size_t) SLIST->curr_level == _head->level);  \
                                                                                \
-                    H5SL_SHRINK(_head, (size_t) (_i+1))                        \
-                    SLIST->curr_level--;                                       \
-                } /* end else */                                               \
-            } else {                                                           \
-                /* We are not in the first gap, count the number of nodes */   \
-                /* of height _i in the previous gap.  Note we "look ahead" */  \
-                /* in this loop so X has the value of the last node in the */  \
-                /* previous gap. */                                            \
-                X = _llast->forward[_i];                                       \
-                for(_count = 1; _count < 3 && X->forward[_i] != _last; _count++) \
-                    X = X->forward[_i];                                        \
-                HDassert(X->forward[_i] == _last);                             \
+                        H5SL_SHRINK(_head, (size_t) (_i+1))                    \
+                        SLIST->curr_level--;                                   \
+                    } /* end else */                                           \
+                } else {                                                       \
+                    /* We are not in the first gap, count the number of */     \
+                    /* nodes of height _i in the previous gap.  Note we */     \
+                    /* "look ahead" in this loop so X has the value of the */  \
+                    /* last node in the previous gap. */                       \
+                    X = _llast->forward[_i];                                   \
+                    for(_count = 1; _count < 3 && X->forward[_i] != _last; _count++) \
+                        X = X->forward[_i];                                    \
+                    HDassert(X->forward[_i] == _last);                         \
                                                                                \
-                /* Demote the separator node */                                \
-                H5SL_DEMOTE(_last, _llast)                                     \
+                    /* Demote the separator node */                            \
+                    H5SL_DEMOTE(_last, _llast)                                 \
                                                                                \
-                /* If there are 2 or more nodes, promote the last */           \
-                if(_count >= 2)                                                \
-                    H5SL_PROMOTE(SLIST, X, _llast)                             \
-                else if(!_head->forward[_i+1]) {                               \
-                    /* shrink the header */                                    \
-                    HDassert(_i == SLIST->curr_level - 1);                     \
-                    HDassert((size_t) SLIST->curr_level == _head->level);      \
+                    /* If there are 2 or more nodes, promote the last */       \
+                    if(_count >= 2)                                            \
+                        H5SL_PROMOTE(SLIST, X, _llast, NULL)                   \
+                    else if(!_head->forward[_i+1]) {                           \
+                        /* shrink the header */                                \
+                        HDassert(_i == SLIST->curr_level - 1);                 \
+                        HDassert((size_t) SLIST->curr_level == _head->level);  \
                                                                                \
-                    H5SL_SHRINK(_head, (size_t) (_i+1))                        \
-                    SLIST->curr_level--;                                       \
+                        H5SL_SHRINK(_head, (size_t) (_i+1))                    \
+                        SLIST->curr_level--;                                   \
+                    } /* end else */                                           \
                 } /* end else */                                               \
-            } /* end else */                                                   \
-        } /* end if */                                                         \
+            } /* end if */                                                     \
                                                                                \
-        /* Prepare to drop down */                                             \
-        _llast = _ldrop;                                                       \
-        _last = _drop;                                                         \
-        _next = _drop->forward[_i];                                            \
-    } /* end for */                                                            \
+            /* Prepare to drop down */                                         \
+            _llast = _ldrop;                                                   \
+            _last = _drop;                                                     \
+            _next = _drop->forward[_i];                                        \
+        } /* end for */                                                        \
                                                                                \
-    /* Check if we've found the node */                                        \
-    if(_next && H5_GLUE3(H5SL_LOCATE_,CMP,_EQ)(SLIST, TYPE, _next, KEY, HASHVAL)) { \
-        void *tmp = _next->item;                                               \
-        X = _next;                                                             \
+        /* Check if we've found the node */                                    \
+        if(_next && H5_GLUE3(H5SL_LOCATE_,CMP,_EQ)(SLIST, TYPE, _next, KEY, HASHVAL)) { \
+            void *tmp = _next->item;                                           \
+            X = _next;                                                         \
                                                                                \
-        /* If the node has a height > 0, swap it with its (lower) neighbor */  \
-        if(X->level) {                                                         \
-            X = X->backward;                                                   \
-            _next->key = X->key;                                               \
-            _next->item = X->item;                                             \
-            _next->hashval = X->hashval;                                       \
-        } /* end if */                                                         \
-        HDassert(!X->level);                                                   \
+            /* If the node has a height > 0, swap it with its (lower) */       \
+            /* neighbor */                                                     \
+            if(X->level) {                                                     \
+                X = X->backward;                                               \
+                _next->key = X->key;                                           \
+                _next->item = X->item;                                         \
+                _next->hashval = X->hashval;                                   \
+            } /* end if */                                                     \
+            HDassert(!X->level);                                               \
                                                                                \
-        /* Remove the node */                                                  \
-        X->backward->forward[0] = X->forward[0];                               \
-        if(SLIST->last == X)                                                   \
-            SLIST->last = X->backward;                                         \
-        else                                                                   \
-            X->forward[0]->backward = X->backward;                             \
-        SLIST->nobjs--;                                                        \
-        X->forward = (H5SL_node_t **)H5FL_FAC_FREE(H5SL_fac_g[0], X->forward);                        \
-        X = H5FL_FREE(H5SL_node_t, X);                                       \
+            /* Remove the node */                                              \
+            X->backward->forward[0] = X->forward[0];                           \
+            if(SLIST->last == X)                                               \
+                SLIST->last = X->backward;                                     \
+            else                                                               \
+                X->forward[0]->backward = X->backward;                         \
+            SLIST->nobjs--;                                                    \
+            X->forward = (H5SL_node_t **)H5FL_FAC_FREE(H5SL_fac_g[0], X->forward); \
+            X = H5FL_FREE(H5SL_node_t, X);                                     \
                                                                                \
-        HGOTO_DONE(tmp);                                                       \
-    } /* end if */                                                             \
+            HGOTO_DONE(tmp);                                                   \
+        } /* end if */                                                         \
+    } /* end else */                                                           \
 }
 
 
@@ -490,6 +551,7 @@ struct H5SL_node_t {
     size_t level;                       /* The level of this node */
     size_t log_nalloc;                  /* log2(Number of slots allocated in forward) */
     uint32_t hashval;                   /* Hash value for key (only for strings, currently) */
+    hbool_t removed;                    /* Whether the node is "removed" (actual removal deferred) */
     struct H5SL_node_t **forward;       /* Array of forward pointers from this node */
     struct H5SL_node_t *backward;       /* Backward pointer from this node */
 };
@@ -505,6 +567,7 @@ struct H5SL_t {
     size_t nobjs;               /* Number of active objects in skip list */
     H5SL_node_t *header;        /* Header for nodes in skip list */
     H5SL_node_t *last;          /* Pointer to last node in skip list */
+    hbool_t safe_iterating;     /* Whether a routine is "safely" iterating over the list and removals should be deferred */
 };
 
 /* Static functions */
@@ -599,6 +662,7 @@ H5SL_new_node(void *item, const void *key, uint32_t hashval)
     ret_value->item = item;
     ret_value->level = 0;
     ret_value->hashval = hashval;
+    ret_value->removed = FALSE;
     if(NULL == (ret_value->forward = (H5SL_node_t **)H5FL_FAC_MALLOC(H5SL_fac_g[0]))) {
         ret_value = H5FL_FREE(H5SL_node_t, ret_value);
         HGOTO_ERROR(H5E_SLIST, H5E_NOSPACE, NULL, "memory allocation failed")
@@ -712,7 +776,7 @@ H5SL_insert_common(H5SL_t *slist, void *item, const void *key)
     if(x->forward[0])
         x->forward[0]->backward = x;
     else {
-        HDassert(slist->last);
+        HDassert(slist->last == prev);
         slist->last = x;
     }
 
@@ -766,14 +830,14 @@ H5SL_release_common(H5SL_t *slist, H5SL_operator_t op, void *op_data)
     /* (Pre-condition) */
 
     /* Free skip list nodes */
-    node=slist->header->forward[0];
-    while(node!=NULL) {
-        next_node=node->forward[0];
+    node = slist->header->forward[0];
+    while(node) {
+        next_node = node->forward[0];
 
         /* Call callback, if one is given */
-        if(op!=NULL)
+        if(op)
             /* Casting away const OK -QAK */
-            (void)(op)(node->item,(void *)node->key,op_data);
+            (void)(op)(node->item, (void *)node->key, op_data);
 
         node->forward = (H5SL_node_t **)H5FL_FAC_FREE(H5SL_fac_g[node->log_nalloc], node->forward);
         node = H5FL_FREE(H5SL_node_t, node);
@@ -782,18 +846,18 @@ H5SL_release_common(H5SL_t *slist, H5SL_operator_t op, void *op_data)
 
     /* Reset the header pointers */
     slist->header->forward = (H5SL_node_t **)H5FL_FAC_FREE(H5SL_fac_g[slist->header->log_nalloc], slist->header->forward);
-    if(NULL == (slist->header->forward = (H5SL_node_t **) H5FL_FAC_MALLOC(H5SL_fac_g[0])))
+    if(NULL == (slist->header->forward = (H5SL_node_t **)H5FL_FAC_MALLOC(H5SL_fac_g[0])))
         HGOTO_ERROR(H5E_SLIST, H5E_NOSPACE, FAIL, "memory allocation failed")
     slist->header->forward[0] = NULL;
     slist->header->log_nalloc = 0;
     slist->header->level = 0;
 
     /* Reset the last pointer */
-    slist->last=slist->header;
+    slist->last = slist->header;
 
     /* Reset the dynamic internal fields */
-    slist->curr_level=-1;
-    slist->nobjs=0;
+    slist->curr_level = -1;
+    slist->nobjs = 0;
 
 done:
     FUNC_LEAVE_NOAPI(ret_value)
@@ -893,6 +957,7 @@ H5SL_create(H5SL_type_t type, H5SL_cmp_t cmp)
     /* Set the dynamic internal fields */
     new_slist->curr_level = -1;
     new_slist->nobjs = 0;
+    new_slist->safe_iterating = FALSE;
 
     /* Allocate the header node */
     if(NULL == (header = H5SL_new_node(NULL, NULL, (uint32_t)ULONG_MAX)))
@@ -948,6 +1013,9 @@ H5SL_count(H5SL_t *slist)
     /* Check args */
     HDassert(slist);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -987,6 +1055,9 @@ H5SL_insert(H5SL_t *slist, void *item, const void *key)
     HDassert(slist);
     HDassert(key);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1034,6 +1105,9 @@ H5SL_add(H5SL_t *slist, void *item, const void *key)
     HDassert(slist);
     HDassert(key);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1166,6 +1240,9 @@ H5SL_remove_first(H5SL_t *slist)
     /* Check args */
     HDassert(slist);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1211,7 +1288,7 @@ H5SL_remove_first(H5SL_t *slist)
                     HDassert(tmp->forward[i]->forward[i]->forward[i] == next ||
                         tmp->forward[i]->forward[i]->forward[i]->forward[i] == next);
                     tmp = tmp->forward[i];
-                    H5SL_PROMOTE(slist, tmp, head);
+                    H5SL_PROMOTE(slist, tmp, head, NULL);
                     /* In this case, since there is a node of height = i+1 here
                      * now (tmp), we know the skip list must be valid and can
                      * break */
@@ -1358,6 +1435,9 @@ H5SL_less(H5SL_t *slist, const void *key)
     HDassert(slist);
     HDassert(key);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1464,6 +1544,9 @@ H5SL_greater(H5SL_t *slist, const void *key)
     HDassert(slist);
     HDassert(key);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1848,6 +1931,9 @@ H5SL_first(H5SL_t *slist)
     /* Check args */
     HDassert(slist);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1882,6 +1968,9 @@ H5SL_next(H5SL_node_t *slist_node)
     /* Check args */
     HDassert(slist_node);
 
+    /* Not currently supported */
+    HDassert(!slist_node->removed);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1916,6 +2005,9 @@ H5SL_prev(H5SL_node_t *slist_node)
     /* Check args */
     HDassert(slist_node);
 
+    /* Not currently supported */
+    HDassert(!slist_node->removed);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1951,6 +2043,9 @@ H5SL_last(H5SL_t *slist)
     /* Check args */
     HDassert(slist);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -1985,6 +2080,9 @@ H5SL_item(H5SL_node_t *slist_node)
     /* Check args */
     HDassert(slist_node);
 
+    /* Not currently supported */
+    HDassert(!slist_node->removed);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -2048,8 +2146,9 @@ H5SL_iterate(H5SL_t *slist, H5SL_operator_t op, void *op_data)
 
         /* Call the iterator callback */
         /* Casting away const OK -QAK */
-        if((ret_value = (op)(node->item, (void *)node->key, op_data)) != 0)
-            break;
+        if(!node->removed)
+            if((ret_value = (op)(node->item, (void *)node->key, op_data)) != 0)
+                break;
 
         /* Advance to next node */
         node = next;
@@ -2087,6 +2186,9 @@ H5SL_release(H5SL_t *slist)
     /* Check args */
     HDassert(slist);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -2133,6 +2235,9 @@ H5SL_free(H5SL_t *slist, H5SL_operator_t op, void *op_data)
     /* Check args */
     HDassert(slist);
 
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
     /* Check internal consistency */
     /* (Pre-condition) */
 
@@ -2145,6 +2250,185 @@ H5SL_free(H5SL_t *slist, H5SL_operator_t op, void *op_data)
 

 /*--------------------------------------------------------------------------
  NAME
+    H5SL_try_free_safe
+ PURPOSE
+    Makes the supplied callback on all nodes in the skip list, freeing each
+    node that the callback returns TRUE for.
+ USAGE
+    herr_t PURPOSE(slist,op,opdata)
+        H5SL_t *slist;          IN/OUT: Pointer to skip list to release nodes
+        H5SL_try_free_op_t op;  IN: Callback function to try to free item & key
+        void *op_data;          IN/OUT: Pointer to application data for callback
+
+ RETURNS
+    Returns non-negative on success, negative on failure.
+ DESCRIPTION
+    Makes the supplied callback on all nodes in the skip list, freeing each
+    node that the callback returns TRUE for.  The iteration is performed in
+    a safe manner, such that the callback can call H5SL_remove(),
+    H5SL_search(), H5SL_find(), and H5SL_iterate() on nodes in this
+    skiplist, except H5SL_remove() may not be call on *this* node.
+ GLOBAL VARIABLES
+ COMMENTS, BUGS, ASSUMPTIONS
+    This function is written to be most efficient when most nodes are
+    removed from the skiplist, as it rebuilds the nodes afterwards.
+ EXAMPLES
+ REVISION LOG
+--------------------------------------------------------------------------*/
+herr_t
+H5SL_try_free_safe(H5SL_t *slist, H5SL_try_free_op_t op, void *op_data)
+{
+    H5SL_node_t *node, *next_node, *last_node; /* Pointers to skip list nodes */
+    htri_t op_ret;
+    herr_t ret_value = SUCCEED;
+
+    FUNC_ENTER_NOAPI_NOINIT
+
+    /* Check args */
+    HDassert(slist);
+    HDassert(op);
+
+    /* Not currently supported */
+    HDassert(!slist->safe_iterating);
+
+    /* Check internal consistency */
+    /* (Pre-condition) */
+
+    /* Mark skip list as safe iterating, so nodes aren't freed out from under
+     * us */
+    slist->safe_iterating = TRUE;
+
+    /* Iterate over skip list nodes, making the callback for each and marking
+     * them as removed if requested by the callback */
+    node = slist->header->forward[0];
+    while(node) {
+        /* Check if the node was already removed */
+        if(!node->removed) {
+            /* Call callback */
+            /* Casting away const OK -NAF */
+            if((op_ret = (op)(node->item , (void *)node->key, op_data)) < 0)
+                HGOTO_ERROR(H5E_SLIST, H5E_CALLBACK, FAIL, "callback operation failed")
+
+            /* Check if op indicated that the node should be removed */
+            if(op_ret)
+                /* Mark the node as removed */
+                node->removed = TRUE;
+        } /* end if */
+
+        /* Advance node */
+        node = node->forward[0];
+    } /* end while */
+
+    /* Reset safe_iterating */
+    slist->safe_iterating = FALSE;
+
+    /* Iterate over nodes, freeing ones marked as removed */
+    node = slist->header->forward[0];
+    last_node = slist->header;
+    while(node) {
+        /* Save next node */
+        next_node = node->forward[0];
+
+        /* Check if the node was marked as removed */
+        if(node->removed) {
+            /* Remove the node */
+            node->forward = (H5SL_node_t **)H5FL_FAC_FREE(H5SL_fac_g[node->log_nalloc], node->forward);
+            node = H5FL_FREE(H5SL_node_t, node);
+            slist->nobjs--;
+        } /* end if */
+        else {
+            /* Update backwards and forwards[0] pointers, and set the level to
+             * 0.  Since the list is flattened we must rebuild the skiplist
+             * afterwards. */
+            /* Set level to 0.  Note there is no need to preserve
+             * node->forward[0] since it was cached above and will always be
+             * updated later. */
+            if(node->level > 0) {
+                node->forward = (H5SL_node_t **)H5FL_FAC_FREE(H5SL_fac_g[node->log_nalloc], (void *)node->forward);
+                if(NULL == (node->forward = (H5SL_node_t **)H5FL_FAC_MALLOC(H5SL_fac_g[0])))
+                    HGOTO_ERROR(H5E_SLIST, H5E_CANTALLOC, FAIL, "memory allocation failed")
+                node->log_nalloc = 0;
+                node->level = 0;
+            } /* end if */
+
+            /* Update pointers */
+            last_node->forward[0] = node;
+            node->backward = last_node;
+            last_node = node;
+        } /* end else */
+
+        /* Advance node */
+        node = next_node;
+    } /* end while */
+
+    /* Final pointer update */
+    last_node->forward[0] = NULL;
+    slist->last = last_node;
+
+    /* Demote skip list to level 0 */
+    if(slist->curr_level > 0) {
+        HDassert(slist->header->level == (size_t)slist->curr_level);
+
+        node = slist->header->forward[0];
+        slist->header->forward = (H5SL_node_t **)H5FL_FAC_FREE(H5SL_fac_g[slist->header->log_nalloc], (void *)slist->header->forward);
+        if(NULL == (slist->header->forward = (H5SL_node_t **)H5FL_FAC_MALLOC(H5SL_fac_g[0])))
+            HGOTO_ERROR(H5E_SLIST, H5E_CANTALLOC, FAIL, "memory allocation failed")
+        slist->header->forward[0] = node;
+        slist->header->log_nalloc = 0;
+        slist->header->level = 0;
+    } /* end if */
+
+    /* Check if there are any nodes left */
+    if(slist->nobjs > 0) {
+        int i;
+
+        HDassert(slist->header->forward[0]);
+
+        /* Set skiplist level to 0 */
+        slist->curr_level = 0;
+
+        /* Rebuild the forward arrays */
+        for(i = 0; slist->curr_level >= i; i++) {
+            HDassert(slist->curr_level == i);
+
+            /* Promote every third node this level until we run out of nodes */
+            node = last_node = slist->header;
+            while(1) {
+                /* Check second node in gap, if not present, no need to promote
+                 * further this level. */
+                HDassert(node->forward[i]);
+                node = node->forward[i]->forward[i];
+                if(!node)
+                    break;
+
+                /* Check third and fourth node in gap, if either is not present,
+                 * no need to promote further this level. */
+                node = node->forward[i];
+                if(!node || !node->forward[i])
+                    break;
+
+                /* Promote the third node in the gap */
+                H5SL_PROMOTE(slist, node, last_node, FAIL)
+                last_node = node;
+            } /* end while */
+        } /* end for */
+    } /* end if */
+    else {
+        HDassert(!slist->header->forward[0]);
+        HDassert(slist->last == slist->header);
+        HDassert(slist->nobjs == 0);
+
+        /* Reset the skiplist level */
+        slist->curr_level = -1;
+    } /* end else */
+
+done:
+    FUNC_LEAVE_NOAPI(ret_value)
+} /* end H5SL_try_free_safe() */
+
+

+/*--------------------------------------------------------------------------
+ NAME
     H5SL_destroy
  PURPOSE
     Close a skip list, deallocating it and freeing all its nodes.
diff --git a/src/H5SLprivate.h b/src/H5SLprivate.h
index ce2f091..856099b 100644
--- a/src/H5SLprivate.h
+++ b/src/H5SLprivate.h
@@ -63,6 +63,10 @@ typedef int (*H5SL_cmp_t)(const void *key1, const void *key2);
 typedef herr_t (*H5SL_operator_t)(void *item, void *key,
     void *operator_data/*in,out*/);
 
+/* Typedef for H5SL_try_free_safe operation callback */
+typedef htri_t (*H5SL_try_free_op_t)(void *item, void *key,
+    void *operator_data/*in,out*/);
+
 /********************/
 /* Private routines */
 /********************/
@@ -86,6 +90,8 @@ H5_DLL void *H5SL_item(H5SL_node_t *slist_node);
 H5_DLL herr_t H5SL_iterate(H5SL_t *slist, H5SL_operator_t op, void *op_data);
 H5_DLL herr_t H5SL_release(H5SL_t *slist);
 H5_DLL herr_t H5SL_free(H5SL_t *slist, H5SL_operator_t op, void *op_data);
+H5_DLL herr_t H5SL_try_free_safe(H5SL_t *slist, H5SL_try_free_op_t op,
+    void *op_data);
 H5_DLL herr_t H5SL_close(H5SL_t *slist);
 H5_DLL herr_t H5SL_destroy(H5SL_t *slist, H5SL_operator_t op, void *op_data);
 H5_DLL int H5SL_term_interface(void);
diff --git a/src/H5SM.c b/src/H5SM.c
index 46e3140..f8c47c1 100644
--- a/src/H5SM.c
+++ b/src/H5SM.c
@@ -2244,7 +2244,7 @@ done:
  */
 static herr_t
 H5SM_read_iter_op(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, unsigned sequence,
-    unsigned UNUSED *oh_modified, void *_udata/*in,out*/)
+    unsigned H5_ATTR_UNUSED *oh_modified, void *_udata/*in,out*/)
 {
     H5SM_read_udata_t *udata = (H5SM_read_udata_t *) _udata;
     herr_t ret_value = H5_ITER_CONT;
diff --git a/src/H5SMbtree2.c b/src/H5SMbtree2.c
index daa1e4f..e18e9fb 100644
--- a/src/H5SMbtree2.c
+++ b/src/H5SMbtree2.c
@@ -195,8 +195,8 @@ H5SM_bt2_store(void *native, const void *udata)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5SM_bt2_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
-    int indent, int fwidth, const void *record, const void UNUSED *_udata)
+H5SM_bt2_debug(FILE *stream, const H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id,
+    int indent, int fwidth, const void *record, const void H5_ATTR_UNUSED *_udata)
 {
     const H5SM_sohm_t *sohm = (const H5SM_sohm_t *)record;
 
@@ -231,7 +231,7 @@ H5SM_bt2_debug(FILE *stream, const H5F_t UNUSED *f, hid_t UNUSED dxpl_id,
  *-------------------------------------------------------------------------
  */
 static void *
-H5SM_bt2_crt_dbg_context(H5F_t *f, hid_t UNUSED dxpl_id, haddr_t UNUSED addr)
+H5SM_bt2_crt_dbg_context(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t H5_ATTR_UNUSED addr)
 {
     H5SM_bt2_ctx_t *ctx;        /* Callback context structure */
     void *ret_value;            /* Return value */
diff --git a/src/H5SMcache.c b/src/H5SMcache.c
index d89af73..49456d8 100644
--- a/src/H5SMcache.c
+++ b/src/H5SMcache.c
@@ -62,7 +62,7 @@ static H5SM_list_t *H5SM_list_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *
 static herr_t H5SM_list_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5SM_list_t *list);
 static herr_t H5SM_list_dest(H5F_t *f, H5SM_list_t* list);
 static herr_t H5SM_list_clear(H5F_t *f, H5SM_list_t *list, hbool_t destroy);
-static herr_t H5SM_list_size(const H5F_t *f, const H5SM_list_t UNUSED *list, size_t *size_ptr);
+static herr_t H5SM_list_size(const H5F_t *f, const H5SM_list_t H5_ATTR_UNUSED *list, size_t *size_ptr);
 
 
 /*********************/
@@ -113,7 +113,7 @@ const H5AC_class_t H5AC_SOHM_LIST[1] = {{
  *-------------------------------------------------------------------------
  */
 static H5SM_master_table_t *
-H5SM_table_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void UNUSED *udata)
+H5SM_table_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void H5_ATTR_UNUSED *udata)
 {
     H5SM_master_table_t *table = NULL;
     H5WB_t        *wb = NULL;           /* Wrapped buffer for table data */
@@ -355,7 +355,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5SM_table_dest(H5F_t UNUSED *f, H5SM_master_table_t* table)
+H5SM_table_dest(H5F_t H5_ATTR_UNUSED *f, H5SM_master_table_t* table)
 {
     herr_t ret_value = SUCCEED;         /* Return value */
 
@@ -423,7 +423,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5SM_table_size(const H5F_t UNUSED *f, const H5SM_master_table_t *table, size_t *size_ptr)
+H5SM_table_size(const H5F_t H5_ATTR_UNUSED *f, const H5SM_master_table_t *table, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -729,7 +729,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5SM_list_size(const H5F_t UNUSED *f, const H5SM_list_t *list, size_t *size_ptr)
+H5SM_list_size(const H5F_t H5_ATTR_UNUSED *f, const H5SM_list_t *list, size_t *size_ptr)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
diff --git a/src/H5SMmessage.c b/src/H5SMmessage.c
index 6a45985..6965fd7 100644
--- a/src/H5SMmessage.c
+++ b/src/H5SMmessage.c
@@ -129,7 +129,7 @@ H5SM_compare_cb(const void *obj, size_t obj_len, void *_udata)
  */
 static herr_t
 H5SM_compare_iter_op(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, unsigned sequence,
-    unsigned UNUSED *oh_modified, void *_udata/*in,out*/)
+    unsigned H5_ATTR_UNUSED *oh_modified, void *_udata/*in,out*/)
 {
     H5SM_compare_udata_t *udata = (H5SM_compare_udata_t *) _udata;
     herr_t ret_value = H5_ITER_CONT;
diff --git a/src/H5Sall.c b/src/H5Sall.c
index 24caad2..2d2e5fb 100644
--- a/src/H5Sall.c
+++ b/src/H5Sall.c
@@ -255,7 +255,7 @@ H5S_all_iter_nelmts (const H5S_sel_iter_t *iter)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_all_iter_has_next_block (const H5S_sel_iter_t UNUSED *iter)
+H5S_all_iter_has_next_block (const H5S_sel_iter_t H5_ATTR_UNUSED *iter)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -319,7 +319,7 @@ H5S_all_iter_next(H5S_sel_iter_t *iter, size_t nelem)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_all_iter_next_block(H5S_sel_iter_t UNUSED *iter)
+H5S_all_iter_next_block(H5S_sel_iter_t H5_ATTR_UNUSED *iter)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -348,7 +348,7 @@ H5S_all_iter_next_block(H5S_sel_iter_t UNUSED *iter)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_all_iter_release (H5S_sel_iter_t UNUSED * iter)
+H5S_all_iter_release (H5S_sel_iter_t H5_ATTR_UNUSED * iter)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -411,7 +411,7 @@ H5S_all_release(H5S_t *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_all_copy(H5S_t *dst, const H5S_t UNUSED *src, hbool_t UNUSED share_selection)
+H5S_all_copy(H5S_t *dst, const H5S_t H5_ATTR_UNUSED *src, hbool_t H5_ATTR_UNUSED share_selection)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -446,7 +446,7 @@ H5S_all_copy(H5S_t *dst, const H5S_t UNUSED *src, hbool_t UNUSED share_selection
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_all_is_valid (const H5S_t UNUSED *space)
+H5S_all_is_valid (const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -476,7 +476,7 @@ H5S_all_is_valid (const H5S_t UNUSED *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static hssize_t
-H5S_all_serial_size (const H5S_t UNUSED *space)
+H5S_all_serial_size (const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -546,7 +546,7 @@ H5S_all_serialize (const H5S_t *space, uint8_t *buf)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_all_deserialize(H5S_t *space, const uint8_t UNUSED *buf)
+H5S_all_deserialize(H5S_t *space, const uint8_t H5_ATTR_UNUSED *buf)
 {
     herr_t ret_value;   /* return value */
 
@@ -634,7 +634,7 @@ H5S_all_bounds(const H5S_t *space, hsize_t *start, hsize_t *end)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_all_offset(const H5S_t UNUSED *space, hsize_t *offset)
+H5S_all_offset(const H5S_t H5_ATTR_UNUSED *space, hsize_t *offset)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -667,7 +667,7 @@ H5S_all_offset(const H5S_t UNUSED *space, hsize_t *offset)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_all_is_contiguous(const H5S_t UNUSED *space)
+H5S_all_is_contiguous(const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -696,7 +696,7 @@ H5S_all_is_contiguous(const H5S_t UNUSED *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_all_is_single(const H5S_t UNUSED *space)
+H5S_all_is_single(const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -726,7 +726,7 @@ H5S_all_is_single(const H5S_t UNUSED *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_all_is_regular(const H5S_t UNUSED *space)
+H5S_all_is_regular(const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -756,7 +756,7 @@ H5S_all_is_regular(const H5S_t UNUSED *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_all_adjust_u(H5S_t UNUSED *space, const hsize_t UNUSED *offset)
+H5S_all_adjust_u(H5S_t H5_ATTR_UNUSED *space, const hsize_t H5_ATTR_UNUSED *offset)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -782,7 +782,7 @@ H5S_all_adjust_u(H5S_t UNUSED *space, const hsize_t UNUSED *offset)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5S_all_project_scalar(const H5S_t UNUSED *space, hsize_t *offset)
+H5S_all_project_scalar(const H5S_t H5_ATTR_UNUSED *space, hsize_t *offset)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -946,8 +946,8 @@ done:
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_all_get_seq_list(const H5S_t UNUSED *space, unsigned UNUSED flags, H5S_sel_iter_t *iter,
-    size_t UNUSED maxseq, size_t maxelem, size_t *nseq, size_t *nelem,
+H5S_all_get_seq_list(const H5S_t H5_ATTR_UNUSED *space, unsigned H5_ATTR_UNUSED flags, H5S_sel_iter_t *iter,
+    size_t H5_ATTR_UNUSED maxseq, size_t maxelem, size_t *nseq, size_t *nelem,
     hsize_t *off, size_t *len)
 {
     size_t elem_used;           /* The number of elements used */
diff --git a/src/H5Shyper.c b/src/H5Shyper.c
index c97c9b6..cde58e6 100644
--- a/src/H5Shyper.c
+++ b/src/H5Shyper.c
@@ -7631,7 +7631,7 @@ H5S_hyper_get_seq_list_gen(const H5S_t *space,H5S_sel_iter_t *iter,
         /* Finish the span in the fastest changing dimension */
 
         /* Compute the number of bytes to attempt in this span */
-        H5_ASSIGN_OVERFLOW(span_size,((curr_span->high-abs_arr[fast_dim])+1)*elem_size,hsize_t,size_t);
+        H5_CHECKED_ASSIGN(span_size, size_t, ((curr_span->high-abs_arr[fast_dim])+1)*elem_size, hsize_t);
 
         /* Check number of bytes against upper bounds allowed */
         if(span_size>io_bytes_left)
@@ -7774,7 +7774,7 @@ H5S_hyper_get_seq_list_gen(const H5S_t *space,H5S_sel_iter_t *iter,
             loc_off += curr_span->pstride;
 
             /* Compute the number of elements to attempt in this span */
-            H5_ASSIGN_OVERFLOW(span_size, curr_span->nelem, hsize_t, size_t);
+            H5_CHECKED_ASSIGN(span_size, size_t, curr_span->nelem, hsize_t);
 
             /* Check number of elements against upper bounds allowed */
             if(span_size >= io_bytes_left) {
@@ -8104,7 +8104,7 @@ H5S_hyper_get_seq_list_opt(const H5S_t *space, H5S_sel_iter_t *iter,
         loc += offset[u] * slab[u];
 
     /* Set the number of elements to write each time */
-    H5_ASSIGN_OVERFLOW(actual_elem, tdiminfo[fast_dim].block, hsize_t, size_t);
+    H5_CHECKED_ASSIGN(actual_elem, size_t, tdiminfo[fast_dim].block, hsize_t);
 
     /* Set the number of actual bytes */
     actual_bytes = actual_elem * elem_size;
@@ -8113,7 +8113,7 @@ H5S_hyper_get_seq_list_opt(const H5S_t *space, H5S_sel_iter_t *iter,
     fast_dim_start = tdiminfo[fast_dim].start;
     fast_dim_stride = tdiminfo[fast_dim].stride;
     fast_dim_block = tdiminfo[fast_dim].block;
-    H5_ASSIGN_OVERFLOW(fast_dim_buf_off, slab[fast_dim] * fast_dim_stride, hsize_t, size_t);
+    H5_CHECKED_ASSIGN(fast_dim_buf_off, size_t, slab[fast_dim] * fast_dim_stride, hsize_t);
     fast_dim_offset = (hsize_t)((hssize_t)fast_dim_start + sel_off[fast_dim]);
 
     /* Compute the number of blocks which would fit into the buffer */
@@ -8134,7 +8134,7 @@ H5S_hyper_get_seq_list_opt(const H5S_t *space, H5S_sel_iter_t *iter,
     /* Check if there is a partial row left (with full blocks) */
     if(tmp_count[fast_dim] > 0) {
         /* Get number of blocks in fastest dimension */
-        H5_ASSIGN_OVERFLOW(fast_dim_count, tdiminfo[fast_dim].count - tmp_count[fast_dim], hsize_t, size_t);
+        H5_CHECKED_ASSIGN(fast_dim_count, size_t, tdiminfo[fast_dim].count - tmp_count[fast_dim], hsize_t);
 
         /* Make certain this entire row will fit into buffer */
         fast_dim_count = MIN(fast_dim_count, tot_blk_count);
@@ -8219,7 +8219,7 @@ H5S_hyper_get_seq_list_opt(const H5S_t *space, H5S_sel_iter_t *iter,
     curr_rows = total_rows = (size_t)(tot_blk_count / tdiminfo[fast_dim].count);
 
     /* Reset copy of number of blocks in fastest dimension */
-    H5_ASSIGN_OVERFLOW(fast_dim_count, tdiminfo[fast_dim].count, hsize_t, size_t);
+    H5_CHECKED_ASSIGN(fast_dim_count, size_t, tdiminfo[fast_dim].count, hsize_t);
 
     /* Read in data until an entire sequence can't be written out any longer */
     while(curr_rows > 0) {
@@ -8524,7 +8524,7 @@ H5S_hyper_get_seq_list_single(const H5S_t *space, H5S_sel_iter_t *iter,
     tot_blk_count = MIN(tot_blk_count, maxseq);
 
     /* Set the number of elements to write each time */
-    H5_ASSIGN_OVERFLOW(actual_elem, fast_dim_block, hsize_t, size_t);
+    H5_CHECKED_ASSIGN(actual_elem, size_t, fast_dim_block, hsize_t);
 
     /* Check for blocks to operate on */
     if(tot_blk_count > 0) {
@@ -8712,7 +8712,7 @@ H5S_hyper_get_seq_list_single(const H5S_t *space, H5S_sel_iter_t *iter,
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_hyper_get_seq_list(const H5S_t *space, unsigned UNUSED flags, H5S_sel_iter_t *iter,
+H5S_hyper_get_seq_list(const H5S_t *space, unsigned H5_ATTR_UNUSED flags, H5S_sel_iter_t *iter,
     size_t maxseq, size_t maxelem, size_t *nseq, size_t *nelem,
     hsize_t *off, size_t *len)
 {
@@ -8781,10 +8781,10 @@ H5S_hyper_get_seq_list(const H5S_t *space, unsigned UNUSED flags, H5S_sel_iter_t
 
             /* Calculate the number of elements left in the sequence */
             if(tdiminfo[fast_dim].count == 1) {
-                H5_ASSIGN_OVERFLOW(leftover, tdiminfo[fast_dim].block - (iter->u.hyp.off[fast_dim] - tdiminfo[fast_dim].start), hsize_t, size_t);
+                H5_CHECKED_ASSIGN(leftover, size_t, tdiminfo[fast_dim].block - (iter->u.hyp.off[fast_dim] - tdiminfo[fast_dim].start), hsize_t);
             } /* end if */
             else {
-                H5_ASSIGN_OVERFLOW(leftover, tdiminfo[fast_dim].block - ((iter->u.hyp.off[fast_dim] - tdiminfo[fast_dim].start) % tdiminfo[fast_dim].stride), hsize_t, size_t);
+                H5_CHECKED_ASSIGN(leftover, size_t, tdiminfo[fast_dim].block - ((iter->u.hyp.off[fast_dim] - tdiminfo[fast_dim].start) % tdiminfo[fast_dim].stride), hsize_t);
             } /* end else */
 
             /* Make certain that we don't write too many */
@@ -8803,7 +8803,7 @@ H5S_hyper_get_seq_list(const H5S_t *space, unsigned UNUSED flags, H5S_sel_iter_t
 
             /* Add a new sequence */
             off[0] = loc;
-            H5_ASSIGN_OVERFLOW(len[0], actual_elem * elem_size, hsize_t, size_t);
+            H5_CHECKED_ASSIGN(len[0], size_t, actual_elem * elem_size, hsize_t);
 
             /* Increment sequence array locations */
             off++;
diff --git a/src/H5Smpio.c b/src/H5Smpio.c
index 3da6341..2187f0e 100644
--- a/src/H5Smpio.c
+++ b/src/H5Smpio.c
@@ -94,13 +94,13 @@ H5S_mpio_all_type(const H5S_t *space, size_t elmt_size,
     /* Just treat the entire extent as a block of bytes */
     if((snelmts = (hssize_t)H5S_GET_EXTENT_NPOINTS(space)) < 0)
 	HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "src dataspace has invalid selection")
-    H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, hsize_t);
+    H5_CHECKED_ASSIGN(nelmts, hsize_t, snelmts, hssize_t);
 
     total_bytes = (hsize_t)elmt_size * nelmts;
 
     /* fill in the return values */
     *new_type = MPI_BYTE;
-    H5_ASSIGN_OVERFLOW(*count, total_bytes, hsize_t, int);
+    H5_CHECKED_ASSIGN(*count, int, total_bytes, hsize_t);
     *is_derived_type = FALSE;
 
 done:
@@ -385,7 +385,7 @@ H5S_mpio_permute_type(const H5S_t *space, size_t elmt_size, hsize_t **permute,
     sel_iter_init = TRUE;	/* Selection iteration info has been initialized */
 
     /* Set the number of elements to iterate over */
-    H5_ASSIGN_OVERFLOW(max_elem, num_points, hsize_t, size_t);
+    H5_CHECKED_ASSIGN(max_elem, size_t, num_points, hsize_t);
 
     /* Loop, while elements left in selection */
     u = 0;
diff --git a/src/H5Snone.c b/src/H5Snone.c
index 3c5eccc..5016677 100644
--- a/src/H5Snone.c
+++ b/src/H5Snone.c
@@ -114,7 +114,7 @@ static const H5S_sel_iter_class_t H5S_sel_iter_none[1] = {{
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5S_none_iter_init(H5S_sel_iter_t *iter, const H5S_t UNUSED *space)
+H5S_none_iter_init(H5S_sel_iter_t *iter, const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -145,7 +145,7 @@ H5S_none_iter_init(H5S_sel_iter_t *iter, const H5S_t UNUSED *space)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5S_none_iter_coords(const H5S_sel_iter_t UNUSED *iter, hsize_t UNUSED *coords)
+H5S_none_iter_coords(const H5S_sel_iter_t H5_ATTR_UNUSED *iter, hsize_t H5_ATTR_UNUSED *coords)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -173,7 +173,7 @@ H5S_none_iter_coords(const H5S_sel_iter_t UNUSED *iter, hsize_t UNUSED *coords)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5S_none_iter_block(const H5S_sel_iter_t UNUSED *iter, hsize_t UNUSED *start, hsize_t UNUSED *end)
+H5S_none_iter_block(const H5S_sel_iter_t H5_ATTR_UNUSED *iter, hsize_t H5_ATTR_UNUSED *start, hsize_t H5_ATTR_UNUSED *end)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -201,7 +201,7 @@ H5S_none_iter_block(const H5S_sel_iter_t UNUSED *iter, hsize_t UNUSED *start, hs
  *-------------------------------------------------------------------------
  */
 static hsize_t
-H5S_none_iter_nelmts(const H5S_sel_iter_t UNUSED *iter)
+H5S_none_iter_nelmts(const H5S_sel_iter_t H5_ATTR_UNUSED *iter)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -230,7 +230,7 @@ H5S_none_iter_nelmts(const H5S_sel_iter_t UNUSED *iter)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_none_iter_has_next_block(const H5S_sel_iter_t UNUSED *iter)
+H5S_none_iter_has_next_block(const H5S_sel_iter_t H5_ATTR_UNUSED *iter)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -260,7 +260,7 @@ H5S_none_iter_has_next_block(const H5S_sel_iter_t UNUSED *iter)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_iter_next(H5S_sel_iter_t UNUSED *iter, size_t UNUSED nelem)
+H5S_none_iter_next(H5S_sel_iter_t H5_ATTR_UNUSED *iter, size_t H5_ATTR_UNUSED nelem)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -290,7 +290,7 @@ H5S_none_iter_next(H5S_sel_iter_t UNUSED *iter, size_t UNUSED nelem)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_iter_next_block(H5S_sel_iter_t UNUSED *iter)
+H5S_none_iter_next_block(H5S_sel_iter_t H5_ATTR_UNUSED *iter)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -319,7 +319,7 @@ H5S_none_iter_next_block(H5S_sel_iter_t UNUSED *iter)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_iter_release(H5S_sel_iter_t UNUSED * iter)
+H5S_none_iter_release(H5S_sel_iter_t H5_ATTR_UNUSED * iter)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -348,7 +348,7 @@ H5S_none_iter_release(H5S_sel_iter_t UNUSED * iter)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_release(H5S_t UNUSED * space)
+H5S_none_release(H5S_t H5_ATTR_UNUSED * space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -379,7 +379,7 @@ H5S_none_release(H5S_t UNUSED * space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_copy(H5S_t *dst, const H5S_t UNUSED *src, hbool_t UNUSED share_selection)
+H5S_none_copy(H5S_t *dst, const H5S_t H5_ATTR_UNUSED *src, hbool_t H5_ATTR_UNUSED share_selection)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -414,7 +414,7 @@ H5S_none_copy(H5S_t *dst, const H5S_t UNUSED *src, hbool_t UNUSED share_selectio
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_none_is_valid(const H5S_t UNUSED *space)
+H5S_none_is_valid(const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -444,7 +444,7 @@ H5S_none_is_valid(const H5S_t UNUSED *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static hssize_t
-H5S_none_serial_size(const H5S_t UNUSED *space)
+H5S_none_serial_size(const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -514,7 +514,7 @@ H5S_none_serialize(const H5S_t *space, uint8_t *buf)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_deserialize(H5S_t *space, const uint8_t UNUSED *buf)
+H5S_none_deserialize(H5S_t *space, const uint8_t H5_ATTR_UNUSED *buf)
 {
     herr_t ret_value = SUCCEED;  /* return value */
 
@@ -557,7 +557,7 @@ done:
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_bounds(const H5S_t UNUSED *space, hsize_t UNUSED *start, hsize_t UNUSED *end)
+H5S_none_bounds(const H5S_t H5_ATTR_UNUSED *space, hsize_t H5_ATTR_UNUSED *start, hsize_t H5_ATTR_UNUSED *end)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -590,7 +590,7 @@ H5S_none_bounds(const H5S_t UNUSED *space, hsize_t UNUSED *start, hsize_t UNUSED
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_offset(const H5S_t UNUSED *space, hsize_t UNUSED *offset)
+H5S_none_offset(const H5S_t H5_ATTR_UNUSED *space, hsize_t H5_ATTR_UNUSED *offset)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -620,7 +620,7 @@ H5S_none_offset(const H5S_t UNUSED *space, hsize_t UNUSED *offset)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_none_is_contiguous(const H5S_t UNUSED *space)
+H5S_none_is_contiguous(const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -649,7 +649,7 @@ H5S_none_is_contiguous(const H5S_t UNUSED *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_none_is_single(const H5S_t UNUSED *space)
+H5S_none_is_single(const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -679,7 +679,7 @@ H5S_none_is_single(const H5S_t UNUSED *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static htri_t
-H5S_none_is_regular(const H5S_t UNUSED *space)
+H5S_none_is_regular(const H5S_t H5_ATTR_UNUSED *space)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -709,7 +709,7 @@ H5S_none_is_regular(const H5S_t UNUSED *space)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_adjust_u(H5S_t UNUSED *space, const hsize_t UNUSED *offset)
+H5S_none_adjust_u(H5S_t H5_ATTR_UNUSED *space, const hsize_t H5_ATTR_UNUSED *offset)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -734,7 +734,7 @@ H5S_none_adjust_u(H5S_t UNUSED *space, const hsize_t UNUSED *offset)
  *-------------------------------------------------------------------------
  */
 static herr_t
-H5S_none_project_scalar(const H5S_t UNUSED *space, hsize_t UNUSED *offset)
+H5S_none_project_scalar(const H5S_t H5_ATTR_UNUSED *space, hsize_t H5_ATTR_UNUSED *offset)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -893,9 +893,9 @@ done:
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_none_get_seq_list(const H5S_t UNUSED *space, unsigned UNUSED flags, H5S_sel_iter_t UNUSED *iter,
-    size_t UNUSED maxseq, size_t UNUSED maxelem, size_t *nseq, size_t *nelem,
-    hsize_t UNUSED *off, size_t UNUSED *len)
+H5S_none_get_seq_list(const H5S_t H5_ATTR_UNUSED *space, unsigned H5_ATTR_UNUSED flags, H5S_sel_iter_t H5_ATTR_UNUSED *iter,
+    size_t H5_ATTR_UNUSED maxseq, size_t H5_ATTR_UNUSED maxelem, size_t *nseq, size_t *nelem,
+    hsize_t H5_ATTR_UNUSED *off, size_t H5_ATTR_UNUSED *len)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
diff --git a/src/H5Spoint.c b/src/H5Spoint.c
index 70842df..de7a316 100644
--- a/src/H5Spoint.c
+++ b/src/H5Spoint.c
@@ -355,7 +355,7 @@ H5S_point_iter_next_block(H5S_sel_iter_t *iter)
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_point_iter_release (H5S_sel_iter_t UNUSED * iter)
+H5S_point_iter_release (H5S_sel_iter_t H5_ATTR_UNUSED * iter)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -602,7 +602,7 @@ done:
  REVISION LOG
 --------------------------------------------------------------------------*/
 static herr_t
-H5S_point_copy(H5S_t *dst, const H5S_t *src, hbool_t UNUSED share_selection)
+H5S_point_copy(H5S_t *dst, const H5S_t *src, hbool_t H5_ATTR_UNUSED share_selection)
 {
     H5S_pnt_node_t *curr, *new_node, *new_tail;    /* Point information nodes */
     herr_t ret_value = SUCCEED;         /* Return value */
diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h
index 44cd6c3..81b30f7 100644
--- a/src/H5Sprivate.h
+++ b/src/H5Sprivate.h
@@ -31,6 +31,7 @@
 #include "H5Gprivate.h"		/* Groups				*/
 #include "H5Oprivate.h"		/* Object headers		  	*/
 #include "H5Pprivate.h"		/* Property lists			*/
+#include "H5Tprivate.h"		/* Datatypes				*/
 
 /* Flags for H5S_find */
 #define H5S_CONV_PAR_IO_POSSIBLE        0x0001
@@ -115,6 +116,29 @@ typedef struct H5S_sel_iter_t {
     } u;
 } H5S_sel_iter_t;
 
+/* Selection iteration operator for internal library callbacks */
+typedef herr_t (*H5S_sel_iter_lib_op_t)(void *elem, const H5T_t *type,
+        unsigned ndim, const hsize_t *point, void *op_data);
+
+/* Describe kind of callback to make */
+typedef enum H5S_sel_iter_op_type_t {
+    H5S_SEL_ITER_OP_APP,                /* Application callback */
+    H5S_SEL_ITER_OP_LIB                 /* Library internal callback */
+} H5S_sel_iter_op_type_t;
+
+typedef struct H5S_sel_iter_app_op_t {
+    H5D_operator_t op;                  /* Callback */
+    hid_t type_id;                      /* Type ID to be passed to callback */
+} H5S_sel_iter_app_op_t;
+
+typedef struct H5S_sel_iter_op_t {
+    H5S_sel_iter_op_type_t op_type;
+    union {
+        H5S_sel_iter_app_op_t app_op;   /* Application callback */
+        H5S_sel_iter_lib_op_t lib_op;   /* Library internal callback */
+    } u;
+} H5S_sel_iter_op_t;
+
 /* If the module using this macro is allowed access to the private variables, access them directly */
 #ifdef H5S_PACKAGE
 #define H5S_GET_EXTENT_TYPE(S)          ((S)->extent.type)
@@ -208,8 +232,8 @@ H5_DLL htri_t H5S_extent_equal(const H5S_t *ds1, const H5S_t *ds2);
 /* Operations on selections */
 H5_DLL herr_t H5S_select_deserialize(H5S_t *space, const uint8_t *buf);
 H5_DLL H5S_sel_type H5S_get_select_type(const H5S_t *space);
-H5_DLL herr_t H5S_select_iterate(void *buf, hid_t type_id, const H5S_t *space,
-    H5D_operator_t op, void *operator_data);
+H5_DLL herr_t H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
+    const H5S_sel_iter_op_t *op, void *op_data);
 H5_DLL herr_t H5S_select_fill(const void *fill, size_t fill_size,
     const H5S_t *space, void *buf);
 H5_DLL htri_t H5S_select_valid(const H5S_t *space);
diff --git a/src/H5Sselect.c b/src/H5Sselect.c
index 2cb4b38..d5cee57 100644
--- a/src/H5Sselect.c
+++ b/src/H5Sselect.c
@@ -1188,9 +1188,9 @@ H5S_select_iter_release(H5S_sel_iter_t *sel_iter)
  PURPOSE
     Iterate over the selected elements in a memory buffer.
  USAGE
-    herr_t H5S_select_iterate(buf, type_id, space, operator, operator_data)
+    herr_t H5S_select_iterate(buf, type, space, operator, operator_data)
         void *buf;      IN/OUT: Buffer containing elements to iterate over
-        hid_t type_id;  IN: Datatype ID of BUF array.
+        H5T_t *type;    IN: Datatype of BUF array.
         H5S_t *space;   IN: Dataspace object containing selection to iterate over
         H5D_operator_t op; IN: Function pointer to the routine to be
                                 called for each element in BUF iterated over.
@@ -1211,10 +1211,9 @@ H5S_select_iter_release(H5S_sel_iter_t *sel_iter)
         the selection is not modified.
 --------------------------------------------------------------------------*/
 herr_t
-H5S_select_iterate(void *buf, hid_t type_id, const H5S_t *space, H5D_operator_t op,
-        void *operator_data)
+H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
+    const H5S_sel_iter_op_t *op, void *op_data)
 {
-    H5T_t *dt;                  /* Datatype structure */
     H5S_sel_iter_t iter;        /* Selection iteration info */
     hbool_t iter_init = FALSE;  /* Selection iteration info has been initialized */
     hssize_t nelmts;            /* Number of elements in selection */
@@ -1229,14 +1228,12 @@ H5S_select_iterate(void *buf, hid_t type_id, const H5S_t *space, H5D_operator_t
 
     /* Check args */
     HDassert(buf);
-    HDassert(H5I_DATATYPE == H5I_get_type(type_id));
+    HDassert(type);
     HDassert(space);
     HDassert(op);
 
     /* Get the datatype size */
-    if(NULL == (dt = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE)))
-        HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an valid base datatype")
-    if(0 == (elmt_size = H5T_get_size(dt)))
+    if(0 == (elmt_size = H5T_get_size(type)))
         HGOTO_ERROR(H5E_DATATYPE, H5E_BADSIZE, FAIL, "datatype size invalid")
 
     /* Initialize iterator */
@@ -1259,7 +1256,7 @@ H5S_select_iterate(void *buf, hid_t type_id, const H5S_t *space, H5D_operator_t
     space_size[ndims] = elmt_size;
 
     /* Compute the maximum number of bytes required */
-    H5_ASSIGN_OVERFLOW(max_elem, nelmts, hssize_t, size_t);
+    H5_CHECKED_ASSIGN(max_elem, size_t, nelmts, hssize_t);
 
     /* Loop, while elements left in selection */
     while(max_elem > 0 && user_ret == 0) {
@@ -1300,8 +1297,19 @@ H5S_select_iterate(void *buf, hid_t type_id, const H5S_t *space, H5D_operator_t
                 /* Get the location within the user's buffer */
                 loc = (unsigned char *)buf + curr_off;
 
-                /* Call user's callback routine */
-                user_ret = (*op)(loc, type_id, ndims, coords, operator_data);
+                /* Check which type of callback to make */
+                switch(op->op_type) {
+                    case H5S_SEL_ITER_OP_APP:
+                        /* Make the application callback */
+                        user_ret = (op->u.app_op.op)(loc, op->u.app_op.type_id, ndims, coords, op_data);
+                    break;
+                    case H5S_SEL_ITER_OP_LIB:
+                        /* Call the library's callback */
+                        user_ret = (op->u.lib_op)(loc, type, ndims, coords, op_data);
+                    break;
+                    default:
+                        HGOTO_ERROR(H5E_DATASPACE, H5E_UNSUPPORTED, FAIL, "unsupported op type")
+                } /* end switch */
 
                 /* Increment offset in dataspace */
                 curr_off += elmt_size;
@@ -2018,7 +2026,7 @@ H5S_select_fill(const void *fill, size_t fill_size, const H5S_t *space, void *_b
         HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOUNT, FAIL, "can't get number of elements selected")
 
     /* Compute the number of bytes to process */
-    H5_ASSIGN_OVERFLOW(max_elem, nelmts, hssize_t, size_t);
+    H5_CHECKED_ASSIGN(max_elem, size_t, nelmts, hssize_t);
 
     /* Loop, while elements left in selection */
     while(max_elem > 0) {
diff --git a/src/H5T.c b/src/H5T.c
index 257e2e2..29d8f40 100644
--- a/src/H5T.c
+++ b/src/H5T.c
@@ -1,3 +1,4 @@
+
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  * Copyright by The HDF Group.                                               *
  * Copyright by the Board of Trustees of the University of Illinois.         *
@@ -67,10 +68,6 @@
  *
  */
 
-/* Define the code template for types which need no extra initialization for the "GUTS" in the H5T_INIT_TYPE macro */
-#define H5T_INIT_TYPE_NONE_CORE {					      \
-}
-
 /* Define the code template for bitfields for the "GUTS" in the H5T_INIT_TYPE macro */
 #define H5T_INIT_TYPE_BITFIELD_CORE {					      \
     dt->shared->type = H5T_BITFIELD;					      \
@@ -1047,24 +1044,24 @@ H5T_init_interface(void)
 	HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a datatype")
     status = 0;
 
-    status |= H5T_register(H5T_PERS_SOFT, "i_i", fixedpt, fixedpt, H5T__conv_i_i, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "i_f", fixedpt, floatpt, H5T__conv_i_f, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "f_f", floatpt, floatpt, H5T__conv_f_f, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "f_i", floatpt, fixedpt, H5T__conv_f_i, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "s_s", string, string, H5T__conv_s_s, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "b_b", bitfield, bitfield, H5T__conv_b_b, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "ibo", fixedpt, fixedpt, H5T__conv_order, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "ibo(opt)", fixedpt, fixedpt, H5T__conv_order_opt, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "fbo", floatpt, floatpt, H5T__conv_order, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "fbo(opt)", floatpt, floatpt, H5T__conv_order_opt, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "i_i", fixedpt, fixedpt, H5T__conv_i_i, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "i_f", fixedpt, floatpt, H5T__conv_i_f, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "f_f", floatpt, floatpt, H5T__conv_f_f, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "f_i", floatpt, fixedpt, H5T__conv_f_i, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "s_s", string, string, H5T__conv_s_s, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "b_b", bitfield, bitfield, H5T__conv_b_b, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "ibo", fixedpt, fixedpt, H5T__conv_order, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "ibo(opt)", fixedpt, fixedpt, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "fbo", floatpt, floatpt, H5T__conv_order, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "fbo(opt)", floatpt, floatpt, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "struct(no-opt)", compound, compound, H5T__conv_struct, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "struct(opt)", compound, compound, H5T__conv_struct_opt, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "enum", enum_type, enum_type, H5T__conv_enum, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "enum_i", enum_type, fixedpt, H5T__conv_enum_numeric, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "enum_f", enum_type, floatpt, H5T__conv_enum_numeric, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "vlen", vlen, vlen, H5T__conv_vlen, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "array", array, array, H5T__conv_array, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_SOFT, "objref", objref, objref, H5T__conv_order_opt, H5AC_ind_dxpl_id, FALSE);
 
     /*
      * Native conversions should be listed last since we can use hardware to
@@ -1075,224 +1072,220 @@ H5T_init_interface(void)
      */
 
     /* floating point */
-#if H5T_CONV_INTERNAL_FP_FP
-    status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_dxpl_id, FALSE);
-#endif /*H5T_CONV_INTERNAL_FP_FP*/
-#if H5T_CONV_INTERNAL_FP_LDOUBLE
-    status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_dxpl_id, FALSE);
-#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/
+    status |= H5T_register(H5T_PERS_HARD, "flt_dbl", native_float, native_double, H5T__conv_float_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_flt", native_double, native_float, H5T__conv_double_float, H5AC_ind_dxpl_id, FALSE);
+#if H5_SIZEOF_LONG_DOUBLE != 0
+    status |= H5T_register(H5T_PERS_HARD, "flt_ldbl", native_float, native_ldouble, H5T__conv_float_ldouble, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_ldbl", native_double, native_ldouble, H5T__conv_double_ldouble, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_flt", native_ldouble, native_float, H5T__conv_ldouble_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_dbl", native_ldouble, native_double, H5T__conv_ldouble_double, H5AC_ind_dxpl_id, FALSE);
+#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */
 
     /* from long long */
-    status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_llong", native_ullong, native_llong, H5T__conv_ullong_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_long", native_llong, native_long, H5T__conv_llong_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_ulong", native_llong, native_ulong, H5T__conv_llong_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_long", native_ullong, native_long, H5T__conv_ullong_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_ulong", native_ullong, native_ulong, H5T__conv_ullong_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_short", native_llong, native_short, H5T__conv_llong_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_ushort", native_llong, native_ushort, H5T__conv_llong_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_short", native_ullong, native_short, H5T__conv_ullong_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_ushort", native_ullong, native_ushort, H5T__conv_ullong_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_int", native_llong, native_int, H5T__conv_llong_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_uint", native_llong, native_uint, H5T__conv_llong_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_int", native_ullong, native_int, H5T__conv_ullong_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_uint", native_ullong, native_uint, H5T__conv_ullong_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_schar", native_llong, native_schar, H5T__conv_llong_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_uchar", native_llong, native_uchar, H5T__conv_llong_uchar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_schar", native_ullong, native_schar, H5T__conv_ullong_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_uchar", native_ullong, native_uchar, H5T__conv_ullong_uchar, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_ullong", native_llong, native_ullong, H5T__conv_llong_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_llong", native_ullong, native_llong, H5T__conv_ullong_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_long", native_llong, native_long, H5T__conv_llong_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_ulong", native_llong, native_ulong, H5T__conv_llong_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_long", native_ullong, native_long, H5T__conv_ullong_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_ulong", native_ullong, native_ulong, H5T__conv_ullong_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_short", native_llong, native_short, H5T__conv_llong_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_ushort", native_llong, native_ushort, H5T__conv_llong_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_short", native_ullong, native_short, H5T__conv_ullong_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_ushort", native_ullong, native_ushort, H5T__conv_ullong_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_int", native_llong, native_int, H5T__conv_llong_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_uint", native_llong, native_uint, H5T__conv_llong_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_int", native_ullong, native_int, H5T__conv_ullong_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_uint", native_ullong, native_uint, H5T__conv_ullong_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_schar", native_llong, native_schar, H5T__conv_llong_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_uchar", native_llong, native_uchar, H5T__conv_llong_uchar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_schar", native_ullong, native_schar, H5T__conv_ullong_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_uchar", native_ullong, native_uchar, H5T__conv_ullong_uchar, H5AC_ind_dxpl_id, FALSE);
 
     /* From long */
-    status |= H5T_register(H5T_PERS_HARD, "long_llong", native_long, native_llong, H5T__conv_long_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_ullong", native_long, native_ullong, H5T__conv_long_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_llong", native_ulong, native_llong, H5T__conv_ulong_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_ullong", native_ulong, native_ullong, H5T__conv_ulong_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_ulong", native_long, native_ulong, H5T__conv_long_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_long", native_ulong, native_long, H5T__conv_ulong_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_short", native_long, native_short, H5T__conv_long_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_ushort", native_long, native_ushort, H5T__conv_long_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_short", native_ulong, native_short, H5T__conv_ulong_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_ushort", native_ulong, native_ushort, H5T__conv_ulong_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_int", native_long, native_int, H5T__conv_long_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_uint", native_long, native_uint, H5T__conv_long_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_int", native_ulong, native_int, H5T__conv_ulong_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_uint", native_ulong, native_uint, H5T__conv_ulong_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_schar", native_long, native_schar, H5T__conv_long_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_uchar", native_long, native_uchar, H5T__conv_long_uchar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_schar", native_ulong, native_schar, H5T__conv_ulong_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_uchar", native_ulong, native_uchar, H5T__conv_ulong_uchar, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_llong", native_long, native_llong, H5T__conv_long_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_ullong", native_long, native_ullong, H5T__conv_long_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_llong", native_ulong, native_llong, H5T__conv_ulong_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_ullong", native_ulong, native_ullong, H5T__conv_ulong_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_ulong", native_long, native_ulong, H5T__conv_long_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_long", native_ulong, native_long, H5T__conv_ulong_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_short", native_long, native_short, H5T__conv_long_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_ushort", native_long, native_ushort, H5T__conv_long_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_short", native_ulong, native_short, H5T__conv_ulong_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_ushort", native_ulong, native_ushort, H5T__conv_ulong_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_int", native_long, native_int, H5T__conv_long_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_uint", native_long, native_uint, H5T__conv_long_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_int", native_ulong, native_int, H5T__conv_ulong_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_uint", native_ulong, native_uint, H5T__conv_ulong_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_schar", native_long, native_schar, H5T__conv_long_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_uchar", native_long, native_uchar, H5T__conv_long_uchar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_schar", native_ulong, native_schar, H5T__conv_ulong_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_uchar", native_ulong, native_uchar, H5T__conv_ulong_uchar, H5AC_ind_dxpl_id, FALSE);
 
     /* From short */
-    status |= H5T_register(H5T_PERS_HARD, "short_llong", native_short, native_llong, H5T__conv_short_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_ullong", native_short, native_ullong, H5T__conv_short_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_llong", native_ushort, native_llong, H5T__conv_ushort_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_ullong", native_ushort, native_ullong, H5T__conv_ushort_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_long", native_short, native_long, H5T__conv_short_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_ulong", native_short, native_ulong, H5T__conv_short_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_long", native_ushort, native_long, H5T__conv_ushort_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_ulong", native_ushort, native_ulong, H5T__conv_ushort_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_ushort", native_short, native_ushort, H5T__conv_short_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_short", native_ushort, native_short, H5T__conv_ushort_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_int", native_short, native_int, H5T__conv_short_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_uint", native_short, native_uint, H5T__conv_short_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_int", native_ushort, native_int, H5T__conv_ushort_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_uint", native_ushort, native_uint, H5T__conv_ushort_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_schar", native_short, native_schar, H5T__conv_short_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_uchar", native_short, native_uchar, H5T__conv_short_uchar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_schar", native_ushort, native_schar, H5T__conv_ushort_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_uchar", native_ushort, native_uchar, H5T__conv_ushort_uchar, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_llong", native_short, native_llong, H5T__conv_short_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_ullong", native_short, native_ullong, H5T__conv_short_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_llong", native_ushort, native_llong, H5T__conv_ushort_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_ullong", native_ushort, native_ullong, H5T__conv_ushort_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_long", native_short, native_long, H5T__conv_short_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_ulong", native_short, native_ulong, H5T__conv_short_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_long", native_ushort, native_long, H5T__conv_ushort_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_ulong", native_ushort, native_ulong, H5T__conv_ushort_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_ushort", native_short, native_ushort, H5T__conv_short_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_short", native_ushort, native_short, H5T__conv_ushort_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_int", native_short, native_int, H5T__conv_short_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_uint", native_short, native_uint, H5T__conv_short_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_int", native_ushort, native_int, H5T__conv_ushort_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_uint", native_ushort, native_uint, H5T__conv_ushort_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_schar", native_short, native_schar, H5T__conv_short_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_uchar", native_short, native_uchar, H5T__conv_short_uchar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_schar", native_ushort, native_schar, H5T__conv_ushort_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_uchar", native_ushort, native_uchar, H5T__conv_ushort_uchar, H5AC_ind_dxpl_id, FALSE);
 
     /* From int */
-    status |= H5T_register(H5T_PERS_HARD, "int_llong", native_int, native_llong, H5T__conv_int_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_ullong", native_int, native_ullong, H5T__conv_int_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_llong", native_uint, native_llong, H5T__conv_uint_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_ullong", native_uint, native_ullong, H5T__conv_uint_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_long", native_int, native_long, H5T__conv_int_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_ulong", native_int, native_ulong, H5T__conv_int_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_long", native_uint, native_long, H5T__conv_uint_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_ulong", native_uint, native_ulong, H5T__conv_uint_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_short", native_int, native_short, H5T__conv_int_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_ushort", native_int, native_ushort, H5T__conv_int_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_short", native_uint, native_short, H5T__conv_uint_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_ushort", native_uint, native_ushort, H5T__conv_uint_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_uint", native_int, native_uint, H5T__conv_int_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_int", native_uint, native_int, H5T__conv_uint_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_schar", native_int, native_schar, H5T__conv_int_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_uchar", native_int, native_uchar, H5T__conv_int_uchar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_schar", native_uint, native_schar, H5T__conv_uint_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_uchar", native_uint, native_uchar, H5T__conv_uint_uchar, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_llong", native_int, native_llong, H5T__conv_int_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_ullong", native_int, native_ullong, H5T__conv_int_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_llong", native_uint, native_llong, H5T__conv_uint_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_ullong", native_uint, native_ullong, H5T__conv_uint_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_long", native_int, native_long, H5T__conv_int_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_ulong", native_int, native_ulong, H5T__conv_int_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_long", native_uint, native_long, H5T__conv_uint_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_ulong", native_uint, native_ulong, H5T__conv_uint_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_short", native_int, native_short, H5T__conv_int_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_ushort", native_int, native_ushort, H5T__conv_int_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_short", native_uint, native_short, H5T__conv_uint_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_ushort", native_uint, native_ushort, H5T__conv_uint_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_uint", native_int, native_uint, H5T__conv_int_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_int", native_uint, native_int, H5T__conv_uint_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_schar", native_int, native_schar, H5T__conv_int_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_uchar", native_int, native_uchar, H5T__conv_int_uchar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_schar", native_uint, native_schar, H5T__conv_uint_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_uchar", native_uint, native_uchar, H5T__conv_uint_uchar, H5AC_ind_dxpl_id, FALSE);
 
     /* From char */
-    status |= H5T_register(H5T_PERS_HARD, "schar_llong", native_schar, native_llong, H5T__conv_schar_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_ullong", native_schar, native_ullong, H5T__conv_schar_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_llong", native_uchar, native_llong, H5T__conv_uchar_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_ullong", native_uchar, native_ullong, H5T__conv_uchar_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_long", native_schar, native_long, H5T__conv_schar_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_ulong", native_schar, native_ulong, H5T__conv_schar_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_long", native_uchar, native_long, H5T__conv_uchar_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_ulong", native_uchar, native_ulong, H5T__conv_uchar_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_short", native_schar, native_short, H5T__conv_schar_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_ushort", native_schar, native_ushort, H5T__conv_schar_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_short", native_uchar, native_short, H5T__conv_uchar_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_ushort", native_uchar, native_ushort, H5T__conv_uchar_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_int", native_schar, native_int, H5T__conv_schar_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_uint", native_schar, native_uint, H5T__conv_schar_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_int", native_uchar, native_int, H5T__conv_uchar_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_uint", native_uchar, native_uint, H5T__conv_uchar_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_uchar", native_schar, native_uchar, H5T__conv_schar_uchar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_schar", native_uchar, native_schar, H5T__conv_uchar_schar, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_llong", native_schar, native_llong, H5T__conv_schar_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_ullong", native_schar, native_ullong, H5T__conv_schar_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_llong", native_uchar, native_llong, H5T__conv_uchar_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_ullong", native_uchar, native_ullong, H5T__conv_uchar_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_long", native_schar, native_long, H5T__conv_schar_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_ulong", native_schar, native_ulong, H5T__conv_schar_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_long", native_uchar, native_long, H5T__conv_uchar_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_ulong", native_uchar, native_ulong, H5T__conv_uchar_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_short", native_schar, native_short, H5T__conv_schar_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_ushort", native_schar, native_ushort, H5T__conv_schar_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_short", native_uchar, native_short, H5T__conv_uchar_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_ushort", native_uchar, native_ushort, H5T__conv_uchar_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_int", native_schar, native_int, H5T__conv_schar_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_uint", native_schar, native_uint, H5T__conv_schar_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_int", native_uchar, native_int, H5T__conv_uchar_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_uint", native_uchar, native_uint, H5T__conv_uchar_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_uchar", native_schar, native_uchar, H5T__conv_schar_uchar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_schar", native_uchar, native_schar, H5T__conv_uchar_schar, H5AC_ind_dxpl_id, FALSE);
 
     /* From char to floats */
-    status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_ind_dxpl_id, FALSE);
 
     /* From unsigned char to floats */
-    status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_ind_dxpl_id, FALSE);
 
     /* From short to floats */
-    status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_ind_dxpl_id, FALSE);
 
     /* From unsigned short to floats */
-    status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_ind_dxpl_id, FALSE);
 
     /* From int to floats */
-    status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_ind_dxpl_id, FALSE);
 
     /* From unsigned int to floats */
-    status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_ind_dxpl_id, FALSE);
 
     /* From long to floats */
-    status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_ind_dxpl_id, FALSE);
 
     /* From unsigned long to floats */
-    status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_ind_dxpl_id, FALSE);
 
     /* From long long to floats */
-    status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_dbl", native_llong, native_double, H5T__conv_llong_double, H5AC_ind_dxpl_id, FALSE);
 #ifdef H5T_CONV_INTERNAL_LLONG_LDOUBLE
-    status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "llong_ldbl", native_llong, native_ldouble, H5T__conv_llong_ldouble, H5AC_ind_dxpl_id, FALSE);
 #endif /* H5T_CONV_INTERNAL_LLONG_LDOUBLE */
 
     /* From unsigned long long to floats */
-    status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_ind_dxpl_id, FALSE);
 #ifdef H5T_CONV_INTERNAL_ULLONG_LDOUBLE
-    status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_ind_dxpl_id, FALSE);
 #endif /* H5T_CONV_INTERNAL_ULLONG_LDOUBLE */
 
     /* From floats to char */
-    status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_ind_dxpl_id, FALSE);
 
     /* From floats to unsigned char */
-    status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_ind_dxpl_id, FALSE);
 
     /* From floats to short */
-    status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_ind_dxpl_id, FALSE);
 
     /* From floats to unsigned short */
-    status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_ind_dxpl_id, FALSE);
 
     /* From floats to int */
-    status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_ind_dxpl_id, FALSE);
 
     /* From floats to unsigned int */
-    status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_ind_dxpl_id, FALSE);
 
-    status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_ind_dxpl_id, FALSE);
 
     /* From floats to unsigned long */
-    status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_ind_dxpl_id, FALSE);
 
     /* From floats to long long */
-#if H5T_CONV_INTERNAL_FP_LLONG
-    status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_FP_LLONG */
+    status |= H5T_register(H5T_PERS_HARD, "flt_llong", native_float, native_llong, H5T__conv_float_llong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_llong", native_double, native_llong, H5T__conv_double_llong, H5AC_ind_dxpl_id, FALSE);
 #ifdef H5T_CONV_INTERNAL_LDOUBLE_LLONG
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_llong", native_ldouble, native_llong, H5T__conv_ldouble_llong, H5AC_ind_dxpl_id, FALSE);
 #endif /* H5T_CONV_INTERNAL_LDOUBLE_LLONG */
 
     /* From floats to unsigned long long */
-    status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_dxpl_id, FALSE);
-    status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_ind_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_ind_dxpl_id, FALSE);
 #if H5T_CONV_INTERNAL_LDOUBLE_ULLONG
-    status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_ind_dxpl_id, FALSE);
 #endif /* H5T_CONV_INTERNAL_LDOUBLE_ULLONG */
 
     /*
@@ -1300,7 +1293,7 @@ H5T_init_interface(void)
      * data types we use are not important as long as the source and
      * destination are equal.
      */
-    status |= H5T_register(H5T_PERS_HARD, "no-op", native_int, native_int, H5T__conv_noop, H5AC_dxpl_id, FALSE);
+    status |= H5T_register(H5T_PERS_HARD, "no-op", native_int, native_int, H5T__conv_noop, H5AC_ind_dxpl_id, FALSE);
 
     /* Initialize the +/- Infinity values for floating-point types */
     status |= H5T_init_inf();
@@ -1365,7 +1358,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5T_unlock_cb(void *_dt, hid_t UNUSED id, void UNUSED *key)
+H5T_unlock_cb(void *_dt, hid_t H5_ATTR_UNUSED id, void H5_ATTR_UNUSED *key)
 {
     H5T_t	*dt = (H5T_t *)_dt;
 
@@ -1415,7 +1408,7 @@ H5T_term_interface(void)
 		H5T__print_stats(path, &nprint/*in,out*/);
 		path->cdata.command = H5T_CONV_FREE;
 		if((path->func)((hid_t)FAIL, (hid_t)FAIL, &(path->cdata), (size_t)0,
-                        (size_t)0, (size_t)0, NULL, NULL,H5AC_dxpl_id) < 0) {
+                        (size_t)0, (size_t)0, NULL, NULL,H5AC_ind_dxpl_id) < 0) {
 #ifdef H5T_DEBUG
 		    if (H5DEBUG(T)) {
 			fprintf(H5DEBUG(T), "H5T: conversion function "
@@ -2000,7 +1993,7 @@ H5T_detect_class(const H5T_t *dt, H5T_class_t cls, hbool_t from_api)
         case H5T_VLEN:
         case H5T_ENUM:
             HGOTO_DONE(H5T_detect_class(dt->shared->parent, cls, from_api));
-
+            break;
         case H5T_NO_CLASS:
         case H5T_INTEGER:
         case H5T_FLOAT:
@@ -2939,7 +2932,7 @@ H5T_decode(const unsigned char *buf)
 	HGOTO_ERROR(H5E_DATATYPE, H5E_VERSION, NULL, "unknown version of encoded datatype")
 
     /* Decode the serialized datatype message */
-    if(NULL == (ret_value = (H5T_t *)H5O_msg_decode(f, H5AC_dxpl_id, NULL, H5O_DTYPE_ID, buf)))
+    if(NULL == (ret_value = (H5T_t *)H5O_msg_decode(f, H5AC_ind_dxpl_id, NULL, H5O_DTYPE_ID, buf)))
 	HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, NULL, "can't decode object")
 
     /* Mark datatype as being in memory now */
@@ -3225,7 +3218,7 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method)
         switch(new_dt->shared->type) {
             case H5T_COMPOUND:
                 {
-                int accum_change = 0;    /* Amount of change in the offset of the fields */
+                ssize_t accum_change = 0; /* Amount of change in the offset of the fields */
 
                 /*
                 * Copy all member fields to new type, then overwrite the
@@ -3253,13 +3246,17 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method)
                     new_dt->shared->u.compnd.memb[i].type = tmp;
                     HDassert(tmp != NULL);
 
+                    /* Range check against compound member's offset */
+                    if ((accum_change < 0) && ((ssize_t) new_dt->shared->u.compnd.memb[i].offset < accum_change))
+                        HGOTO_ERROR(H5E_DATATYPE, H5E_BADVALUE, NULL, "invalid field size in datatype");
+
                     /* Apply the accumulated size change to the offset of the field */
-                    new_dt->shared->u.compnd.memb[i].offset += accum_change;
+                    new_dt->shared->u.compnd.memb[i].offset += (size_t) accum_change;
 
                     if(old_dt->shared->u.compnd.sorted != H5T_SORT_VALUE) {
                         for(old_match = -1, j = 0; j < old_dt->shared->u.compnd.nmembs; j++) {
                             if(!HDstrcmp(new_dt->shared->u.compnd.memb[i].name, old_dt->shared->u.compnd.memb[j].name)) {
-                                old_match = j;
+                                old_match = (int) j;
                                 break;
                             } /* end if */
                         } /* end for */
@@ -3269,20 +3266,23 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method)
                             HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCOPY, NULL, "fields in datatype corrupted");
                     } /* end if */
                     else
-                        old_match = i;
+                        old_match = (int) i;
 
                     /* If the field changed size, add that change to the accumulated size change */
                     if(new_dt->shared->u.compnd.memb[i].type->shared->size != old_dt->shared->u.compnd.memb[old_match].type->shared->size) {
                         /* Adjust the size of the member */
                         new_dt->shared->u.compnd.memb[i].size = (old_dt->shared->u.compnd.memb[old_match].size*tmp->shared->size)/old_dt->shared->u.compnd.memb[old_match].type->shared->size;
 
-                        accum_change += (new_dt->shared->u.compnd.memb[i].type->shared->size - old_dt->shared->u.compnd.memb[old_match].type->shared->size);
+                        accum_change += (ssize_t) (new_dt->shared->u.compnd.memb[i].type->shared->size - old_dt->shared->u.compnd.memb[old_match].type->shared->size);
                     } /* end if */
                 } /* end for */
 
-                /* Apply the accumulated size change to the size of the compound struct */
-                new_dt->shared->size += accum_change;
+                /* Range check against datatype size */
+                if ((accum_change < 0) && ((ssize_t) new_dt->shared->size < accum_change))
+                    HGOTO_ERROR(H5E_DATATYPE, H5E_BADVALUE, NULL, "invalid field size in datatype");
 
+                /* Apply the accumulated size change to the size of the compound struct */
+                new_dt->shared->size += (size_t) accum_change;
                 }
                 break;
 
@@ -3327,6 +3327,13 @@ H5T_copy(H5T_t *old_dt, H5T_copy_t method)
                 new_dt->shared->size=new_dt->shared->u.array.nelem*new_dt->shared->parent->shared->size;
                 break;
 
+            case H5T_NO_CLASS:
+            case H5T_INTEGER:
+            case H5T_FLOAT:
+            case H5T_TIME:
+            case H5T_STRING:
+            case H5T_BITFIELD:
+            case H5T_NCLASSES:
             default:
                 break;
         } /* end switch */
@@ -3544,6 +3551,16 @@ H5T__free(H5T_t *dt)
             H5MM_xfree(dt->shared->u.opaque.tag);
             break;
 
+        case H5T_NO_CLASS:
+        case H5T_INTEGER:
+        case H5T_FLOAT:
+        case H5T_TIME:
+        case H5T_STRING:
+        case H5T_BITFIELD:
+        case H5T_REFERENCE:
+        case H5T_VLEN:
+        case H5T_ARRAY:
+        case H5T_NCLASSES:
         default:
             break;
     } /* end switch */
@@ -3810,11 +3827,14 @@ H5T_set_size(H5T_t *dt, size_t size)
             case H5T_ARRAY:
             case H5T_REFERENCE:
                 HDassert("can't happen" && 0);
+                break;
             case H5T_NO_CLASS:
             case H5T_NCLASSES:
                 HDassert("invalid type" && 0);
+                break;
             default:
                 HDassert("not implemented yet" && 0);
+                break;
         }
 
         /* Commit (if we didn't convert this type to a VL string) */
@@ -3889,7 +3909,6 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset)
     unsigned	*idx1 = NULL, *idx2 = NULL;
     size_t	base_size;
     hbool_t	swapped;
-    int	i, j;
     unsigned u;
     int	tmp;
     int	ret_value = 0;
@@ -3944,24 +3963,32 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset)
             for(u = 0; u < dt1->shared->u.compnd.nmembs; u++)
                 idx1[u] = idx2[u] = u;
             if(dt1->shared->u.enumer.nmembs > 1) {
-                for(i = dt1->shared->u.compnd.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i)
+                int i;
+
+                for(i = (int) dt1->shared->u.compnd.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) {
+                    int j;
+
                     for(j = 0, swapped=FALSE; j < i; j++)
                         if(HDstrcmp(dt1->shared->u.compnd.memb[idx1[j]].name,
                                  dt1->shared->u.compnd.memb[idx1[j + 1]].name) > 0) {
-                            tmp = idx1[j];
+                            unsigned tmp_idx = idx1[j];
                             idx1[j] = idx1[j + 1];
-                            idx1[j + 1] = tmp;
+                            idx1[j + 1] = tmp_idx;
                             swapped = TRUE;
                         }
-                for(i = dt2->shared->u.compnd.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i)
+                }
+                for(i = (int) dt2->shared->u.compnd.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) {
+                    int j;
+
                     for(j = 0, swapped = FALSE; j<i; j++)
                         if(HDstrcmp(dt2->shared->u.compnd.memb[idx2[j]].name,
                                  dt2->shared->u.compnd.memb[idx2[j + 1]].name) > 0) {
-                            tmp = idx2[j];
+                            unsigned tmp_idx = idx2[j];
                             idx2[j] = idx2[j + 1];
-                            idx2[j + 1] = tmp;
+                            idx2[j + 1] = tmp_idx;
                             swapped = TRUE;
                         }
+                }
             } /* end if */
 
 #ifdef H5T_DEBUG
@@ -4021,28 +4048,39 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset)
                 HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, 0, "memory allocation failed");
             for (u=0; u<dt1->shared->u.enumer.nmembs; u++)
                 idx1[u] = u;
-            if(dt1->shared->u.enumer.nmembs > 1)
-                for (i=dt1->shared->u.enumer.nmembs-1, swapped=TRUE; swapped && i>=0; --i)
-                    for (j=0, swapped=FALSE; j<i; j++)
+            if(dt1->shared->u.enumer.nmembs > 1) {
+                int i;
+                for (i = (int) dt1->shared->u.enumer.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) {
+                    int j;
+
+                    for (j = 0, swapped = FALSE; j < i; j++)
                         if (HDstrcmp(dt1->shared->u.enumer.name[idx1[j]],
                                  dt1->shared->u.enumer.name[idx1[j+1]]) > 0) {
-                            tmp = idx1[j];
+                            unsigned tmp_idx = idx1[j];
                             idx1[j] = idx1[j+1];
-                            idx1[j+1] = tmp;
+                            idx1[j+1] = tmp_idx;
                             swapped = TRUE;
                         }
+                }
+            }
             for (u=0; u<dt2->shared->u.enumer.nmembs; u++)
                 idx2[u] = u;
-            if(dt2->shared->u.enumer.nmembs > 1)
-                for (i=dt2->shared->u.enumer.nmembs-1, swapped=TRUE; swapped && i>=0; --i)
-                    for (j=0, swapped=FALSE; j<i; j++)
+            if(dt2->shared->u.enumer.nmembs > 1) {
+                int i;
+
+                for (i = (int) dt2->shared->u.enumer.nmembs - 1, swapped = TRUE; swapped && i >= 0; --i) {
+                    int j;
+
+                    for (j = 0, swapped = FALSE; j < i; j++)
                         if (HDstrcmp(dt2->shared->u.enumer.name[idx2[j]],
                                  dt2->shared->u.enumer.name[idx2[j+1]]) > 0) {
-                            tmp = idx2[j];
+                            unsigned tmp_idx = idx2[j];
                             idx2[j] = idx2[j+1];
-                            idx2[j+1] = tmp;
+                            idx2[j+1] = tmp_idx;
                             swapped = TRUE;
                         }
+                }
+            }
 
 #ifdef H5T_DEBUG
             /* I don't quite trust the code above yet :-)  --RPM */
@@ -4162,6 +4200,14 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset)
                 HGOTO_DONE(1);
             break;
 
+        case H5T_NO_CLASS:
+        case H5T_INTEGER:
+        case H5T_FLOAT:
+        case H5T_TIME:
+        case H5T_STRING:
+        case H5T_BITFIELD:
+        case H5T_REFERENCE:
+        case H5T_NCLASSES:
         default:
             /*
              * Atomic datatypes...
@@ -4269,13 +4315,23 @@ H5T_cmp(const H5T_t *dt1, const H5T_t *dt2, hbool_t superset)
                         case H5R_BADTYPE:
                         case H5R_MAXTYPE:
                             HDassert("invalid type" && 0);
+                            break;
                         default:
                             HDassert("not implemented yet" && 0);
+                            break;
                     }
                     break;
 
+                case H5T_NO_CLASS:
+                case H5T_OPAQUE:
+                case H5T_COMPOUND:
+                case H5T_ENUM:
+                case H5T_VLEN:
+                case H5T_ARRAY:
+                case H5T_NCLASSES:
                 default:
                     HDassert("not implemented yet" && 0);
+                    break;
             }
         break;
     } /* end switch */
@@ -4549,7 +4605,7 @@ H5T_path_find(const H5T_t *src, const H5T_t *dst, const char *name,
         } /* end if */
         if(cmp > 0)
             md++;
-        HDmemmove(H5T_g.path + md + 1, H5T_g.path + md, (H5T_g.npaths - md) * sizeof(H5T_path_t*));
+        HDmemmove(H5T_g.path + md + 1, H5T_g.path + md, (size_t) (H5T_g.npaths - md) * sizeof(H5T_path_t*));
         H5T_g.npaths++;
 	H5T_g.path[md] = path;
 	table = path;
@@ -5014,6 +5070,17 @@ H5T_is_sensible(const H5T_t *dt)
                 ret_value=FALSE;
             break;
 
+        case H5T_NO_CLASS:
+        case H5T_INTEGER:
+        case H5T_FLOAT:
+        case H5T_TIME:
+        case H5T_STRING:
+        case H5T_BITFIELD:
+        case H5T_OPAQUE:
+        case H5T_REFERENCE:
+        case H5T_VLEN:
+        case H5T_ARRAY:
+        case H5T_NCLASSES:
         default:
             /* Assume all other datatype are sensible to store on disk */
             ret_value=TRUE;
@@ -5055,7 +5122,6 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc)
     htri_t changed;    /* Whether H5T_set_loc changed the type (even if the size didn't change) */
     htri_t ret_value = 0;   /* Indicate that success, but no location change */
     unsigned i;             /* Local index variable */
-    int accum_change;       /* Amount of change in the offset of the fields */
     size_t old_size;        /* Previous size of a field */
 
     FUNC_ENTER_NOAPI(FAIL)
@@ -5089,14 +5155,21 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc)
                 break;
 
             case H5T_COMPOUND:  /* Check each field and recurse on VL, compound and array type */
+                {
+                ssize_t accum_change = 0; /* Amount of change in the offset of the fields */
+
                 /* Sort the fields based on offsets */
                 H5T__sort_value(dt, NULL);
 
-                for (i=0,accum_change=0; i<dt->shared->u.compnd.nmembs; i++) {
+                for (i=0; i<dt->shared->u.compnd.nmembs; i++) {
                     H5T_t *memb_type;   /* Member's datatype pointer */
 
+                    /* Range check against compound member's offset */
+                    if ((accum_change < 0) && ((ssize_t) dt->shared->u.compnd.memb[i].offset < accum_change))
+                        HGOTO_ERROR(H5E_DATATYPE, H5E_BADVALUE, FAIL, "invalid field size in datatype");
+
                     /* Apply the accumulated size change to the offset of the field */
-                    dt->shared->u.compnd.memb[i].offset += accum_change;
+                    dt->shared->u.compnd.memb[i].offset += (size_t) accum_change;
 
                     /* Set the member type pointer (for convenience) */
                     memb_type=dt->shared->u.compnd.memb[i].type;
@@ -5119,13 +5192,18 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc)
                             dt->shared->u.compnd.memb[i].size = (dt->shared->u.compnd.memb[i].size*memb_type->shared->size)/old_size;
 
                             /* Add that change to the accumulated size change */
-                            accum_change += (memb_type->shared->size - (int)old_size);
+                            accum_change += (ssize_t) (memb_type->shared->size - old_size);
                         } /* end if */
                     } /* end if */
                 } /* end for */
 
+                /* Range check against datatype size */
+                if ((accum_change < 0) && ((ssize_t) dt->shared->size < accum_change))
+                    HGOTO_ERROR(H5E_DATATYPE, H5E_BADVALUE, FAIL, "invalid field size in datatype");
+
                 /* Apply the accumulated size change to the datatype */
-                dt->shared->size = (size_t)(dt->shared->size + accum_change);
+                dt->shared->size += (size_t) accum_change;
+                }
                 break;
 
             case H5T_VLEN: /* Recurse on the VL information if it's VL, compound or array, then free VL sequence */
@@ -5159,6 +5237,15 @@ H5T_set_loc(H5T_t *dt, H5F_t *f, H5T_loc_t loc)
                 } /* end if */
                 break;
 
+            case H5T_NO_CLASS:
+            case H5T_INTEGER:
+            case H5T_FLOAT:
+            case H5T_TIME:
+            case H5T_STRING:
+            case H5T_BITFIELD:
+            case H5T_OPAQUE:
+            case H5T_ENUM:
+            case H5T_NCLASSES:
             default:
                 break;
         } /* end switch */
@@ -5249,6 +5336,15 @@ H5T_upgrade_version_cb(H5T_t *dt, void *op_value)
                 dt->shared->version = dt->shared->parent->shared->version;
             break;
 
+        case H5T_NO_CLASS:
+        case H5T_INTEGER:
+        case H5T_FLOAT:
+        case H5T_TIME:
+        case H5T_STRING:
+        case H5T_BITFIELD:
+        case H5T_OPAQUE:
+        case H5T_REFERENCE:
+        case H5T_NCLASSES:
         default:
             break;
     } /* end switch */
diff --git a/src/H5Tarray.c b/src/H5Tarray.c
index c73b934..752f2aa 100644
--- a/src/H5Tarray.c
+++ b/src/H5Tarray.c
@@ -202,7 +202,7 @@ H5T__array_create(H5T_t *base, unsigned ndims, const hsize_t dim[/* ndims */])
 
     /* Copy the array dimensions & compute the # of elements in the array */
     for(u = 0, ret_value->shared->u.array.nelem = 1; u < ndims; u++) {
-        H5_ASSIGN_OVERFLOW(ret_value->shared->u.array.dim[u], dim[u], hsize_t, size_t);
+        H5_CHECKED_ASSIGN(ret_value->shared->u.array.dim[u], size_t, dim[u], hsize_t);
         ret_value->shared->u.array.nelem *= (size_t)dim[u];
     } /* end for */
 
@@ -376,7 +376,7 @@ H5T__get_array_dims(const H5T_t *dt, hsize_t dims[])
  */
 hid_t
 H5Tarray_create1(hid_t base_id, int ndims, const hsize_t dim[/* ndims */],
-    const int UNUSED perm[/* ndims */])
+    const int H5_ATTR_UNUSED perm[/* ndims */])
 {
     H5T_t	*base;		/* base datatype	*/
     H5T_t	*dt = NULL;	/* new array datatype	*/
@@ -429,7 +429,7 @@ done:
  *-------------------------------------------------------------------------
  */
 int
-H5Tget_array_dims1(hid_t type_id, hsize_t dims[], int UNUSED perm[])
+H5Tget_array_dims1(hid_t type_id, hsize_t dims[], int H5_ATTR_UNUSED perm[])
 {
     H5T_t *dt;		/* Array datatype to query	*/
     int	ret_value;	/* return value			*/
diff --git a/src/H5Tcommit.c b/src/H5Tcommit.c
index 7359a56..024cc83 100644
--- a/src/H5Tcommit.c
+++ b/src/H5Tcommit.c
@@ -558,7 +558,7 @@ H5Topen2(hid_t loc_id, const char *name, hid_t tapl_id)
     H5O_type_t   obj_type;              /* Type of object at location */
     H5G_loc_t    type_loc;              /* Group object for datatype */
     hbool_t      obj_found = FALSE;     /* Object at 'name' found */
-    hid_t        dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datatype */
+    hid_t        dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datatype */
     hid_t        ret_value = FAIL;      /* Return value */
 
     FUNC_ENTER_API(FAIL)
diff --git a/src/H5Tconv.c b/src/H5Tconv.c
index e81f17d..49bfeec 100644
--- a/src/H5Tconv.c
+++ b/src/H5Tconv.c
@@ -1004,10 +1004,10 @@ H5T_init_conv_interface(void)
  *-------------------------------------------------------------------------
  */
 herr_t
-H5T__conv_noop(hid_t UNUSED src_id, hid_t UNUSED dst_id, H5T_cdata_t *cdata,
-	      size_t UNUSED nelmts, size_t UNUSED buf_stride,
-              size_t UNUSED bkg_stride, void UNUSED *buf,
-	      void UNUSED *background, hid_t UNUSED dxpl_id)
+H5T__conv_noop(hid_t H5_ATTR_UNUSED src_id, hid_t H5_ATTR_UNUSED dst_id, H5T_cdata_t *cdata,
+	      size_t H5_ATTR_UNUSED nelmts, size_t H5_ATTR_UNUSED buf_stride,
+              size_t H5_ATTR_UNUSED bkg_stride, void H5_ATTR_UNUSED *buf,
+	      void H5_ATTR_UNUSED *background, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     herr_t      ret_value = SUCCEED;       /* Return value */
 
@@ -1055,8 +1055,8 @@ done:
 herr_t
 H5T__conv_order_opt(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
                    size_t nelmts, size_t buf_stride,
-                   size_t UNUSED bkg_stride, void *_buf,
-                   void UNUSED *background, hid_t UNUSED dxpl_id)
+                   size_t H5_ATTR_UNUSED bkg_stride, void *_buf,
+                   void H5_ATTR_UNUSED *background, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     uint8_t	*buf = (uint8_t*)_buf;
     H5T_t	*src = NULL;
@@ -1474,8 +1474,8 @@ done:
  */
 herr_t
 H5T__conv_order(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-	       size_t buf_stride, size_t UNUSED bkg_stride, void *_buf,
-               void UNUSED *background, hid_t UNUSED dxpl_id)
+	       size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *_buf,
+               void H5_ATTR_UNUSED *background, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     uint8_t	*buf = (uint8_t*)_buf;
     H5T_t	*src = NULL;
@@ -1579,8 +1579,8 @@ done:
  */
 herr_t
 H5T__conv_b_b(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-	     size_t buf_stride, size_t UNUSED bkg_stride, void *_buf,
-             void UNUSED *background, hid_t dxpl_id)
+	     size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *_buf,
+             void H5_ATTR_UNUSED *background, hid_t dxpl_id)
 {
     uint8_t	*buf = (uint8_t*)_buf;
     H5T_t	*src = NULL, *dst = NULL;	/*source and dest datatypes	*/
@@ -1952,7 +1952,7 @@ H5T_conv_struct_init(H5T_t *src, H5T_t *dst, H5T_cdata_t *cdata, hid_t dxpl_id)
             src2dst[i] = -1;
             for(j = 0; j < dst_nmembs; j++) {
                 if(!HDstrcmp(src->shared->u.compnd.memb[i].name, dst->shared->u.compnd.memb[j].name)) {
-                    H5_ASSIGN_OVERFLOW(src2dst[i],j,unsigned,int);
+                    H5_CHECKED_ASSIGN(src2dst[i], int, j, unsigned);
                     break;
                 } /* end if */
             } /* end for */
@@ -2187,16 +2187,16 @@ H5T__conv_struct(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
              * Direction of conversion and striding through background.
              */
             if(buf_stride) {
-                H5_ASSIGN_OVERFLOW(src_delta, buf_stride, size_t, ssize_t);
+                H5_CHECKED_ASSIGN(src_delta, ssize_t, buf_stride, size_t);
                 if(!bkg_stride) {
-                    H5_ASSIGN_OVERFLOW(bkg_delta, dst->shared->size, size_t, ssize_t);
+                    H5_CHECKED_ASSIGN(bkg_delta, ssize_t, dst->shared->size, size_t);
                 } /* end if */
                 else
-                    H5_ASSIGN_OVERFLOW(bkg_delta, bkg_stride, size_t, ssize_t);
+                    H5_CHECKED_ASSIGN(bkg_delta, ssize_t, bkg_stride, size_t);
             } /* end if */
             else if(dst->shared->size <= src->shared->size) {
-                H5_ASSIGN_OVERFLOW(src_delta, src->shared->size, size_t, ssize_t);
-                H5_ASSIGN_OVERFLOW(bkg_delta, dst->shared->size, size_t, ssize_t);
+                H5_CHECKED_ASSIGN(src_delta, ssize_t, src->shared->size, size_t);
+                H5_CHECKED_ASSIGN(bkg_delta, ssize_t, dst->shared->size, size_t);
             } /* end else-if */
             else {
                 H5_CHECK_OVERFLOW(src->shared->size, size_t, ssize_t);
@@ -2278,7 +2278,7 @@ H5T__conv_struct(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
 
             /* If the bkg_delta was set to -(dst->shared->size), make it positive now */
             if(buf_stride == 0 && dst->shared->size > src->shared->size)
-                H5_ASSIGN_OVERFLOW(bkg_delta, dst->shared->size, size_t, ssize_t);
+                H5_CHECKED_ASSIGN(bkg_delta, ssize_t, dst->shared->size, size_t);
 
             /*
              * Copy the background buffer back into the in-place conversion
@@ -2758,8 +2758,8 @@ done:
  */
 herr_t
 H5T__conv_enum(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-	      size_t buf_stride, size_t UNUSED bkg_stride, void *_buf,
-              void UNUSED *bkg, hid_t UNUSED dxpl_id)
+	      size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *_buf,
+              void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     uint8_t	*buf = (uint8_t*)_buf;	/*cast for pointer arithmetic	*/
     H5T_t	*src = NULL, *dst = NULL;	/*src and dst datatypes	*/
@@ -2833,8 +2833,8 @@ H5T__conv_enum(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
                 src_delta = dst_delta = (ssize_t)buf_stride;
                 s = d = buf;
             } else if(dst->shared->size <= src->shared->size) {
-                H5_ASSIGN_OVERFLOW(src_delta, src->shared->size, size_t, ssize_t);
-                H5_ASSIGN_OVERFLOW(dst_delta, dst->shared->size, size_t, ssize_t);
+                H5_CHECKED_ASSIGN(src_delta, ssize_t, src->shared->size, size_t);
+                H5_CHECKED_ASSIGN(dst_delta, ssize_t, dst->shared->size, size_t);
                 s = d = buf;
             } else {
                 H5_CHECK_OVERFLOW(src->shared->size, size_t, ssize_t);
@@ -2955,8 +2955,8 @@ done:
  */
 herr_t
 H5T__conv_enum_numeric(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-	      size_t UNUSED buf_stride, size_t UNUSED bkg_stride, void *_buf,
-              void UNUSED *bkg, hid_t UNUSED dxpl_id)
+	      size_t H5_ATTR_UNUSED buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *_buf,
+              void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_t	*src, *dst;		/*src and dst datatypes	*/
     H5T_t	*src_parent;		/*parent type for src           */
@@ -3394,7 +3394,7 @@ done:
 herr_t
 H5T__conv_array(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
 	      size_t buf_stride, size_t bkg_stride, void *_buf,
-              void UNUSED *_bkg, hid_t dxpl_id)
+              void H5_ATTR_UNUSED *_bkg, hid_t dxpl_id)
 {
     H5T_path_t	*tpath;		        /* Type conversion path		     */
     hid_t       tsrc_id = -1, tdst_id = -1;/*temporary type atoms	     */
@@ -3555,7 +3555,7 @@ done:
  */
 herr_t
 H5T__conv_i_i(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-    size_t buf_stride, size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+    size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
     hid_t dxpl_id)
 {
     H5T_t	*src = NULL;		/*source datatype		*/
@@ -3969,7 +3969,7 @@ done:
  */
 herr_t
 H5T__conv_f_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-    size_t buf_stride, size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+    size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
     hid_t dxpl_id)
 {
     /* Traversal-related variables */
@@ -4220,7 +4220,11 @@ H5T__conv_f_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
                         HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCONVERT, FAIL, "can't handle conversion exception")
 
                     goto padding;
-#ifndef H5_VMS  /*Temporary solution to handle VAX special values*/
+                /* Temporary solution to handle VAX special values.
+                 * Note that even though we don't support VAX anymore, we
+                 * still need to handle legacy VAX files so this code must
+                 * remain in place.
+                 */
                 } else if (H5T__bit_find (s, src.u.f.epos, src.u.f.esize,
                                          H5T_BIT_LSB, FALSE)<0) {
                     /* NaN */
@@ -4245,7 +4249,6 @@ H5T__conv_f_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
                         HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCONVERT, FAIL, "can't handle conversion exception")
 
                     goto padding;
-#endif /*H5_VMS*/
                 }
 
                 /*
@@ -4539,8 +4542,8 @@ done:
  */
 herr_t
 H5T__conv_s_s(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-	      size_t buf_stride, size_t UNUSED bkg_stride, void *buf,
-              void UNUSED *bkg, hid_t UNUSED dxpl_id)
+	      size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *buf,
+              void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_t	*src=NULL;		/*source datatype		*/
     H5T_t	*dst=NULL;		/*destination datatype		*/
@@ -4776,8 +4779,8 @@ done:
 herr_t
 H5T__conv_schar_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_su(SCHAR, UCHAR, signed char, unsigned char, -, -);
 }
@@ -4802,8 +4805,8 @@ H5T__conv_schar_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_us(UCHAR, SCHAR, unsigned char, signed char, -, SCHAR_MAX);
 }
@@ -4828,8 +4831,8 @@ H5T__conv_uchar_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_schar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(SCHAR, SHORT, signed char, short, -, -);
 }
@@ -4854,8 +4857,8 @@ H5T__conv_schar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_schar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(SCHAR, USHORT, signed char, unsigned short, -, -);
 }
@@ -4880,8 +4883,8 @@ H5T__conv_schar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(UCHAR, SHORT, unsigned char, short, -, SHRT_MAX);
 }
@@ -4906,8 +4909,8 @@ H5T__conv_uchar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(UCHAR, USHORT, unsigned char, unsigned short, -, -);
 }
@@ -4931,8 +4934,8 @@ H5T__conv_uchar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_schar_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		   size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                   void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		   size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                   void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(SCHAR, INT, signed char, int, -, -);
 }
@@ -4956,8 +4959,8 @@ H5T__conv_schar_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_schar_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(SCHAR, UINT, signed char, unsigned, -, -);
 }
@@ -4981,8 +4984,8 @@ H5T__conv_schar_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_uchar_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		   size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                   void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		   size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                   void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(UCHAR, INT, unsigned char, int, -, INT_MAX);
 }
@@ -5006,8 +5009,8 @@ H5T__conv_uchar_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_uchar_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(UCHAR, UINT, unsigned char, unsigned, -, -);
 }
@@ -5031,8 +5034,8 @@ H5T__conv_uchar_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_schar_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(SCHAR, LONG, signed char, long, -, -);
 }
@@ -5057,8 +5060,8 @@ H5T__conv_schar_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_schar_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(SCHAR, ULONG, signed char, unsigned long, -, -);
 }
@@ -5082,8 +5085,8 @@ H5T__conv_schar_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_uchar_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(UCHAR, LONG, unsigned char, long, -, LONG_MAX);
 }
@@ -5108,8 +5111,8 @@ H5T__conv_uchar_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(UCHAR, ULONG, unsigned char, unsigned long, -, -);
 }
@@ -5134,8 +5137,8 @@ H5T__conv_uchar_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_schar_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(SCHAR, LLONG, signed char, long long, -, -);
 }
@@ -5160,8 +5163,8 @@ H5T__conv_schar_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_schar_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(SCHAR, ULLONG, signed char, unsigned long long, -, -);
 }
@@ -5186,8 +5189,8 @@ H5T__conv_schar_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(UCHAR, LLONG, unsigned char, long long, -, LLONG_MAX);
 }
@@ -5212,8 +5215,8 @@ H5T__conv_uchar_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(UCHAR, ULLONG, unsigned char, unsigned long long, -, -);
 }
@@ -5238,8 +5241,8 @@ H5T__conv_uchar_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(SHORT, SCHAR, short, signed char, SCHAR_MIN, SCHAR_MAX);
 }
@@ -5264,8 +5267,8 @@ H5T__conv_short_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(SHORT, UCHAR, short, unsigned char, -, UCHAR_MAX);
 }
@@ -5290,8 +5293,8 @@ H5T__conv_short_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(USHORT, SCHAR, unsigned short, signed char, -, SCHAR_MAX);
 }
@@ -5316,8 +5319,8 @@ H5T__conv_ushort_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(USHORT, UCHAR, unsigned short, unsigned char, -, UCHAR_MAX);
 }
@@ -5342,8 +5345,8 @@ H5T__conv_ushort_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_su(SHORT, USHORT, short, unsigned short, -, -);
 }
@@ -5368,8 +5371,8 @@ H5T__conv_short_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_us(USHORT, SHORT, unsigned short, short, -, SHRT_MAX);
 }
@@ -5394,8 +5397,8 @@ H5T__conv_ushort_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		   size_t nelmts, size_t buf_stride,
-                   size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		   hid_t UNUSED dxpl_id)
+                   size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		   hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(SHORT, INT, short, int, -, -);
 }
@@ -5420,8 +5423,8 @@ H5T__conv_short_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		    size_t nelmts, size_t buf_stride,
-                    size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		    hid_t UNUSED dxpl_id)
+                    size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		    hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(SHORT, UINT, short, unsigned, -, -);
 }
@@ -5446,8 +5449,8 @@ H5T__conv_short_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		    size_t nelmts, size_t buf_stride,
-                    size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		    hid_t UNUSED dxpl_id)
+                    size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		    hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(USHORT, INT, unsigned short, int, -, INT_MAX);
 }
@@ -5472,8 +5475,8 @@ H5T__conv_ushort_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(USHORT, UINT, unsigned short, unsigned, -, -);
 }
@@ -5498,8 +5501,8 @@ H5T__conv_ushort_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		    size_t nelmts, size_t buf_stride,
-                    size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		    hid_t UNUSED dxpl_id)
+                    size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		    hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(SHORT, LONG, short, long, -, -);
 }
@@ -5524,8 +5527,8 @@ H5T__conv_short_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(SHORT, ULONG, short, unsigned long, -, -);
 }
@@ -5550,8 +5553,8 @@ H5T__conv_short_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(USHORT, LONG, unsigned short, long, -, LONG_MAX);
 }
@@ -5576,8 +5579,8 @@ H5T__conv_ushort_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(USHORT, ULONG, unsigned short, unsigned long, -, -);
 }
@@ -5602,8 +5605,8 @@ H5T__conv_ushort_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(SHORT, LLONG, short, long long, -, -);
 }
@@ -5628,8 +5631,8 @@ H5T__conv_short_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(SHORT, ULLONG, short, unsigned long long, -, -);
 }
@@ -5654,8 +5657,8 @@ H5T__conv_short_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(USHORT, LLONG, unsigned short, long long, -, LLONG_MAX);
 }
@@ -5680,8 +5683,8 @@ H5T__conv_ushort_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(USHORT, ULLONG, unsigned short, unsigned long long, -, -);
 }
@@ -5706,8 +5709,8 @@ H5T__conv_ushort_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_int_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		   size_t nelmts, size_t buf_stride,
-                   size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		   hid_t UNUSED dxpl_id)
+                   size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		   hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(INT, SCHAR, int, signed char, SCHAR_MIN, SCHAR_MAX);
 }
@@ -5732,8 +5735,8 @@ H5T__conv_int_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_int_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		   size_t nelmts, size_t buf_stride,
-                   size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		   hid_t UNUSED dxpl_id)
+                   size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		   hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(INT, UCHAR, int, unsigned char, -, UCHAR_MAX);
 }
@@ -5758,8 +5761,8 @@ H5T__conv_int_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uint_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		    size_t nelmts, size_t buf_stride,
-                    size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		    hid_t UNUSED dxpl_id)
+                    size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		    hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(UINT, SCHAR, unsigned, signed char, -, SCHAR_MAX);
 }
@@ -5784,8 +5787,8 @@ H5T__conv_uint_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uint_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		    size_t nelmts, size_t buf_stride,
-                    size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		    hid_t UNUSED dxpl_id)
+                    size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		    hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(UINT, UCHAR, unsigned, unsigned char, -, UCHAR_MAX);
 }
@@ -5810,8 +5813,8 @@ H5T__conv_uint_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_int_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		   size_t nelmts, size_t buf_stride,
-                   size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		   hid_t UNUSED dxpl_id)
+                   size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		   hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(INT, SHORT, int, short, SHRT_MIN, SHRT_MAX);
 }
@@ -5836,8 +5839,8 @@ H5T__conv_int_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_int_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		    size_t nelmts, size_t buf_stride,
-                    size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		    hid_t UNUSED dxpl_id)
+                    size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		    hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(INT, USHORT, int, unsigned short, -, USHRT_MAX);
 }
@@ -5862,8 +5865,8 @@ H5T__conv_int_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uint_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		    size_t nelmts, size_t buf_stride,
-                    size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		    hid_t UNUSED dxpl_id)
+                    size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		    hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(UINT, SHORT, unsigned, short, -, SHRT_MAX);
 }
@@ -5888,8 +5891,8 @@ H5T__conv_uint_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uint_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(UINT, USHORT, unsigned, unsigned short, -, USHRT_MAX);
 }
@@ -5913,8 +5916,8 @@ H5T__conv_uint_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_int_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		  size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                  void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		  size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                  void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_su(INT, UINT, int, unsigned, -, -);
 }
@@ -5938,8 +5941,8 @@ H5T__conv_int_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_uint_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		  size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                  void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		  size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                  void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_us(UINT, INT, unsigned, int, -, INT_MAX);
 }
@@ -5963,8 +5966,8 @@ H5T__conv_uint_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_int_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		  size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                  void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		  size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                  void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(INT, LONG, int, long, -, -);
 }
@@ -5988,8 +5991,8 @@ H5T__conv_int_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_int_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		   size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                   void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		   size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                   void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(INT, LONG, int, unsigned long, -, -);
 }
@@ -6013,8 +6016,8 @@ H5T__conv_int_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_uint_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		   size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                   void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		   size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                   void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(UINT, LONG, unsigned, long, -, LONG_MAX);
 }
@@ -6038,8 +6041,8 @@ H5T__conv_uint_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_uint_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(UINT, ULONG, unsigned, unsigned long, -, -);
 }
@@ -6063,8 +6066,8 @@ H5T__conv_uint_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_int_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		   size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                   void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		   size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                   void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(INT, LLONG, int, long long, -, -);
 }
@@ -6088,8 +6091,8 @@ H5T__conv_int_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_int_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(INT, ULLONG, int, unsigned long long, -, -);
 }
@@ -6113,8 +6116,8 @@ H5T__conv_int_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_uint_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(UINT, LLONG, unsigned, long long, -, LLONG_MAX);
 }
@@ -6139,8 +6142,8 @@ H5T__conv_uint_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uint_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(UINT, ULLONG, unsigned, unsigned long long, -, -);
 }
@@ -6164,8 +6167,8 @@ H5T__conv_uint_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_long_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(LONG, SCHAR, long, signed char, SCHAR_MIN, SCHAR_MAX);
 }
@@ -6189,8 +6192,8 @@ H5T__conv_long_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_long_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(LONG, UCHAR, long, unsigned char, -, UCHAR_MAX);
 }
@@ -6215,8 +6218,8 @@ H5T__conv_long_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ulong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(ULONG, SCHAR, unsigned long, signed char, -, SCHAR_MAX);
 }
@@ -6241,8 +6244,8 @@ H5T__conv_ulong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ulong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(ULONG, UCHAR, unsigned long, unsigned char, -, UCHAR_MAX);
 }
@@ -6266,8 +6269,8 @@ H5T__conv_ulong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_long_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(LONG, SHORT, long, short, SHRT_MIN, SHRT_MAX);
 }
@@ -6292,8 +6295,8 @@ H5T__conv_long_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_long_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(LONG, USHORT, long, unsigned short, -, USHRT_MAX);
 }
@@ -6317,8 +6320,8 @@ H5T__conv_long_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_ulong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                     void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                     void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(ULONG, SHORT, unsigned long, short, -, SHRT_MAX);
 }
@@ -6343,8 +6346,8 @@ H5T__conv_ulong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ulong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(ULONG, USHORT, unsigned long, unsigned short, -, USHRT_MAX);
 }
@@ -6368,8 +6371,8 @@ H5T__conv_ulong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_long_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		  size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                  void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		  size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                  void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(LONG, INT, long, int, INT_MIN, INT_MAX);
 }
@@ -6393,8 +6396,8 @@ H5T__conv_long_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_long_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		   size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                   void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		   size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                   void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(LONG, UINT, long, unsigned, -, UINT_MAX);
 }
@@ -6418,8 +6421,8 @@ H5T__conv_long_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_ulong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		   size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                   void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		   size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                   void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(ULONG, INT, unsigned long, int, -, INT_MAX);
 }
@@ -6443,8 +6446,8 @@ H5T__conv_ulong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_ulong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(ULONG, UINT, unsigned long, unsigned, -, UINT_MAX);
 }
@@ -6468,8 +6471,8 @@ H5T__conv_ulong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_long_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_su(LONG, ULONG, long, unsigned long, -, -);
 }
@@ -6493,8 +6496,8 @@ H5T__conv_long_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_ulong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_us(ULONG, LONG, unsigned long, long, -, LONG_MAX);
 }
@@ -6518,8 +6521,8 @@ H5T__conv_ulong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_long_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sS(LONG, LLONG, long, long long, -, -);
 }
@@ -6544,8 +6547,8 @@ H5T__conv_long_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_long_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_sU(LONG, ULLONG, long, unsigned long long, -, -);
 }
@@ -6570,8 +6573,8 @@ H5T__conv_long_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ulong_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uS(ULONG, LLONG, unsigned long, long long, -, LLONG_MAX);
 }
@@ -6596,8 +6599,8 @@ H5T__conv_ulong_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ulong_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_uU(ULONG, ULLONG, unsigned long, unsigned long long, -, -);
 }
@@ -6622,8 +6625,8 @@ H5T__conv_ulong_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(LLONG, SCHAR, long long, signed char, SCHAR_MIN, SCHAR_MAX);
 }
@@ -6648,8 +6651,8 @@ H5T__conv_llong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(LLONG, UCHAR, long long, unsigned char, -, UCHAR_MAX);
 }
@@ -6674,8 +6677,8 @@ H5T__conv_llong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(ULLONG, SCHAR, unsigned long long, signed char, -, SCHAR_MAX);
 }
@@ -6700,8 +6703,8 @@ H5T__conv_ullong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
                       size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(ULLONG, UCHAR, unsigned long long, unsigned char, -, UCHAR_MAX);
 }
@@ -6726,8 +6729,8 @@ H5T__conv_ullong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(LLONG, SHORT, long long, short, SHRT_MIN, SHRT_MAX);
 }
@@ -6752,8 +6755,8 @@ H5T__conv_llong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(LLONG, USHORT, long long, unsigned short, -, USHRT_MAX);
 }
@@ -6778,8 +6781,8 @@ H5T__conv_llong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(ULLONG, SHORT, unsigned long long, short, -, SHRT_MAX);
 }
@@ -6804,8 +6807,8 @@ H5T__conv_ullong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(ULLONG, USHORT, unsigned long long, unsigned short, -, USHRT_MAX);
 }
@@ -6829,8 +6832,8 @@ H5T__conv_ullong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_llong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		   size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                   void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		   size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                   void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(LLONG, INT, long long, int, INT_MIN, INT_MAX);
 }
@@ -6854,8 +6857,8 @@ H5T__conv_llong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_llong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(LLONG, UINT, long long, unsigned, -, UINT_MAX);
 }
@@ -6879,8 +6882,8 @@ H5T__conv_llong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_ullong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(ULLONG, INT, unsigned long long, int, -, INT_MAX);
 }
@@ -6905,8 +6908,8 @@ H5T__conv_ullong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(ULLONG, UINT, unsigned long long, unsigned, -, UINT_MAX);
 }
@@ -6930,8 +6933,8 @@ H5T__conv_ullong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_llong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
-		    size_t nelmts, size_t buf_stride, size_t UNUSED bkg_stride,
-                    void *buf, void UNUSED *bkg, hid_t UNUSED dxpl_id)
+		    size_t nelmts, size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride,
+                    void *buf, void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ss(LLONG, LONG, long long, long, LONG_MIN, LONG_MAX);
 }
@@ -6956,8 +6959,8 @@ H5T__conv_llong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Su(LLONG, ULONG, long long, unsigned long, -, ULONG_MAX);
 }
@@ -6982,8 +6985,8 @@ H5T__conv_llong_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		     size_t nelmts, size_t buf_stride,
-                     size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-		     hid_t UNUSED dxpl_id)
+                     size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+		     hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Us(ULLONG, LONG, unsigned long long, long, -, LONG_MAX);
 }
@@ -7008,8 +7011,8 @@ H5T__conv_ullong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Uu(ULLONG, ULONG, unsigned long long, unsigned long, -, ULONG_MAX);
 }
@@ -7034,8 +7037,8 @@ H5T__conv_ullong_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_su(LLONG, ULLONG, long long, unsigned long long, -, -);
 }
@@ -7060,8 +7063,8 @@ H5T__conv_llong_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		      size_t nelmts, size_t buf_stride,
-                      size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                      hid_t UNUSED dxpl_id)
+                      size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                      hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_us(ULLONG, LLONG, unsigned long long, long long, -, LLONG_MAX);
 }
@@ -7086,16 +7089,14 @@ H5T__conv_ullong_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *		destination values are packed.
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_FP
 herr_t
 H5T__conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_fF(FLOAT, DOUBLE, float, double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_FP_FP */
 
 

 /*-------------------------------------------------------------------------
@@ -7113,16 +7114,16 @@ H5T__conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_LDOUBLE
+#if H5_SIZEOF_LONG_DOUBLE != 0
 herr_t
 H5T__conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_fF(FLOAT, LDOUBLE, float, long double, -, -);
 }
-#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/
+#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */
 
 

 /*-------------------------------------------------------------------------
@@ -7147,16 +7148,14 @@ H5T__conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *		destination values are packed.
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_FP
 herr_t
 H5T__conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ff(DOUBLE, FLOAT, double, float, -FLT_MAX, FLT_MAX);
 }
-#endif /*H5T_CONV_INTERNAL_FP_FP*/
 
 

 /*-------------------------------------------------------------------------
@@ -7174,16 +7173,16 @@ H5T__conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_LDOUBLE
+#if H5_SIZEOF_LONG_DOUBLE != 0
 herr_t
 H5T__conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_fF(DOUBLE, LDOUBLE, double, long double, -, -);
 }
-#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/
+#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */
 
 

 /*-------------------------------------------------------------------------
@@ -7201,16 +7200,16 @@ H5T__conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_LDOUBLE
+#if H5_SIZEOF_LONG_DOUBLE != 0
 herr_t
 H5T__conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ff(LDOUBLE, FLOAT, long double, float, -FLT_MAX, FLT_MAX);
 }
-#endif /* H5T_CONV_INTERNAL_FP_LDOUBLE */
+#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */
 
 

 /*-------------------------------------------------------------------------
@@ -7228,16 +7227,16 @@ H5T__conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_LDOUBLE
+#if H5_SIZEOF_LONG_DOUBLE != 0
 herr_t
 H5T__conv_ldouble_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Ff(LDOUBLE, DOUBLE, long double, double, -DBL_MAX, DBL_MAX);
 }
-#endif /*H5T_CONV_INTERNAL_FP_LDOUBLE*/
+#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */
 
 

 /*-------------------------------------------------------------------------
@@ -7258,8 +7257,8 @@ H5T__conv_ldouble_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_schar_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(SCHAR, FLOAT, signed char, float, -, -);
 }
@@ -7283,8 +7282,8 @@ H5T__conv_schar_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_schar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(SCHAR, DOUBLE, signed char, double, -, -);
 }
@@ -7308,8 +7307,8 @@ H5T__conv_schar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(SCHAR, LDOUBLE, signed char, long double, -, -);
 }
@@ -7333,8 +7332,8 @@ H5T__conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(UCHAR, FLOAT, unsigned char, float, -, -);
 }
@@ -7358,8 +7357,8 @@ H5T__conv_uchar_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(UCHAR, DOUBLE, unsigned char, double, -, -);
 }
@@ -7383,8 +7382,8 @@ H5T__conv_uchar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(UCHAR, LDOUBLE, unsigned char, long double, -, -);
 }
@@ -7408,8 +7407,8 @@ H5T__conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(SHORT, FLOAT, short, float, -, -);
 }
@@ -7433,8 +7432,8 @@ H5T__conv_short_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(SHORT, DOUBLE, short, double, -, -);
 }
@@ -7458,8 +7457,8 @@ H5T__conv_short_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(SHORT, LDOUBLE, short, long double, -, -);
 }
@@ -7483,8 +7482,8 @@ H5T__conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(USHORT, FLOAT, unsigned short, float, -, -);
 }
@@ -7508,8 +7507,8 @@ H5T__conv_ushort_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(USHORT, DOUBLE, unsigned short, double, -, -);
 }
@@ -7533,8 +7532,8 @@ H5T__conv_ushort_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(USHORT, LDOUBLE, unsigned short, long double, -, -);
 }
@@ -7558,8 +7557,8 @@ H5T__conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_int_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(INT, FLOAT, int, float, -, -);
 }
@@ -7583,8 +7582,8 @@ H5T__conv_int_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_int_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(INT, DOUBLE, int, double, -, -);
 }
@@ -7608,8 +7607,8 @@ H5T__conv_int_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(INT, LDOUBLE, int, long double, -, -);
 }
@@ -7633,8 +7632,8 @@ H5T__conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uint_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(UINT, FLOAT, unsigned int, float, -, -);
 }
@@ -7658,8 +7657,8 @@ H5T__conv_uint_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uint_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(UINT, DOUBLE, unsigned int, double, -, -);
 }
@@ -7683,8 +7682,8 @@ H5T__conv_uint_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(UINT, LDOUBLE, unsigned int, long double, -, -);
 }
@@ -7708,8 +7707,8 @@ H5T__conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_long_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(LONG, FLOAT, long, float, -, -);
 }
@@ -7733,8 +7732,8 @@ H5T__conv_long_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_long_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(LONG, DOUBLE, long, double, -, -);
 }
@@ -7758,8 +7757,8 @@ H5T__conv_long_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(LONG, LDOUBLE, long, long double, -, -);
 }
@@ -7783,8 +7782,8 @@ H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(ULONG, FLOAT, unsigned long, float, -, -);
 }
@@ -7808,8 +7807,8 @@ H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(ULONG, DOUBLE, unsigned long, double, -, -);
 }
@@ -7833,8 +7832,8 @@ H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(ULONG, LDOUBLE, unsigned long, long double, -, -);
 }
@@ -7858,8 +7857,8 @@ H5T__conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(LLONG, FLOAT, long long, float, -, -);
 }
@@ -7883,8 +7882,8 @@ H5T__conv_llong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(LLONG, DOUBLE, long long, double, -, -);
 }
@@ -7909,8 +7908,8 @@ H5T__conv_llong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(LLONG, LDOUBLE, long long, long double, -, -);
 }
@@ -7935,8 +7934,8 @@ H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(ULLONG, FLOAT, unsigned long long, float, -, -);
 }
@@ -7960,8 +7959,8 @@ H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(ULLONG, DOUBLE, unsigned long long, double, -, -);
 }
@@ -7986,8 +7985,8 @@ H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ullong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_xF(ULLONG, LDOUBLE, unsigned long long, long double, -, -);
 }
@@ -8012,8 +8011,8 @@ H5T__conv_ullong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_float_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, SCHAR, float, signed char, SCHAR_MIN, SCHAR_MAX);
@@ -8039,8 +8038,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_float_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, UCHAR, float, unsigned char, 0, UCHAR_MAX);
@@ -8066,8 +8065,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, SCHAR, double, signed char, SCHAR_MIN, SCHAR_MAX);
@@ -8093,8 +8092,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, UCHAR, double, unsigned char, 0, UCHAR_MAX);
@@ -8120,8 +8119,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, SCHAR, long double, signed char, SCHAR_MIN, SCHAR_MAX);
@@ -8147,8 +8146,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, UCHAR, long double, unsigned char, 0, UCHAR_MAX);
@@ -8174,8 +8173,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_float_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, SHORT, float, short, SHRT_MIN, SHRT_MAX);
@@ -8201,8 +8200,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_float_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, USHORT, float, unsigned short, 0, USHRT_MAX);
@@ -8228,8 +8227,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, SHORT, double, short, SHRT_MIN, SHRT_MAX);
@@ -8255,8 +8254,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, USHORT, double, unsigned short, 0, USHRT_MAX);
@@ -8282,8 +8281,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, SHORT, long double, short, SHRT_MIN, SHRT_MAX);
@@ -8309,8 +8308,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, USHORT, long double, unsigned short, 0, USHRT_MAX);
@@ -8336,8 +8335,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_float_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, INT, float, int, INT_MIN, INT_MAX);
@@ -8363,8 +8362,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_float_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, UINT, float, unsigned int, 0, UINT_MAX);
@@ -8390,8 +8389,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, INT, double, int, INT_MIN, INT_MAX);
@@ -8417,8 +8416,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, UINT, double, unsigned int, 0, UINT_MAX);
@@ -8444,8 +8443,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, INT, long double, int, INT_MIN, INT_MAX);
@@ -8471,8 +8470,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, UINT, long double, unsigned int, 0, UINT_MAX);
@@ -8498,8 +8497,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_float_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, LONG, float, long, LONG_MIN, LONG_MAX);
@@ -8525,8 +8524,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_float_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, ULONG, float, unsigned long, 0, ULONG_MAX);
@@ -8552,8 +8551,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, LONG, double, long, LONG_MIN, LONG_MAX);
@@ -8579,8 +8578,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, ULONG, double, unsigned long, 0, ULONG_MAX);
@@ -8606,8 +8605,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, LONG, long double, long, LONG_MIN, LONG_MAX);
@@ -8633,8 +8632,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, ULONG, long double, unsigned long, 0, ULONG_MAX);
@@ -8657,18 +8656,16 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_LLONG
 herr_t
 H5T__conv_float_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(FLOAT, LLONG, float, long long, LLONG_MIN, LLONG_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /* H5T_CONV_INTERNAL_FP_LLONG */
 
 

 /*-------------------------------------------------------------------------
@@ -8689,8 +8686,8 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
     H5T_CONV_Fx(FLOAT, ULLONG, float, unsigned long long, 0, ULLONG_MAX);
 }
@@ -8711,18 +8708,16 @@ H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_LLONG
 herr_t
 H5T__conv_double_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(DOUBLE, LLONG, double, long long, LLONG_MIN, LLONG_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /*H5T_CONV_INTERNAL_FP_LLONG*/
 
 

 /*-------------------------------------------------------------------------
@@ -8743,7 +8738,7 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
                        hid_t dxpl_id)
 {
     H5T_CONV_Fx(DOUBLE, ULLONG, double, unsigned long long, 0, ULLONG_MAX);
@@ -8769,8 +8764,8 @@ H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 herr_t
 H5T__conv_ldouble_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
-                       hid_t UNUSED dxpl_id)
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
+                       hid_t H5_ATTR_UNUSED dxpl_id)
 {
 H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, LLONG, long double, long long, LLONG_MIN, LLONG_MAX);
@@ -8798,7 +8793,7 @@ H5_GCC_DIAG_ON(float-equal)
 herr_t
 H5T__conv_ldouble_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
-                       size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+                       size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
                        hid_t dxpl_id)
 {
     H5T_CONV_Fx(LDOUBLE, ULLONG, long double, unsigned long long, 0, ULLONG_MAX);
@@ -8832,7 +8827,7 @@ H5T__conv_ldouble_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  */
 herr_t
 H5T__conv_f_i(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-    size_t buf_stride, size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+    size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
     hid_t dxpl_id)
 {
     /* Traversal-related variables */
@@ -9418,7 +9413,7 @@ done:
  */
 herr_t
 H5T__conv_i_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
-    size_t buf_stride, size_t UNUSED bkg_stride, void *buf, void UNUSED *bkg,
+    size_t buf_stride, size_t H5_ATTR_UNUSED bkg_stride, void *buf, void H5_ATTR_UNUSED *bkg,
     hid_t dxpl_id)
 {
     /* Traversal-related variables */
diff --git a/src/H5Tdbg.c b/src/H5Tdbg.c
index fe204d8..375cd6e 100644
--- a/src/H5Tdbg.c
+++ b/src/H5Tdbg.c
@@ -102,7 +102,7 @@
  *-------------------------------------------------------------------------
  */
 herr_t
-H5T__print_stats(H5T_path_t UNUSED * path, int UNUSED * nprint/*in,out*/)
+H5T__print_stats(H5T_path_t H5_ATTR_UNUSED * path, int H5_ATTR_UNUSED * nprint/*in,out*/)
 {
 #ifdef H5T_DEBUG
     hsize_t	nbytes;
diff --git a/src/H5Tdeprec.c b/src/H5Tdeprec.c
index a8881fb..f1586bd 100644
--- a/src/H5Tdeprec.c
+++ b/src/H5Tdeprec.c
@@ -200,7 +200,7 @@ H5Topen1(hid_t loc_id, const char *name)
     H5O_type_t   obj_type;              /* Type of object at location */
     H5G_loc_t    type_loc;              /* Group object for datatype */
     hbool_t      obj_found = FALSE;     /* Object at 'name' found */
-    hid_t        dxpl_id = H5AC_dxpl_id; /* dxpl to use to open datatype */
+    hid_t        dxpl_id = H5AC_ind_dxpl_id; /* dxpl to use to open datatype */
     hid_t        ret_value = FAIL;
 
     FUNC_ENTER_API(FAIL)
diff --git a/src/H5Tfloat.c b/src/H5Tfloat.c
index 7d08d62..fff413d 100644
--- a/src/H5Tfloat.c
+++ b/src/H5Tfloat.c
@@ -203,7 +203,7 @@ H5Tget_ebias(hid_t type_id)
 	HGOTO_ERROR(H5E_DATATYPE, H5E_BADTYPE, 0, "operation not defined for datatype class")
 
     /* bias */
-    H5_ASSIGN_OVERFLOW(ret_value, dt->shared->u.atomic.u.f.ebias, uint64_t, size_t);
+    H5_CHECKED_ASSIGN(ret_value, size_t, dt->shared->u.atomic.u.f.ebias, uint64_t);
 
 done:
     FUNC_LEAVE_API(ret_value)
diff --git a/src/H5Tnative.c b/src/H5Tnative.c
index 960a811..bf6ba08 100644
--- a/src/H5Tnative.c
+++ b/src/H5Tnative.c
@@ -276,7 +276,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig
 
                 if((snmemb = H5T_get_nmembers(dtype)) <= 0)
                     HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "compound data type doesn't have any member")
-                H5_ASSIGN_OVERFLOW(nmemb, snmemb, int, unsigned);
+                H5_CHECKED_ASSIGN(nmemb, unsigned, snmemb, int);
 
                 if(NULL == (memb_list   = (H5T_t **)H5MM_calloc(nmemb * sizeof(H5T_t *))))
                     HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot allocate memory")
@@ -388,7 +388,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig
                 /* Retrieve member info and insert members into new enum type */
                 if((snmemb = H5T_get_nmembers(dtype)) <= 0)
                     HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "enumerate data type doesn't have any member")
-                H5_ASSIGN_OVERFLOW(nmemb, snmemb, int, unsigned);
+                H5_CHECKED_ASSIGN(nmemb, unsigned, snmemb, int);
                 for(u = 0; u < nmemb; u++) {
                     if(NULL == (memb_name = H5T__get_member_name(dtype, u)))
                         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get member name")
@@ -429,7 +429,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig
                 /* Retrieve dimension information for array data type */
                 if((sarray_rank = H5T__get_array_ndims(dtype)) <= 0)
                     HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get dimension rank")
-                H5_ASSIGN_OVERFLOW(array_rank, sarray_rank, int, unsigned);
+                H5_CHECKED_ASSIGN(array_rank, unsigned, sarray_rank, int);
                 if(NULL == (dims = (hsize_t*)H5MM_malloc(array_rank * sizeof(hsize_t))))
                     HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot allocate memory")
                 if(H5T__get_array_dims(dtype, dims) < 0)
diff --git a/src/H5Toh.c b/src/H5Toh.c
index 7961706..abf8a51 100644
--- a/src/H5Toh.c
+++ b/src/H5Toh.c
@@ -130,7 +130,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static hid_t
-H5O_dtype_open(const H5G_loc_t *obj_loc, hid_t UNUSED lapl_id, hid_t dxpl_id, hbool_t app_ref)
+H5O_dtype_open(const H5G_loc_t *obj_loc, hid_t H5_ATTR_UNUSED lapl_id, hid_t dxpl_id, hbool_t app_ref)
 {
     H5T_t       *type = NULL;           /* Datatype opened */
     hid_t	ret_value;              /* Return value */
diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h
index ab64fdc..0b0cd61 100644
--- a/src/H5Tpkg.h
+++ b/src/H5Tpkg.h
@@ -111,19 +111,6 @@
                                                 /* (_not_ setting H5T_VISIT_SIMPLE and setting either H5T_VISIT_COMPLEX_FIRST or H5T_VISIT_COMPLEX_LAST will mean visiting all nodes _except_ "simple" "leafs" in the "tree" */
 
 
-/* Define an internal macro for converting between floating number(float and double) and floating number.
- * All Cray compilers don't support denormalized floating values generating exception(?). */
-#if H5_CONVERT_DENORMAL_FLOAT
-#define H5T_CONV_INTERNAL_FP_FP           1
-#endif /*H5_CONVERT_DENORMAL_FLOAT*/
-
-/* Define an internal macro for converting between floating number(float and double) and long double.
- * All Cray compilers don't support denormalized floating values generating exception(?).  NEC doesn't
- * support long double. */
-#if H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT
-#define H5T_CONV_INTERNAL_FP_LDOUBLE      1
-#endif /*H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT*/
-
 /* Define an internal macro for converting long long to long double.  Mac OS 10.4 gives some
  * incorrect conversions. */
 #if (H5_WANT_DATA_ACCURACY && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || (!H5_WANT_DATA_ACCURACY)
@@ -139,18 +126,11 @@
 #define H5T_CONV_INTERNAL_ULLONG_LDOUBLE         1
 #endif
 
-/* Define an internal macro for converting floating numbers to long long.  The hard conversion on Windows
- * .NET 2003 has a bug and gives wrong exception value. */
-#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS)) || (!H5_WANT_DATA_ACCURACY)
-#define H5T_CONV_INTERNAL_FP_LLONG         1
-#endif
-
 /* Define an internal macro for converting long double to long long.  SGI compilers give some incorrect
  * conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates floating exception.
  * The hard conversion on Windows .NET 2003 has a bug and gives wrong exception value. */
-#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && \
-    defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \
-    (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS))
+#if (H5_WANT_DATA_ACCURACY && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \
+    (!H5_WANT_DATA_ACCURACY)
 #define H5T_CONV_INTERNAL_LDOUBLE_LLONG         1
 #endif
 
diff --git a/src/H5Tvlen.c b/src/H5Tvlen.c
index 52a2cde..4ee3d0d 100644
--- a/src/H5Tvlen.c
+++ b/src/H5Tvlen.c
@@ -389,7 +389,7 @@ H5T_vlen_seq_mem_getptr(void *_vl)
  */
 /* ARGSUSED */
 static htri_t
-H5T_vlen_seq_mem_isnull(const H5F_t UNUSED *f, void *_vl)
+H5T_vlen_seq_mem_isnull(const H5F_t H5_ATTR_UNUSED *f, void *_vl)
 {
 #ifdef H5_NO_ALIGNMENT_RESTRICTIONS
     const hvl_t *vl=(const hvl_t *)_vl;   /* Pointer to the user's hvl_t information */
@@ -427,7 +427,7 @@ H5T_vlen_seq_mem_isnull(const H5F_t UNUSED *f, void *_vl)
  */
 /* ARGSUSED */
 static herr_t
-H5T_vlen_seq_mem_read(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, void *_vl, void *buf, size_t len)
+H5T_vlen_seq_mem_read(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, void *_vl, void *buf, size_t len)
 {
 #ifdef H5_NO_ALIGNMENT_RESTRICTIONS
     const hvl_t *vl=(const hvl_t *)_vl;   /* Pointer to the user's hvl_t information */
@@ -469,7 +469,7 @@ H5T_vlen_seq_mem_read(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, void *_vl, void *bu
  */
 /* ARGSUSED */
 static herr_t
-H5T_vlen_seq_mem_write(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *buf, void UNUSED *_bg, size_t seq_len, size_t base_size)
+H5T_vlen_seq_mem_write(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *buf, void H5_ATTR_UNUSED *_bg, size_t seq_len, size_t base_size)
 {
     hvl_t vl;                       /* Temporary hvl_t to use during operation */
     size_t len;
@@ -526,7 +526,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5T_vlen_seq_mem_setnull(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, void *_vl, void UNUSED *_bg)
+H5T_vlen_seq_mem_setnull(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, void *_vl, void H5_ATTR_UNUSED *_bg)
 {
     hvl_t vl;                       /* Temporary hvl_t to use during operation */
 
@@ -630,7 +630,7 @@ H5T_vlen_str_mem_getptr(void *_vl)
  */
 /* ARGSUSED */
 static htri_t
-H5T_vlen_str_mem_isnull(const H5F_t UNUSED *f, void *_vl)
+H5T_vlen_str_mem_isnull(const H5F_t H5_ATTR_UNUSED *f, void *_vl)
 {
 #ifdef H5_NO_ALIGNMENT_RESTRICTIONS
     char *s=*(char **)_vl;   /* Pointer to the user's string information */
@@ -662,7 +662,7 @@ H5T_vlen_str_mem_isnull(const H5F_t UNUSED *f, void *_vl)
  */
 /* ARGSUSED */
 static herr_t
-H5T_vlen_str_mem_read(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, void *_vl, void *buf, size_t len)
+H5T_vlen_str_mem_read(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, void *_vl, void *buf, size_t len)
 {
 #ifdef H5_NO_ALIGNMENT_RESTRICTIONS
     char *s=*(char **)_vl;   /* Pointer to the user's string information */
@@ -703,7 +703,7 @@ H5T_vlen_str_mem_read(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, void *_vl, void *bu
  */
 /* ARGSUSED */
 static herr_t
-H5T_vlen_str_mem_write(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *buf, void UNUSED *_bg, size_t seq_len, size_t base_size)
+H5T_vlen_str_mem_write(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const H5T_vlen_alloc_info_t *vl_alloc_info, void *_vl, void *buf, void H5_ATTR_UNUSED *_bg, size_t seq_len, size_t base_size)
 {
     char *t;                        /* Pointer to temporary buffer allocated */
     size_t len;                     /* Maximum length of the string to copy */
@@ -750,7 +750,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5T_vlen_str_mem_setnull(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, void *_vl, void UNUSED *_bg)
+H5T_vlen_str_mem_setnull(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, void *_vl, void H5_ATTR_UNUSED *_bg)
 {
     char *t=NULL;                   /* Pointer to temporary buffer allocated */
 
@@ -806,7 +806,7 @@ H5T_vlen_disk_getlen(const void *_vl)
  */
 /* ARGSUSED */
 static void *
-H5T_vlen_disk_getptr(void UNUSED *vl)
+H5T_vlen_disk_getptr(void H5_ATTR_UNUSED *vl)
 {
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
@@ -864,7 +864,7 @@ H5T_vlen_disk_isnull(const H5F_t *f, void *_vl)
  */
 /* ARGSUSED */
 static herr_t
-H5T_vlen_disk_read(H5F_t *f, hid_t dxpl_id, void *_vl, void *buf, size_t UNUSED len)
+H5T_vlen_disk_read(H5F_t *f, hid_t dxpl_id, void *_vl, void *buf, size_t H5_ATTR_UNUSED len)
 {
     uint8_t *vl=(uint8_t *)_vl;   /* Pointer to the user's hvl_t information */
     H5HG_t hobjid;
@@ -910,7 +910,7 @@ done:
  */
 /* ARGSUSED */
 static herr_t
-H5T_vlen_disk_write(H5F_t *f, hid_t dxpl_id, const H5T_vlen_alloc_info_t UNUSED *vl_alloc_info,
+H5T_vlen_disk_write(H5F_t *f, hid_t dxpl_id, const H5T_vlen_alloc_info_t H5_ATTR_UNUSED *vl_alloc_info,
     void *_vl, void *buf, void *_bg, size_t seq_len, size_t base_size)
 {
     uint8_t *vl = (uint8_t *)_vl; /*Pointer to the user's hvl_t information*/
@@ -1154,7 +1154,7 @@ done:
 --------------------------------------------------------------------------*/
 /* ARGSUSED */
 herr_t
-H5T_vlen_reclaim(void *elem, hid_t type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void *op_data)
+H5T_vlen_reclaim(void *elem, hid_t type_id, unsigned H5_ATTR_UNUSED ndim, const hsize_t H5_ATTR_UNUSED *point, void *op_data)
 {
     H5T_vlen_alloc_info_t *vl_alloc_info = (H5T_vlen_alloc_info_t *)op_data; /* VL allocation info from iterator */
     H5T_t	*dt;
diff --git a/src/H5VM.c b/src/H5VM.c
index 6f72c57..a1eafb6 100644
--- a/src/H5VM.c
+++ b/src/H5VM.c
@@ -1089,7 +1089,7 @@ H5VM_array_offset_pre(unsigned n, const hsize_t *acc, const hsize_t *offset)
     HDassert(offset);
 
     /* Compute offset in array */
-    for (i=(int)(n-1), ret_value=0; i>=0; --i)
+    for(i = (int)(n - 1), ret_value = 0; i >= 0; --i)
         ret_value += acc[i] * offset[i];
 
     FUNC_LEAVE_NOAPI(ret_value)
diff --git a/src/H5VMprivate.h b/src/H5VMprivate.h
index 4706b5f..78799d8 100644
--- a/src/H5VMprivate.h
+++ b/src/H5VMprivate.h
@@ -121,7 +121,7 @@ H5_DLL ssize_t H5VM_memcpyvv(void *_dst,
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline hsize_t UNUSED
+static H5_INLINE hsize_t H5_ATTR_UNUSED
 H5VM_vector_reduce_product(unsigned n, const hsize_t *v)
 {
     hsize_t                  ret_value = 1;
@@ -153,7 +153,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline htri_t UNUSED
+static H5_INLINE htri_t H5_ATTR_UNUSED
 H5VM_vector_zerop_u(int n, const hsize_t *v)
 {
     htri_t      ret_value=TRUE;       /* Return value */
@@ -188,7 +188,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline htri_t UNUSED
+static H5_INLINE htri_t H5_ATTR_UNUSED
 H5VM_vector_zerop_s(int n, const hssize_t *v)
 {
     htri_t      ret_value=TRUE;       /* Return value */
@@ -225,7 +225,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline int UNUSED
+static H5_INLINE int H5_ATTR_UNUSED
 H5VM_vector_cmp_u (unsigned n, const hsize_t *v1, const hsize_t *v2)
 {
     int ret_value=0;    /* Return value */
@@ -267,7 +267,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline int UNUSED
+static H5_INLINE int H5_ATTR_UNUSED
 H5VM_vector_cmp_s (unsigned n, const hssize_t *v1, const hssize_t *v2)
 {
     int ret_value=0;    /* Return value */
@@ -304,7 +304,7 @@ done:
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline void UNUSED
+static H5_INLINE void H5_ATTR_UNUSED
 H5VM_vector_inc(int n, hsize_t *v1, const hsize_t *v2)
 {
     while (n--) *v1++ += *v2++;
@@ -351,32 +351,23 @@ static const unsigned char LogTable256[] =
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline unsigned UNUSED
+static H5_INLINE unsigned H5_ATTR_UNUSED
 H5VM_log2_gen(uint64_t n)
 {
     unsigned r;                         /* r will be log2(n) */
     register unsigned int t, tt, ttt;   /* temporaries */
 
-#ifdef H5_BAD_LOG2_CODE_GENERATED
-    if(n > (uint64_t)0x7fffffffffffffff)
-        r = 63;
-    else {
-        n &= (uint64_t)0x7fffffffffffffff;
-#endif /* H5_BAD_LOG2_CODE_GENERATED */
-        if((ttt = (unsigned)(n >> 32)))
-            if((tt = (unsigned)(n >> 48)))
-                r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF];
-            else
-                r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF];
+    if((ttt = (unsigned)(n >> 32)))
+        if((tt = (unsigned)(n >> 48)))
+            r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF];
         else
-            if((tt = (unsigned)(n >> 16)))
-                r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF];
-            else
-                /* Added 'uint8_t' cast to pacify PGCC compiler */
-                r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n];
-#ifdef H5_BAD_LOG2_CODE_GENERATED
-    } /* end else */
-#endif /* H5_BAD_LOG2_CODE_GENERATED  */
+            r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF];
+    else
+        if((tt = (unsigned)(n >> 16)))
+            r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF];
+        else
+            /* Added 'uint8_t' cast to pacify PGCC compiler */
+            r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n];
 
     return(r);
 } /* H5VM_log2_gen() */
@@ -408,7 +399,7 @@ static const unsigned MultiplyDeBruijnBitPosition[32] =
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline unsigned UNUSED
+static H5_INLINE unsigned H5_ATTR_UNUSED
 H5VM_log2_of2(uint32_t n)
 {
 #ifndef NDEBUG
@@ -431,7 +422,7 @@ H5VM_log2_of2(uint32_t n)
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline unsigned UNUSED
+static H5_INLINE unsigned H5_ATTR_UNUSED
 H5VM_limit_enc_size(uint64_t limit)
 {
     return (H5VM_log2_gen(limit) / 8) + 1;
@@ -460,7 +451,7 @@ static const unsigned char H5VM_bit_clear_g[8] = {0x7F, 0xBF, 0xDF, 0xEF, 0xF7,
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline hbool_t UNUSED
+static H5_INLINE hbool_t H5_ATTR_UNUSED
 H5VM_bit_get(const unsigned char *buf, size_t offset)
 {
     /* Test the appropriate bit in the buffer */
@@ -487,7 +478,7 @@ H5VM_bit_get(const unsigned char *buf, size_t offset)
  *
  *-------------------------------------------------------------------------
  */
-static H5_inline void UNUSED
+static H5_INLINE void H5_ATTR_UNUSED
 H5VM_bit_set(unsigned char *buf, size_t offset, hbool_t val)
 {
     /* Set/reset the appropriate bit in the buffer */
diff --git a/src/H5Z.c b/src/H5Z.c
index fc5a8e6..8d85c81 100644
--- a/src/H5Z.c
+++ b/src/H5Z.c
@@ -506,7 +506,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5Z__check_unregister_group_cb(void *obj_ptr, hid_t UNUSED obj_id, void *key)
+H5Z__check_unregister_group_cb(void *obj_ptr, hid_t H5_ATTR_UNUSED obj_id, void *key)
 {
     hid_t           ocpl_id = -1;
     H5Z_object_t    *object = (H5Z_object_t *)key;
@@ -559,7 +559,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5Z__check_unregister_dset_cb(void *obj_ptr, hid_t UNUSED obj_id, void *key)
+H5Z__check_unregister_dset_cb(void *obj_ptr, hid_t H5_ATTR_UNUSED obj_id, void *key)
 {
     hid_t           ocpl_id = -1;
     H5Z_object_t    *object = (H5Z_object_t *)key;
@@ -610,7 +610,7 @@ done:
  *-------------------------------------------------------------------------
  */
 static int
-H5Z__flush_file_cb(void *obj_ptr, hid_t UNUSED obj_id, void UNUSED *key)
+H5Z__flush_file_cb(void *obj_ptr, hid_t H5_ATTR_UNUSED obj_id, void H5_ATTR_UNUSED *key)
 {
     int             ret_value = FALSE;    /* Return value */
 
@@ -1323,7 +1323,6 @@ H5Z_pipeline(const H5O_pline_t *pline, unsigned flags,
              */
 	    if((fclass_idx = H5Z_find_idx(pline->filter[idx].id)) < 0) {
                 hbool_t issue_error = FALSE;
-#ifndef H5_VMS
 
                     const H5Z_class2_t    *filter_info;
 
@@ -1339,9 +1338,7 @@ H5Z_pipeline(const H5O_pline_t *pline, unsigned flags,
                     } /* end if */
                     else
                         issue_error = TRUE;
-#else /*H5_VMS*/
-                issue_error = TRUE;
-#endif /*H5_VMS*/
+
                 /* Check for error */
                 if(issue_error) {
                     /* Print out the filter name to give more info.  But the name is optional for 
diff --git a/src/H5Zdeflate.c b/src/H5Zdeflate.c
index 82ad1ba..06d9866 100644
--- a/src/H5Zdeflate.c
+++ b/src/H5Zdeflate.c
@@ -102,9 +102,9 @@ H5Z_filter_deflate (unsigned flags, size_t cd_nelmts,
         /* Set the uncompression parameters */
 	HDmemset(&z_strm, 0, sizeof(z_strm));
 	z_strm.next_in = (Bytef *)*buf;
-        H5_ASSIGN_OVERFLOW(z_strm.avail_in,nbytes,size_t,unsigned);
+        H5_CHECKED_ASSIGN(z_strm.avail_in, unsigned, nbytes, size_t);
 	z_strm.next_out = (Bytef *)outbuf;
-        H5_ASSIGN_OVERFLOW(z_strm.avail_out,nalloc,size_t,unsigned);
+        H5_CHECKED_ASSIGN(z_strm.avail_out, unsigned, nalloc, size_t);
 
         /* Initialize the uncompression routines */
 	if (Z_OK!=inflateInit(&z_strm))
@@ -169,7 +169,7 @@ H5Z_filter_deflate (unsigned flags, size_t cd_nelmts,
         int          aggression;     /* Compression aggression setting */
 
         /* Set the compression aggression level */
-        H5_ASSIGN_OVERFLOW(aggression,cd_values[0],unsigned,int);
+        H5_CHECKED_ASSIGN(aggression, int, cd_values[0], unsigned);
 
         /* Allocate output (compressed) buffer */
 	if(NULL == (outbuf = H5MM_malloc(z_dst_nbytes)))
diff --git a/src/H5Zfletcher32.c b/src/H5Zfletcher32.c
index 2ee69d1..1877ddd 100644
--- a/src/H5Zfletcher32.c
+++ b/src/H5Zfletcher32.c
@@ -72,7 +72,7 @@ const H5Z_class2_t H5Z_FLETCHER32[1] = {{
  */
 /* ARGSUSED */
 static size_t
-H5Z_filter_fletcher32 (unsigned flags, size_t UNUSED cd_nelmts, const unsigned UNUSED cd_values[],
+H5Z_filter_fletcher32 (unsigned flags, size_t H5_ATTR_UNUSED cd_nelmts, const unsigned H5_ATTR_UNUSED cd_values[],
                      size_t nbytes, size_t *buf_size, void **buf)
 {
     void    *outbuf = NULL;     /* Pointer to new buffer */
diff --git a/src/H5Znbit.c b/src/H5Znbit.c
index 9506ace..38610b6 100644
--- a/src/H5Znbit.c
+++ b/src/H5Znbit.c
@@ -128,7 +128,7 @@ static unsigned parms_index = 0;
  *-------------------------------------------------------------------------
  */
 static htri_t
-H5Z_can_apply_nbit(hid_t UNUSED dcpl_id, hid_t type_id, hid_t UNUSED space_id)
+H5Z_can_apply_nbit(hid_t H5_ATTR_UNUSED dcpl_id, hid_t type_id, hid_t H5_ATTR_UNUSED space_id)
 {
     const H5T_t	*type;                  /* Datatype */
     htri_t ret_value = TRUE;            /* Return value */
@@ -803,7 +803,7 @@ H5Z_set_local_nbit(hid_t dcpl_id, hid_t type_id, hid_t space_id)
     cd_values_index = 2;
 
     /* Set "local" parameter for number of elements in the chunk */
-    H5_ASSIGN_OVERFLOW(cd_values[cd_values_index++], npoints, hssize_t, unsigned);
+    H5_CHECKED_ASSIGN(cd_values[cd_values_index++], unsigned, npoints, hssize_t);
 
     /* Assume no need to compress now, will be changed to FALSE later if not */
     need_not_compress = TRUE;
diff --git a/src/H5Zscaleoffset.c b/src/H5Zscaleoffset.c
index 38e2986..673b9e0 100644
--- a/src/H5Zscaleoffset.c
+++ b/src/H5Zscaleoffset.c
@@ -689,7 +689,7 @@ H5Z_class2_t H5Z_SCALEOFFSET[1] = {{
  *-------------------------------------------------------------------------
  */
 static htri_t
-H5Z_can_apply_scaleoffset(hid_t UNUSED dcpl_id, hid_t type_id, hid_t UNUSED space_id)
+H5Z_can_apply_scaleoffset(hid_t H5_ATTR_UNUSED dcpl_id, hid_t type_id, hid_t H5_ATTR_UNUSED space_id)
 {
     const H5T_t	*type;                  /* Datatype */
     H5T_class_t dtype_class;            /* Datatype's class */
@@ -901,7 +901,7 @@ H5Z_set_local_scaleoffset(hid_t dcpl_id, hid_t type_id, hid_t space_id)
         HGOTO_ERROR(H5E_PLINE, H5E_CANTGET, FAIL, "unable to get number of points in the dataspace")
 
     /* Set "local" parameter for this dataset's number of elements */
-    H5_ASSIGN_OVERFLOW(cd_values[H5Z_SCALEOFFSET_PARM_NELMTS],npoints,hssize_t,unsigned);
+    H5_CHECKED_ASSIGN(cd_values[H5Z_SCALEOFFSET_PARM_NELMTS], unsigned, npoints, hssize_t);
 
     /* Get datatype's class */
     if((dtype_class = H5T_get_class(type, TRUE)) == H5T_NO_CLASS)
diff --git a/src/H5Zshuffle.c b/src/H5Zshuffle.c
index 4138bf1..654a7d5 100644
--- a/src/H5Zshuffle.c
+++ b/src/H5Zshuffle.c
@@ -63,7 +63,7 @@ const H5Z_class2_t H5Z_SHUFFLE[1] = {{
  */
 /* ARGSUSED */
 static herr_t
-H5Z_set_local_shuffle(hid_t dcpl_id, hid_t type_id, hid_t UNUSED space_id)
+H5Z_set_local_shuffle(hid_t dcpl_id, hid_t type_id, hid_t H5_ATTR_UNUSED space_id)
 {
     H5P_genplist_t *dcpl_plist;     /* Property list pointer */
     const H5T_t	*type;                  /* Datatype */
diff --git a/src/H5Zszip.c b/src/H5Zszip.c
index 589b27b..dc09ebf 100644
--- a/src/H5Zszip.c
+++ b/src/H5Zszip.c
@@ -77,7 +77,7 @@ H5Z_class2_t H5Z_SZIP[1] = {{
  *-------------------------------------------------------------------------
  */
 static htri_t
-H5Z_can_apply_szip(hid_t UNUSED dcpl_id, hid_t type_id, hid_t UNUSED space_id)
+H5Z_can_apply_szip(hid_t H5_ATTR_UNUSED dcpl_id, hid_t type_id, hid_t H5_ATTR_UNUSED space_id)
 {
     const H5T_t	*type;                  /* Datatype */
     unsigned dtype_size;                /* Datatype's size (in bits) */
@@ -225,7 +225,7 @@ H5Z_set_local_szip(hid_t dcpl_id, hid_t type_id, hid_t space_id)
     } /* end else */
 
     /* Assign the final value to the scanline */
-    H5_ASSIGN_OVERFLOW(cd_values[H5Z_SZIP_PARM_PPS],scanline,hsize_t,unsigned);
+    H5_CHECKED_ASSIGN(cd_values[H5Z_SZIP_PARM_PPS], unsigned, scanline, hsize_t);
 
     /* Get datatype's endianness order */
     if((dtype_order = H5T_get_order(type)) == H5T_ORDER_ERROR)
@@ -301,10 +301,10 @@ H5Z_filter_szip (unsigned flags, size_t cd_nelmts, const unsigned cd_values[],
 	HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, 0, "invalid deflate aggression level")
 
     /* Copy the filter parameters into the szip parameter block */
-    H5_ASSIGN_OVERFLOW(sz_param.options_mask,cd_values[H5Z_SZIP_PARM_MASK],unsigned,int);
-    H5_ASSIGN_OVERFLOW(sz_param.bits_per_pixel,cd_values[H5Z_SZIP_PARM_BPP],unsigned,int);
-    H5_ASSIGN_OVERFLOW(sz_param.pixels_per_block,cd_values[H5Z_SZIP_PARM_PPB],unsigned,int);
-    H5_ASSIGN_OVERFLOW(sz_param.pixels_per_scanline,cd_values[H5Z_SZIP_PARM_PPS],unsigned,int);
+    H5_CHECKED_ASSIGN(sz_param.options_mask, int, cd_values[H5Z_SZIP_PARM_MASK], unsigned);
+    H5_CHECKED_ASSIGN(sz_param.bits_per_pixel, int, cd_values[H5Z_SZIP_PARM_BPP], unsigned);
+    H5_CHECKED_ASSIGN(sz_param.pixels_per_block, int, cd_values[H5Z_SZIP_PARM_PPB], unsigned);
+    H5_CHECKED_ASSIGN(sz_param.pixels_per_scanline, int, cd_values[H5Z_SZIP_PARM_PPS], unsigned);
 
     /* Input; uncompress */
     if (flags & H5Z_FLAG_REVERSE) {
@@ -314,7 +314,7 @@ H5Z_filter_szip (unsigned flags, size_t cd_nelmts, const unsigned cd_values[],
         /* Get the size of the uncompressed buffer */
         newbuf = *buf;
         UINT32DECODE(newbuf,stored_nalloc);
-        H5_ASSIGN_OVERFLOW(nalloc,stored_nalloc,uint32_t,size_t);
+        H5_CHECKED_ASSIGN(nalloc, size_t, stored_nalloc, uint32_t);
 
         /* Allocate space for the uncompressed buffer */
         if(NULL==(outbuf = H5MM_malloc(nalloc)))
diff --git a/src/H5api_adpt.h b/src/H5api_adpt.h
index 9b00bd9..ab7287c 100644
--- a/src/H5api_adpt.h
+++ b/src/H5api_adpt.h
@@ -21,10 +21,33 @@
 #ifndef H5API_ADPT_H
 #define H5API_ADPT_H
 
+/*
+ * Does the compiler support the __attribute__(()) syntax?  It's no
+ * big deal if we don't.
+ *
+ * Note that Solaris Studio supports attribute, but does not support the
+ * attributes we use.
+ */
+#ifdef __cplusplus
+#   define H5_ATTR_FORMAT(X,Y,Z)  /*void*/
+#   define H5_ATTR_UNUSED    /*void*/
+#   define H5_ATTR_NORETURN  /*void*/
+#else /* __cplusplus */
+#if defined(H5_HAVE_ATTRIBUTE) && !defined(__SUNPRO_C)
+#   define H5_ATTR_FORMAT(X,Y,Z)  __attribute__((format(X, Y, Z)))
+#   define H5_ATTR_UNUSED    __attribute__((unused))
+#   define H5_ATTR_NORETURN  __attribute__((noreturn))
+#else
+#   define H5_ATTR_FORMAT(X,Y,Z)  /*void*/
+#   define H5_ATTR_UNUSED    /*void*/
+#   define H5_ATTR_NORETURN  /*void*/
+#endif
+#endif /* __cplusplus */
+
 /* This will only be defined if HDF5 was built with CMake */
 #ifdef H5_BUILT_AS_DYNAMIC_LIB
 
-#if defined(hdf5_EXPORTS)
+#if defined(hdf5_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5_DLL __declspec(dllexport)
     #define H5_DLLVAR extern __declspec(dllexport)
@@ -47,7 +70,7 @@
   #define H5_DLLVAR extern
 #endif /* _HDF5DLL_ */
 
-#if defined(hdf5_test_EXPORTS)
+#if defined(hdf5_test_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5TEST_DLL __declspec(dllexport)
     #define H5TEST_DLLVAR extern __declspec(dllexport)
@@ -70,7 +93,7 @@
   #define H5TEST_DLLVAR extern
 #endif /* H5TEST_DLL */
 
-#if defined(hdf5_tools_EXPORTS)
+#if defined(hdf5_tools_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5TOOLS_DLL __declspec(dllexport)
     #define H5TOOLS_DLLVAR extern __declspec(dllexport)
@@ -93,7 +116,7 @@
   #define H5TOOLS_DLLVAR extern
 #endif /* H5TOOLS_DLL */
 
-#if defined(hdf5_cpp_EXPORTS)
+#if defined(hdf5_cpp_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5_DLLCPP __declspec(dllexport)
     #define H5_DLLCPPVAR extern __declspec(dllexport)
@@ -116,7 +139,7 @@
   #define H5_DLLCPPVAR extern
 #endif /* H5_DLLCPP */
 
-#if defined(hdf5_hl_EXPORTS)
+#if defined(hdf5_hl_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5_HLDLL __declspec(dllexport)
     #define H5_HLDLLVAR extern __declspec(dllexport)
@@ -139,7 +162,7 @@
   #define H5_HLDLLVAR extern
 #endif /* H5_HLDLL */
 
-#if defined(hdf5_hl_cpp_EXPORTS)
+#if defined(hdf5_hl_cpp_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5_HLCPPDLL __declspec(dllexport)
     #define H5_HLCPPDLLVAR extern __declspec(dllexport)
@@ -162,7 +185,7 @@
   #define H5_HLCPPDLLVAR extern
 #endif /* H5_HLCPPDLL */
 
-#if defined(hdf5_f90cstub_EXPORTS)
+#if defined(hdf5_f90cstub_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5_FCDLL __declspec(dllexport)
     #define H5_FCDLLVAR extern __declspec(dllexport)
@@ -185,7 +208,7 @@
   #define H5_FCDLLVAR extern
 #endif /* H5_FCDLL */
 
-#if defined(hdf5_test_f90cstub_EXPORTS)
+#if defined(hdf5_test_f90cstub_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5_FCTESTDLL __declspec(dllexport)
     #define H5_FCTESTDLLVAR extern __declspec(dllexport)
@@ -208,7 +231,7 @@
   #define H5_FCTESTDLLVAR extern
 #endif /* H5_FCTESTDLL */
 
-#if defined(hdf5_hl_f90cstub_EXPORTS)
+#if defined(hdf5_hl_f90cstub_shared_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define HDF5_HL_F90CSTUBDLL __declspec(dllexport)
     #define HDF5_HL_F90CSTUBDLLVAR extern __declspec(dllexport)
diff --git a/src/H5config.h.in b/src/H5config.h.in
index 8b4648f..6075f3f 100644
--- a/src/H5config.h.in
+++ b/src/H5config.h.in
@@ -3,17 +3,10 @@
 /* Define if building universal (internal helper macro) */
 #undef AC_APPLE_UNIVERSAL_BUILD
 
-/* Define if your system generates wrong code for log2 routine. */
-#undef BAD_LOG2_CODE_GENERATED
-
 /* Define if the memory buffers being written to disk should be cleared before
    writing. */
 #undef CLEAR_MEMORY
 
-/* Define if your system can handle converting denormalized floating-point
-   values. */
-#undef CONVERT_DENORMAL_FLOAT
-
 /* Define if C++ compiler recognizes offsetof */
 #undef CXX_HAVE_OFFSETOF
 
@@ -37,10 +30,6 @@
 /* As FC_FUNC, but for C identifiers containing underscores. */
 #undef FC_FUNC_
 
-/* Define if your system can handle overflow converting floating-point to
-   integer values. */
-#undef FP_TO_INTEGER_OVERFLOW_WORKS
-
 /* Define to 1 if you have the `alarm' function. */
 #undef HAVE_ALARM
 
@@ -141,8 +130,8 @@
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
-/* Define to 1 if you have the `get_fpc_csr' function. */
-#undef HAVE_GET_FPC_CSR
+/* Define if the compiler understands inline */
+#undef HAVE_INLINE
 
 /* Define if library will contain instrumentation to detect correct
    optimization operation */
@@ -169,15 +158,9 @@
 /* Define to 1 if you have the `mpe' library (-lmpe). */
 #undef HAVE_LIBMPE
 
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
 /* Define to 1 if you have the `pthread' library (-lpthread). */
 #undef HAVE_LIBPTHREAD
 
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
 /* Define to 1 if you have the `sz' library (-lsz). */
 #undef HAVE_LIBSZ
 
@@ -289,15 +272,9 @@
 /* Define to 1 if you have the `system' function. */
 #undef HAVE_SYSTEM
 
-/* Define to 1 if you have the <sys/fpu.h> header file. */
-#undef HAVE_SYS_FPU_H
-
 /* Define to 1 if you have the <sys/ioctl.h> header file. */
 #undef HAVE_SYS_IOCTL_H
 
-/* Define to 1 if you have the <sys/proc.h> header file. */
-#undef HAVE_SYS_PROC_H
-
 /* Define to 1 if you have the <sys/resource.h> header file. */
 #undef HAVE_SYS_RESOURCE_H
 
@@ -307,9 +284,6 @@
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
-/* Define to 1 if you have the <sys/sysinfo.h> header file. */
-#undef HAVE_SYS_SYSINFO_H
-
 /* Define to 1 if you have the <sys/timeb.h> header file. */
 #undef HAVE_SYS_TIMEB_H
 
@@ -367,9 +341,11 @@
 /* Define to 1 if you have the `_scrsize' function. */
 #undef HAVE__SCRSIZE
 
-/* Define if your system can't handle converting floating-point values to long
-   long. */
-#undef HW_FP_TO_LLONG_NOT_WORKS
+/* Define if the compiler understands __inline */
+#undef HAVE___INLINE
+
+/* Define if the compiler understands __inline__ */
+#undef HAVE___INLINE__
 
 /* Define if HDF5's high-level library headers should be included in hdf5.h */
 #undef INCLUDE_HL
@@ -595,12 +571,6 @@
 /* Define to empty if `const' does not conform to ANSI C. */
 #undef const
 
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-#undef inline
-#endif
-
 /* Define to `long int' if <sys/types.h> does not define. */
 #undef off_t
 
diff --git a/src/H5detect.c b/src/H5detect.c
index fc0570c..299f5fa 100644
--- a/src/H5detect.c
+++ b/src/H5detect.c
@@ -73,7 +73,7 @@ static const char *FileHeader = "\n\
 #define H5JMP_BUF	sigjmp_buf
 #define H5SETJMP(buf)	HDsigsetjmp(buf, 1)
 #define H5LONGJMP(buf, val)	HDsiglongjmp(buf, val)
-#define H5HAVE_SIGJMP		# sigsetjmp/siglongjmp are supported.
+#define H5HAVE_SIGJMP		/* sigsetjmp/siglongjmp are supported. */
 #elif defined(H5_HAVE_LONGJMP)
 #define H5JMP_BUF	jmp_buf
 #define H5SETJMP(buf)	HDsetjmp(buf)
@@ -485,7 +485,7 @@ precision (detected_t *d)
  *-------------------------------------------------------------------------
  */
 static void
-sigsegv_handler(int UNUSED signo)
+sigsegv_handler(int H5_ATTR_UNUSED signo)
 {
 #if !defined(H5HAVE_SIGJMP) && defined(H5_HAVE_SIGPROCMASK)
     /* Use sigprocmask to unblock the signal if sigsetjmp/siglongjmp are not */
@@ -523,7 +523,7 @@ sigsegv_handler(int UNUSED signo)
  *-------------------------------------------------------------------------
  */
 static void
-sigbus_handler(int UNUSED signo)
+sigbus_handler(int H5_ATTR_UNUSED signo)
 {
 #if !defined(H5HAVE_SIGJMP) && defined(H5_HAVE_SIGPROCMASK)
     /* Use sigprocmask to unblock the signal if sigsetjmp/siglongjmp are not */
@@ -559,7 +559,7 @@ sigbus_handler(int UNUSED signo)
  *-------------------------------------------------------------------------
  */
 static void
-sigill_handler(int UNUSED signo)
+sigill_handler(int H5_ATTR_UNUSED signo)
 {
 #if !defined(H5HAVE_SIGJMP) && defined(H5_HAVE_SIGPROCMASK)
     /* Use sigprocmask to unblock the signal if sigsetjmp/siglongjmp are not */
diff --git a/src/H5private.h b/src/H5private.h
index 87e95b5..f554476 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -183,11 +183,22 @@
 
 #endif /*H5_HAVE_WIN32_API*/
 
-/* H5_inline */
-#ifndef H5_inline
-#define H5_inline
-#endif /* H5_inline */
-
+/* Various ways that inline functions can be declared */
+#if defined(H5_HAVE___INLINE__)
+    /* GNU (alternative form) */
+    #define H5_INLINE __inline__
+#elif defined(H5_HAVE___INLINE)
+    /* Visual Studio */
+    #define H5_INLINE __inline
+#elif defined(H5_HAVE_INLINE)
+    /* GNU, C++
+     * Use "inline" as a last resort on the off-chance that there will
+     * be C++ problems.
+     */
+    #define H5_INLINE inline
+#else
+    #define H5_INLINE
+#endif /* inline choices */
 
 #ifndef F_OK
 #   define F_OK  00
@@ -281,16 +292,9 @@
  */
 #ifdef __cplusplus
 #   define __attribute__(X)  /*void*/
-#   define UNUSED    /*void*/
-#   define NORETURN  /*void*/
 #else /* __cplusplus */
-#ifdef H5_HAVE_ATTRIBUTE
-#   define UNUSED    __attribute__((unused))
-#   define NORETURN  __attribute__((noreturn))
-#else
+#ifndef H5_HAVE_ATTRIBUTE
 #   define __attribute__(X)  /*void*/
-#   define UNUSED    /*void*/
-#   define NORETURN  /*void*/
 #endif
 #endif /* __cplusplus */
 
@@ -1121,22 +1125,9 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...);
 #ifndef HDrealpath
     #define HDrealpath(F1,F2)    realpath(F1,F2)
 #endif /* HDrealloc */
-#ifdef H5_VMS
-    #ifdef __cplusplus
-        extern "C" {
-    #endif /* __cplusplus */
-    int HDremove_all(const char * fname);
-    #ifdef __cplusplus
-        }
-    #endif /* __cplusplus */
-    #ifndef HDremove
-        #define HDremove(S)     HDremove_all(S)
-    #endif /* HDremove */
-#else /* H5_VMS */
-    #ifndef HDremove
-        #define HDremove(S)    remove(S)
-    #endif /* HDremove */
-#endif /*H5_VMS*/
+#ifndef HDremove
+    #define HDremove(S)    remove(S)
+#endif /* HDremove */
 #ifndef HDrename
     #define HDrename(OLD,NEW)  rename(OLD,NEW)
 #endif /* HDrename */
@@ -1520,11 +1511,14 @@ extern char *strdup(const char *s);
 /* Include the generated overflow header file */
 #include "H5overflow.h"
 
-#define H5_ASSIGN_OVERFLOW(dst, src, srctype, dsttype)  \
+/* Assign a variable to one of a different size (think safer dst = (dsttype)src").
+ * The code generated by the macro checks for overflows.
+ */
+#define H5_CHECKED_ASSIGN(dst, dsttype, src, srctype)  \
     H5_GLUE4(ASSIGN_,srctype,_TO_,dsttype)(dst,dsttype,src,srctype)\
 
 #else /* NDEBUG */
-#define H5_ASSIGN_OVERFLOW(dst, src, srctype, dsttype)  \
+#define H5_CHECKED_ASSIGN(dst, dsttype, src, srctype)  \
     (dst) = (dsttype)(src);
 #endif /* NDEBUG */
 
@@ -1550,19 +1544,7 @@ extern char *strdup(const char *s);
         (ptr = slash);                                  \
 }
 
-#elif defined(H5_HAVE_VMS_PATH)
-
-/* OpenVMS pathname: <disk name>$<partition>:[path]<file name>
- *     i.g. SYS$SYSUSERS:[LU.HDF5.SRC]H5system.c */
-#define H5_DIR_SEPC                     ']'
-#define H5_DIR_SEPS                     "]"
-#define H5_CHECK_DELIMITER(SS)             (SS == H5_DIR_SEPC)
-#define H5_CHECK_ABSOLUTE(NAME)            (HDstrrchr(NAME, ':') && HDstrrchr(NAME, '['))
-#define H5_CHECK_ABS_DRIVE(NAME)           (0)
-#define H5_CHECK_ABS_PATH(NAME)            (0)
-#define H5_GET_LAST_DELIMITER(NAME, ptr)   ptr = HDstrrchr(NAME, H5_DIR_SEPC);
-
-#else
+#else /* H5_HAVE_WINDOW_PATH */
 
 #define H5_DIR_SEPC             '/'
 #define H5_DIR_SEPS             "/"
@@ -1572,7 +1554,7 @@ extern char *strdup(const char *s);
 #define H5_CHECK_ABS_PATH(NAME)    (0)
 #define H5_GET_LAST_DELIMITER(NAME, ptr)   ptr = HDstrrchr(NAME, H5_DIR_SEPC);
 
-#endif
+#endif /* H5_HAVE_WINDOW_PATH */
 
 #define   H5_COLON_SEPC  ':'
 
@@ -1734,9 +1716,24 @@ H5_DLL double H5_trace(const double *calltime, const char *func, const char *typ
  *-------------------------------------------------------------------------
  */
 
-/* `S' is the name of a function which is being tested to check if its */
-/*      an API function */
-#define H5_IS_API(S) ('_'!=((const char *)S)[2] && '_'!=((const char *)S)[3] && (!((const char *)S)[4] || '_'!=((const char *)S)[4]))
+/* `S' is the name of a function which is being tested to check if it's
+ *  an API function.
+ *
+ *  BADNESS:
+ *      - Underscore at positions 2 or 3 (0-indexed string). Handles
+ *        H5_ and H5X_.
+ *      - Underscore at position 4 if position 3 is uppercase or a digit.
+ *        Handles H5XY_.
+ */
+#define H5_IS_API(S) (\
+    '_'!=((const char *)S)[2]       /* underscore at position 2     */  \
+    && '_'!=((const char *)S)[3]    /* underscore at position 3     */  \
+    && !(                                       /* NOT              */  \
+        ((const char *)S)[4]                    /* pos 4 exists     */  \
+        && (HDisupper(S[3]) || HDisdigit(S[3])) /* pos 3 dig | uc   */  \
+        && '_'==((const char *)S)[4]            /* pos 4 underscore */  \
+    )\
+)
 
 /* `S' is the name of a function which is being tested to check if it's */
 /*      a public API function */
diff --git a/src/H5public.h b/src/H5public.h
index 01608d9..3ebc454 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -94,10 +94,10 @@ extern "C" {
 /* Version numbers */
 #define H5_VERS_MAJOR	1	/* For major interface/format changes  	     */
 #define H5_VERS_MINOR	8	/* For minor interface/format changes  	     */
-#define H5_VERS_RELEASE	15	/* For tweaks, bug-fixes, or development     */
-#define H5_VERS_SUBRELEASE "patch1"	/* For pre-releases like snap0       */
+#define H5_VERS_RELEASE	16	/* For tweaks, bug-fixes, or development     */
+#define H5_VERS_SUBRELEASE ""	/* For pre-releases like snap0       */
 				/* Empty string for real releases.           */
-#define H5_VERS_INFO    "HDF5 library version: 1.8.15-patch1"      /* Full version string */
+#define H5_VERS_INFO    "HDF5 library version: 1.8.16"      /* Full version string */
 
 #define H5check()	H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR,	      \
 				        H5_VERS_RELEASE)
@@ -331,6 +331,7 @@ H5_DLL herr_t H5get_libversion(unsigned *majnum, unsigned *minnum,
 				unsigned *relnum);
 H5_DLL herr_t H5check_version(unsigned majnum, unsigned minnum,
 			       unsigned relnum);
+H5_DLL herr_t H5is_library_threadsafe(hbool_t *is_ts);
 H5_DLL herr_t H5free_memory(void *mem);
 H5_DLL void *H5allocate_memory(size_t size, hbool_t clear);
 H5_DLL void *H5resize_memory(void *mem, size_t size);
@@ -338,5 +339,6 @@ H5_DLL void *H5resize_memory(void *mem, size_t size);
 #ifdef __cplusplus
 }
 #endif
-#endif
+#endif /* _H5public_H */
+ 
 
diff --git a/src/H5system.c b/src/H5system.c
index 437a004..5c8027d 100644
--- a/src/H5system.c
+++ b/src/H5system.c
@@ -582,45 +582,8 @@ void HDsrand(unsigned int seed)
 {
     g_seed = seed;
 }
-#endif
+#endif /* H5_HAVE_RAND_R */
 
-

-/*-------------------------------------------------------------------------
- * Function:  HDremove_all
- *
- * Purpose:  Wrapper function for remove on VMS systems
- *
- *     This function deletes all versions of a file
- *
- * Return:  Success:        0;
- *
- *    Failure:  -1
- *
- * Programmer:  Elena Pourmal
- *              March 22, 2006
- *
- *-------------------------------------------------------------------------
- */
-#ifdef H5_VMS
-int
-HDremove_all(const char *fname)
-{
-    int ret_value = -1;
-    size_t fname_len;
-    char *_fname;
-
-    fname_len = HDstrlen(fname) + 3;    /* to accomodate ";*" and null terminator */
-    _fname = (char *)H5MM_malloc(fname_len);
-    if(_fname) {
-        HDsnprintf(_fname, fname_len, "%s;*", fname);
-        /* Do not use HDremove; function becomes recursive (see H5private.h file)*/
-        remove(_fname);
-        H5MM_xfree(_fname);
-        ret_value = 0;
-    }
-    return ret_value;
-}
-#endif
 
 /*-------------------------------------------------------------------------
  * Function:  Wgettimeofday
@@ -764,8 +727,6 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
     /*
      * Unix: name[0] is a "/"
      * Windows: name[0-2] is "<drive letter>:\" or "<drive-letter>:/"
-     * OpenVMS: <disk name>$<partition>:[path]<file name>
-     *     i.g. SYS$SYSUSERS:[LU.HDF5.SRC]H5system.c
      */
     if(H5_CHECK_ABSOLUTE(name)) {
         if(NULL == (full_path = (char *)H5MM_strdup(name)))
@@ -786,7 +747,6 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
          * Windows: name[0-1] is "<drive-letter>:"
          *   Get current working directory on the drive specified in NAME
          * Unix: does not apply
-         * OpenVMS: does not apply
          */
         if(H5_CHECK_ABS_DRIVE(name)) {
             drive = name[0] - 'A' + 1;
@@ -797,14 +757,13 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
         * Windows: name[0] is a '/' or '\'
         *  Get current drive
         * Unix: does not apply
-        * OpenVMS: does not apply
         */
         else if(H5_CHECK_ABS_PATH(name) && (0 != (drive = HDgetdrive()))) {
             HDsnprintf(cwdpath, MAX_PATH_LEN, "%c:%c", (drive + 'A' - 1), name[0]);
             retcwd = cwdpath;
             HDstrncpy(new_name, &name[1], name_len);
         }
-        /* totally relative for Unix, Windows, and OpenVMS: get current working directory  */
+        /* totally relative for Unix and Windows: get current working directory  */
         else {
             retcwd = HDgetcwd(cwdpath, MAX_PATH_LEN);
             HDstrncpy(new_name, name, name_len);
@@ -823,26 +782,9 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
                 HGOTO_ERROR(H5E_INTERNAL, H5E_NOSPACE, FAIL, "memory allocation failed")
 
             HDstrncpy(full_path, cwdpath, cwdlen + 1);
-#ifdef H5_VMS
-            /* If the file name contains relative path, cut off the beginning bracket.  Also cut off the
-             * ending bracket of CWDPATH to combine the full path name. i.g.
-             *     cwdpath = SYS$SYSUSERS:[LU.HDF5.TEST]
-             *     new_name = [.tmp]extlinks.h5
-             *     full_path = SYS$SYSUSERS:[LU.HDF5.TEST.tmp]extlinks.h5
-             */
-            if(new_name[0] == '[') {
-                char *tmp = new_name;
-
-                full_path[cwdlen - 1] = '\0';
-                HDstrncat(full_path, ++tmp, HDstrlen(tmp));
-            } /* end if */
-            else
-                HDstrncat(full_path, new_name, HDstrlen(new_name));
-#else
             if(!H5_CHECK_DELIMITER(cwdpath[cwdlen - 1]))
                 HDstrncat(full_path, H5_DIR_SEPS, HDstrlen(H5_DIR_SEPS));
             HDstrncat(full_path, new_name, HDstrlen(new_name));
-#endif
         } /* end if */
     } /* end else */
 
diff --git a/src/H5win32defs.h b/src/H5win32defs.h
index 185e9b4..58e1412 100644
--- a/src/H5win32defs.h
+++ b/src/H5win32defs.h
@@ -84,7 +84,13 @@ struct timezone {
 #define HDgetlogin()        Wgetlogin()
 #define HDsnprintf          c99_snprintf /*varargs*/
 #define HDvsnprintf         c99_vsnprintf
-        
+#if _MSC_VER >= 1900  // VS 2015
+    // In gcc and in Visual Studio prior to VS 2015 'timezone' is a global
+    // variable declared in time.h. That variable was deprecated and in VS 2015
+    // is removed, with _get_timezone replacing it.
+    #define HDget_timezone(V)    _get_timezone(V);
+#endif
+
 #endif /* H5_HAVE_VISUAL_STUDIO */
 
 /* Non-POSIX functions */
diff --git a/src/Makefile.in b/src/Makefile.in
index 15a534b..4831885 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -718,9 +718,27 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 # See libtool versioning documentation online.
 # After making changes, run bin/reconfigure to update other configure related
 # files like Makefile.in.
-LT_VERS_INTERFACE = 10
-LT_VERS_REVISION = 1 
-LT_VERS_AGE = 0
+LT_VERS_INTERFACE = 11
+LT_VERS_REVISION = 0
+LT_VERS_AGE = 1
+LT_CXX_VERS_INTERFACE = 11
+LT_CXX_VERS_REVISION = 0
+LT_CXX_VERS_AGE = 0
+LT_F_VERS_INTERFACE = 10
+LT_F_VERS_REVISION = 2
+LT_F_VERS_AGE = 0
+LT_HL_VERS_INTERFACE = 10
+LT_HL_VERS_REVISION = 2
+LT_HL_VERS_AGE = 0
+LT_HL_CXX_VERS_INTERFACE = 11
+LT_HL_CXX_VERS_REVISION = 0
+LT_HL_CXX_VERS_AGE = 0
+LT_HL_F_VERS_INTERFACE = 10
+LT_HL_F_VERS_REVISION = 2
+LT_HL_F_VERS_AGE = 0
+LT_TOOLS_VERS_INTERFACE = 10
+LT_TOOLS_VERS_REVISION = 2
+LT_TOOLS_VERS_AGE = 0
 
 # Our main target, the HDF5 library
 lib_LTLIBRARIES = libhdf5.la
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index c402324..43037fc 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -26,8 +26,8 @@ set (TEST_LIB_HEADERS
     ${HDF5_TEST_SOURCE_DIR}/h5test.h
 )
 
-add_library (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} ${TEST_LIB_SRCS} ${TEST_LIB_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} " " " ")
+add_library (${HDF5_TEST_LIB_TARGET} STATIC ${TEST_LIB_SRCS} ${TEST_LIB_HEADERS})
+TARGET_C_PROPERTIES (${HDF5_TEST_LIB_TARGET} STATIC " " " ")
 if (MSVC)
   target_link_libraries (${HDF5_TEST_LIB_TARGET} "ws2_32.lib")
 endif (MSVC)
@@ -35,16 +35,40 @@ if (MINGW)
   target_link_libraries (${HDF5_TEST_LIB_TARGET} "wsock32.lib")
 endif (MINGW)
 target_link_libraries (${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
-H5_SET_LIB_OPTIONS (${HDF5_TEST_LIB_TARGET} ${HDF5_TEST_LIB_NAME} ${LIB_TYPE})
+H5_SET_LIB_OPTIONS (${HDF5_TEST_LIB_TARGET} ${HDF5_TEST_LIB_NAME} STATIC)
 set_target_properties (${HDF5_TEST_LIB_TARGET} PROPERTIES
     FOLDER libraries/test
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
 
+if (BUILD_SHARED_LIBS)
+  add_library (${HDF5_TEST_LIBSH_TARGET} SHARED ${TEST_LIB_SRCS} ${TEST_LIB_HEADERS})
+  TARGET_C_PROPERTIES (${HDF5_TEST_LIBSH_TARGET} SHARED " " " ")
+  if (MSVC)
+    target_link_libraries (${HDF5_TEST_LIBSH_TARGET} "ws2_32.lib")
+  endif (MSVC)
+  if (MINGW)
+    target_link_libraries (${HDF5_TEST_LIBSH_TARGET} "wsock32.lib")
+  endif (MINGW)
+  target_link_libraries (${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  H5_SET_LIB_OPTIONS (${HDF5_TEST_LIBSH_TARGET} ${HDF5_TEST_LIB_NAME} SHARED ${HDF5_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_TEST_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/test
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+  if (HDF5_ENABLE_THREADSAFE)
+    set_property (TARGET ${HDF5_TEST_LIBSH_TARGET}
+        APPEND PROPERTY COMPILE_DEFINITIONS
+            "H5_HAVE_THREADSAFE"
+    )
+  endif (HDF5_ENABLE_THREADSAFE)
+endif (BUILD_SHARED_LIBS)
+
 #-----------------------------------------------------------------------------
 # If plugin library tests can be tested
 #-----------------------------------------------------------------------------
-if (BUILD_SHARED_LIBS)
   # make plugins dir
   file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/testdir1")
   file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/testdir2")
@@ -67,14 +91,12 @@ if (BUILD_SHARED_LIBS)
     add_definitions (${HDF_EXTRA_C_FLAGS})
     INCLUDE_DIRECTORIES (${HDF5_SRC_DIR})
 
-    add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c)
-    TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} " " " ")
+    add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} SHARED ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c)
+    TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} SHARED " " " ")
     target_link_libraries (${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
     H5_SET_LIB_OPTIONS (
         ${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_PLUGIN_LIB_NAME}
-        ${LIB_TYPE}
-        HDF5_TEST_PLUGIN_LIB_NAME_RELEASE
-        HDF5_TEST_PLUGIN_LIB_NAME_DEBUG
+        SHARED ${HDF5_PACKAGE_SOVERSION}
     )
     set_target_properties (${HDF5_TEST_PLUGIN_LIB_TARGET} PROPERTIES FOLDER libraries/TEST_PLUGIN)
 
@@ -85,7 +107,7 @@ if (BUILD_SHARED_LIBS)
         TARGET     ${HDF5_TEST_PLUGIN_LIB_TARGET}
         POST_BUILD
         COMMAND    ${CMAKE_COMMAND}
-        ARGS       -E copy_if_different 
+        ARGS       -E copy_if_different
           "$<TARGET_FILE:${HDF5_TEST_PLUGIN_LIB_TARGET}>"
           "${CMAKE_BINARY_DIR}/testdir1/$<TARGET_FILE_NAME:${HDF5_TEST_PLUGIN_LIB_TARGET}>"
     )
@@ -98,14 +120,12 @@ if (BUILD_SHARED_LIBS)
     add_definitions (${HDF_EXTRA_C_FLAGS})
     INCLUDE_DIRECTORIES (${HDF5_SRC_DIR})
 
-    add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c)
-    TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} " " " ")
+    add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} SHARED ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c)
+    TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} SHARED " " " ")
     target_link_libraries (${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
     H5_SET_LIB_OPTIONS (
         ${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_PLUGIN_LIB_NAME}
-        ${LIB_TYPE}
-        HDF5_TEST_PLUGIN_LIB_NAME_RELEASE
-        HDF5_TEST_PLUGIN_LIB_NAME_DEBUG
+        SHARED ${HDF5_PACKAGE_SOVERSION}
     )
     set_target_properties (${HDF5_TEST_PLUGIN_LIB_TARGET} PROPERTIES FOLDER libraries/TEST_PLUGIN)
 
@@ -116,12 +136,11 @@ if (BUILD_SHARED_LIBS)
         TARGET     ${HDF5_TEST_PLUGIN_LIB_TARGET}
         POST_BUILD
         COMMAND    ${CMAKE_COMMAND}
-        ARGS       -E copy_if_different 
+        ARGS       -E copy_if_different
           "$<TARGET_FILE:${HDF5_TEST_PLUGIN_LIB_TARGET}>"
           "${CMAKE_BINARY_DIR}/testdir2/$<TARGET_FILE_NAME:${HDF5_TEST_PLUGIN_LIB_TARGET}>"
     )
   endforeach (test_lib ${TEST2_PLUGIN_LIBS})
-endif (BUILD_SHARED_LIBS)
 
 set (testhdf5_SRCS
     ${HDF5_TEST_SOURCE_DIR}/testhdf5.c
@@ -153,17 +172,31 @@ set (testhdf5_SRCS
 
 #-- Adding test for testhdf5
 add_executable (testhdf5 ${testhdf5_SRCS})
-TARGET_NAMING (testhdf5 ${LIB_TYPE})
-TARGET_C_PROPERTIES (testhdf5 ${LIB_TYPE} " " " ")
+TARGET_NAMING (testhdf5 STATIC)
+TARGET_C_PROPERTIES (testhdf5 STATIC " " " ")
 target_link_libraries (testhdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (testhdf5 PROPERTIES FOLDER test)
+if (BUILD_SHARED_LIBS)
+  add_executable (testhdf5-shared ${testhdf5_SRCS})
+  TARGET_NAMING (testhdf5-shared SHARED)
+  TARGET_C_PROPERTIES (testhdf5-shared SHARED " " " ")
+  target_link_libraries (testhdf5-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_target_properties (testhdf5-shared PROPERTIES FOLDER test)
+endif (BUILD_SHARED_LIBS)
 
 MACRO (ADD_H5_EXE file)
   add_executable (${file} ${HDF5_TEST_SOURCE_DIR}/${file}.c)
-  TARGET_NAMING (${file} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (${file} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (${file} STATIC)
+  TARGET_C_PROPERTIES (${file} STATIC " " " ")
   target_link_libraries (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (${file} PROPERTIES FOLDER test)
+  if (BUILD_SHARED_LIBS)
+    add_executable (${file}-shared ${HDF5_TEST_SOURCE_DIR}/${file}.c)
+    TARGET_NAMING (${file}-shared SHARED)
+    TARGET_C_PROPERTIES (${file}-shared SHARED " " " ")
+    target_link_libraries (${file}-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+    set_target_properties (${file}-shared PROPERTIES FOLDER test)
+  endif (BUILD_SHARED_LIBS)
 ENDMACRO (ADD_H5_EXE file)
 
 set (H5_TESTS
@@ -175,7 +208,7 @@ set (H5_TESTS
     #cache
     #cache_api
     pool
-    hyperslab
+    #hyperslab
     istore
     bittests
     dt_arith
@@ -231,17 +264,51 @@ endforeach (test ${H5_TESTS})
 
 #-- Adding test for cache
 add_executable (cache ${HDF5_TEST_SOURCE_DIR}/cache.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
-TARGET_NAMING (cache ${LIB_TYPE})
-TARGET_C_PROPERTIES (cache ${LIB_TYPE} " " " ")
+TARGET_NAMING (cache STATIC)
+TARGET_C_PROPERTIES (cache STATIC " " " ")
 target_link_libraries (cache ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (cache PROPERTIES FOLDER test)
+if (BUILD_SHARED_LIBS)
+  add_executable (cache-shared ${HDF5_TEST_SOURCE_DIR}/cache.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
+  TARGET_NAMING (cache-shared SHARED)
+  TARGET_C_PROPERTIES (cache-shared SHARED " " " ")
+  target_link_libraries (cache-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_target_properties (cache-shared PROPERTIES FOLDER test)
+endif (BUILD_SHARED_LIBS)
 
 #-- Adding test for cache_api
 add_executable (cache_api ${HDF5_TEST_SOURCE_DIR}/cache_api.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
-TARGET_NAMING (cache_api ${LIB_TYPE})
-TARGET_C_PROPERTIES (cache_api ${LIB_TYPE} " " " ")
+TARGET_NAMING (cache_api STATIC)
+TARGET_C_PROPERTIES (cache_api STATIC " " " ")
 target_link_libraries (cache_api ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (cache_api PROPERTIES FOLDER test)
+if (BUILD_SHARED_LIBS)
+  add_executable (cache_api-shared ${HDF5_TEST_SOURCE_DIR}/cache_api.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
+  TARGET_NAMING (cache_api-shared SHARED)
+  TARGET_C_PROPERTIES (cache_api-shared SHARED " " " ")
+  target_link_libraries (cache_api-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_target_properties (cache_api-shared PROPERTIES FOLDER test)
+endif (BUILD_SHARED_LIBS)
+
+#-- Adding test for hyperslab
+add_executable (hyperslab ${HDF5_TEST_SOURCE_DIR}/hyperslab.c)
+TARGET_NAMING (hyperslab STATIC)
+TARGET_C_PROPERTIES (hyperslab STATIC " " " ")
+target_link_libraries (hyperslab ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
+set_target_properties (hyperslab PROPERTIES FOLDER test)
+if (BUILD_SHARED_LIBS)
+  add_executable (hyperslab-shared ${HDF5_TEST_SOURCE_DIR}/hyperslab.c)
+  TARGET_NAMING (hyperslab-shared SHARED)
+  TARGET_C_PROPERTIES (hyperslab-shared SHARED " " " ")
+  target_link_libraries (hyperslab-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_target_properties (hyperslab-shared PROPERTIES FOLDER test)
+  if (HDF5_ENABLE_THREADSAFE)
+    set_property (TARGET hyperslab-shared
+        APPEND PROPERTY COMPILE_DEFINITIONS
+            "H5_HAVE_THREADSAFE"
+    )
+  endif (HDF5_ENABLE_THREADSAFE)
+endif (BUILD_SHARED_LIBS)
 
 #-- Adding test for ttsafe
 add_executable (ttsafe
@@ -251,37 +318,77 @@ add_executable (ttsafe
     ${HDF5_TEST_SOURCE_DIR}/ttsafe_cancel.c
     ${HDF5_TEST_SOURCE_DIR}/ttsafe_acreate.c
 )
-TARGET_NAMING (ttsafe ${LIB_TYPE})
-TARGET_C_PROPERTIES (ttsafe ${LIB_TYPE} " " " ")
+TARGET_NAMING (ttsafe STATIC)
+TARGET_C_PROPERTIES (ttsafe STATIC " " " ")
 target_link_libraries (ttsafe ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (ttsafe PROPERTIES FOLDER test)
+if (BUILD_SHARED_LIBS)
+  add_executable (ttsafe-shared
+      ${HDF5_TEST_SOURCE_DIR}/ttsafe.c
+      ${HDF5_TEST_SOURCE_DIR}/ttsafe_dcreate.c
+      ${HDF5_TEST_SOURCE_DIR}/ttsafe_error.c
+      ${HDF5_TEST_SOURCE_DIR}/ttsafe_cancel.c
+      ${HDF5_TEST_SOURCE_DIR}/ttsafe_acreate.c
+  )
+  TARGET_NAMING (ttsafe-shared SHARED)
+  TARGET_C_PROPERTIES (ttsafe-shared SHARED " " " ")
+  target_link_libraries (ttsafe-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_target_properties (ttsafe-shared PROPERTIES FOLDER test)
+  if (HDF5_ENABLE_THREADSAFE)
+    set_property (TARGET ttsafe-shared
+        APPEND PROPERTY COMPILE_DEFINITIONS
+            "H5_HAVE_THREADSAFE"
+    )
+  endif (HDF5_ENABLE_THREADSAFE)
+endif (BUILD_SHARED_LIBS)
 
 #-- Adding test for err_compat
 if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
   add_executable (err_compat ${HDF5_TEST_SOURCE_DIR}/err_compat.c)
-  TARGET_NAMING (err_compat ${LIB_TYPE})
-  TARGET_C_PROPERTIES (err_compat ${LIB_TYPE} " " " ")
+  TARGET_NAMING (err_compat STATIC)
+  TARGET_C_PROPERTIES (err_compat STATIC " " " ")
   target_link_libraries (err_compat ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (err_compat PROPERTIES FOLDER test)
+  if (BUILD_SHARED_LIBS)
+    add_executable (err_compat-shared ${HDF5_TEST_SOURCE_DIR}/err_compat.c)
+    TARGET_NAMING (err_compat-shared SHARED)
+    TARGET_C_PROPERTIES (err_compat-shared SHARED " " " ")
+    target_link_libraries (err_compat-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+    set_target_properties (err_compat-shared PROPERTIES FOLDER test)
+  endif (BUILD_SHARED_LIBS)
 endif (HDF5_ENABLE_DEPRECATED_SYMBOLS)
 
 #-- Adding test for error_test
 add_executable (error_test ${HDF5_TEST_SOURCE_DIR}/error_test.c)
-TARGET_NAMING (error_test ${LIB_TYPE})
-TARGET_C_PROPERTIES (error_test ${LIB_TYPE} " " " ")
+TARGET_NAMING (error_test STATIC)
+TARGET_C_PROPERTIES (error_test STATIC " " " ")
 target_link_libraries (error_test ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (error_test PROPERTIES FOLDER test)
+if (BUILD_SHARED_LIBS)
+  add_executable (error_test-shared ${HDF5_TEST_SOURCE_DIR}/error_test.c)
+  TARGET_NAMING (error_test-shared SHARED)
+  TARGET_C_PROPERTIES (error_test-shared SHARED " " " ")
+  target_link_libraries (error_test-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_target_properties (error_test-shared PROPERTIES FOLDER test)
+endif (BUILD_SHARED_LIBS)
 
 #-- Adding test for links_env
 add_executable (links_env ${HDF5_TEST_SOURCE_DIR}/links_env.c)
-TARGET_NAMING (links_env ${LIB_TYPE})
-TARGET_C_PROPERTIES (links_env ${LIB_TYPE} " " " ")
+TARGET_NAMING (links_env STATIC)
+TARGET_C_PROPERTIES (links_env STATIC " " " ")
 target_link_libraries (links_env ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (links_env PROPERTIES FOLDER test)
+if (BUILD_SHARED_LIBS)
+  add_executable (links_env-shared ${HDF5_TEST_SOURCE_DIR}/links_env.c)
+  TARGET_NAMING (links_env-shared SHARED)
+  TARGET_C_PROPERTIES (links_env-shared SHARED " " " ")
+  target_link_libraries (links_env-shared ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_target_properties (links_env-shared PROPERTIES FOLDER test)
+endif (BUILD_SHARED_LIBS)
 
 #-- Adding test for libinfo
 set (GREP_RUNNER ${PROJECT_BINARY_DIR}/GrepRunner.cmake)
-file (WRITE ${GREP_RUNNER} 
+file (WRITE ${GREP_RUNNER}
   "file (STRINGS \${TEST_PROGRAM} TEST_RESULT REGEX \"SUMMARY OF THE HDF5 CONFIGURATION\")
 if (\${TEST_RESULT} STREQUAL \"0\")
   message (FATAL_ERROR \"Failed: The output: \${TEST_RESULT} of \${TEST_PROGRAM} did not contain SUMMARY OF THE HDF5 CONFIGURATION\")
@@ -300,6 +407,12 @@ if (BUILD_SHARED_LIBS)
   TARGET_C_PROPERTIES (plugin SHARED " " " ")
   target_link_libraries (plugin ${HDF5_TEST_PLUGIN_LIB_TARGET})
   set_target_properties (plugin PROPERTIES FOLDER test)
+else (BUILD_SHARED_LIBS)
+  add_executable (plugin ${HDF5_TEST_SOURCE_DIR}/plugin.c)
+  TARGET_NAMING (plugin STATIC)
+  TARGET_C_PROPERTIES (plugin STATIC " " " ")
+  target_link_libraries (plugin ${HDF5_TEST_PLUGIN_LIB_TARGET})
+  set_target_properties (plugin PROPERTIES FOLDER test)
 endif (BUILD_SHARED_LIBS)
 
 include (CMakeTests.cmake)
diff --git a/test/CMakeTests.cmake b/test/CMakeTests.cmake
index 5087290..8126042 100644
--- a/test/CMakeTests.cmake
+++ b/test/CMakeTests.cmake
@@ -9,6 +9,12 @@
 file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST")
 file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/testfiles")
 file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files")
+if (BUILD_SHARED_LIBS)
+  file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST-shared")
+  file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST-shared/testfiles")
+  file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST-shared/testfiles/plist_files")
+endif (BUILD_SHARED_LIBS)
+
 if (HDF5_TEST_VFD)
   set (VFD_LIST
       sec2
@@ -23,6 +29,9 @@ if (HDF5_TEST_VFD)
   endif (DIRECT_VFD)
   foreach (vfdtest ${VFD_LIST})
     file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/${vfdtest}")
+    #if (BUILD_SHARED_LIBS)
+    #  file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/${vfdtest}-shared")
+    #endif (BUILD_SHARED_LIBS)
   endforeach (vfdtest ${VFD_LIST})
 endif (HDF5_TEST_VFD)
 
@@ -35,25 +44,41 @@ set (HDF5_TEST_FILES
 
 foreach (h5_tfile ${HDF5_TEST_FILES})
   set (dest "${PROJECT_BINARY_DIR}/H5TEST/${h5_tfile}")
-  #message (STATUS " Copying ${h5_tfile}")
   add_custom_command (
       TARGET     ${HDF5_TEST_LIB_TARGET}
       POST_BUILD
       COMMAND    ${CMAKE_COMMAND}
       ARGS       -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_tfile} ${dest}
   )
+  if (BUILD_SHARED_LIBS)
+    set (dest "${PROJECT_BINARY_DIR}/H5TEST-shared/${h5_tfile}")
+    add_custom_command (
+        TARGET     ${HDF5_TEST_LIBSH_TARGET}
+        POST_BUILD
+        COMMAND    ${CMAKE_COMMAND}
+        ARGS       -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_tfile} ${dest}
+    )
+  endif (BUILD_SHARED_LIBS)
 endforeach (h5_tfile ${HDF5_TEST_FILES})
 if (HDF5_TEST_VFD)
   foreach (vfdtest ${VFD_LIST})
     foreach (h5_tfile ${HDF5_TEST_FILES})
       set (dest "${PROJECT_BINARY_DIR}/${vfdtest}/${h5_tfile}")
-      #message (STATUS " Copying ${h5_tfile}")
       add_custom_command (
           TARGET     ${HDF5_TEST_LIB_TARGET}
           POST_BUILD
           COMMAND    ${CMAKE_COMMAND}
           ARGS       -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_tfile} ${dest}
       )
+      if (BUILD_SHARED_LIBS)
+        set (dest "${PROJECT_BINARY_DIR}/${vfdtest}-shared/${h5_tfile}")
+        add_custom_command (
+            TARGET     ${HDF5_TEST_LIBSH_TARGET}
+            POST_BUILD
+            COMMAND    ${CMAKE_COMMAND}
+            ARGS       -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_tfile} ${dest}
+        )
+      endif (BUILD_SHARED_LIBS)
     endforeach (h5_tfile ${HDF5_TEST_FILES})
   endforeach (vfdtest ${VFD_LIST})
 endif (HDF5_TEST_VFD)
@@ -71,25 +96,41 @@ set (HDF5_REFERENCE_FILES
 
 foreach (ref_file ${HDF5_REFERENCE_FILES})
   set (dest "${PROJECT_BINARY_DIR}/H5TEST/${ref_file}")
-  #message (STATUS " Copying ${h5_file}")
   add_custom_command (
       TARGET     ${HDF5_TEST_LIB_TARGET}
       POST_BUILD
       COMMAND    ${CMAKE_COMMAND}
       ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file} ${dest}
   )
+  if (BUILD_SHARED_LIBS)
+    set (dest "${PROJECT_BINARY_DIR}/H5TEST-shared/${ref_file}")
+    add_custom_command (
+        TARGET     ${HDF5_TEST_LIBSH_TARGET}
+        POST_BUILD
+        COMMAND    ${CMAKE_COMMAND}
+        ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file} ${dest}
+    )
+  endif (BUILD_SHARED_LIBS)
 endforeach (ref_file ${HDF5_REFERENCE_FILES})
 if (HDF5_TEST_VFD)
   foreach (vfdtest ${VFD_LIST})
     foreach (ref_file ${HDF5_REFERENCE_FILES})
       set (dest "${PROJECT_BINARY_DIR}/${vfdtest}/${ref_file}")
-      #message (STATUS " Copying ${h5_file}")
       add_custom_command (
           TARGET     ${HDF5_TEST_LIB_TARGET}
           POST_BUILD
           COMMAND    ${CMAKE_COMMAND}
           ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file} ${dest}
       )
+      if (BUILD_SHARED_LIBS)
+        set (dest "${PROJECT_BINARY_DIR}/${vfdtest}-shared/${ref_file}")
+        add_custom_command (
+            TARGET     ${HDF5_TEST_LIB_TARGET}
+            POST_BUILD
+            COMMAND    ${CMAKE_COMMAND}
+            ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file} ${dest}
+        )
+      endif (BUILD_SHARED_LIBS)
     endforeach (ref_file ${HDF5_REFERENCE_FILES})
   endforeach (vfdtest ${VFD_LIST})
 endif (HDF5_TEST_VFD)
@@ -135,25 +176,41 @@ set (HDF5_REFERENCE_TEST_FILES
 
 foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
   set (dest "${HDF5_TEST_BINARY_DIR}/H5TEST/${h5_file}")
-  #message (STATUS " Copying ${h5_file} to ${dest}")
   add_custom_command (
       TARGET     ${HDF5_TEST_LIB_TARGET}
       POST_BUILD
       COMMAND    ${CMAKE_COMMAND}
       ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/${h5_file} ${dest}
   )
+  if (BUILD_SHARED_LIBS)
+    set (dest "${HDF5_TEST_BINARY_DIR}/H5TEST-shared/${h5_file}")
+    add_custom_command (
+        TARGET     ${HDF5_TEST_LIBSH_TARGET}
+        POST_BUILD
+        COMMAND    ${CMAKE_COMMAND}
+        ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/${h5_file} ${dest}
+    )
+  endif (BUILD_SHARED_LIBS)
 endforeach (h5_file ${HDF5_REFERENCE_TEST_FILES})
 if (HDF5_TEST_VFD)
   foreach (vfdtest ${VFD_LIST})
     foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
       set (dest "${HDF5_TEST_BINARY_DIR}/${vfdtest}/${h5_file}")
-      #message (STATUS " Copying ${h5_file} to ${dest}")
       add_custom_command (
           TARGET     ${HDF5_TEST_LIB_TARGET}
           POST_BUILD
           COMMAND    ${CMAKE_COMMAND}
           ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/${h5_file} ${dest}
       )
+      if (BUILD_SHARED_LIBS)
+        set (dest "${HDF5_TEST_BINARY_DIR}/${vfdtest}-shared/${h5_file}")
+        add_custom_command (
+            TARGET     ${HDF5_TEST_LIB_TARGET}
+            POST_BUILD
+            COMMAND    ${CMAKE_COMMAND}
+            ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/${h5_file} ${dest}
+        )
+      endif (BUILD_SHARED_LIBS)
     endforeach (h5_file ${HDF5_REFERENCE_TEST_FILES})
   endforeach (vfdtest ${VFD_LIST})
 endif (HDF5_TEST_VFD)
@@ -162,7 +219,7 @@ endif (HDF5_TEST_VFD)
 add_test (
     NAME H5TEST-clear-testhdf5-objects
     COMMAND    ${CMAKE_COMMAND}
-        -E remove 
+        -E remove
         coord.h5
         dtypes10.h5
         sys_file1
@@ -216,8 +273,40 @@ else (HDF5_ENABLE_USING_MEMCHECKER)
       ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
       WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
   )
+  if (BUILD_SHARED_LIBS)
+    add_test (
+        NAME H5TEST-shared-clear-testhdf5-objects
+        COMMAND    ${CMAKE_COMMAND}
+            -E remove
+            coord.h5
+            dtypes10.h5
+            sys_file1
+            tattr.h5
+            tfile1.h5
+            tfile2.h5
+            tfile3.h5
+            tfile4.h5
+            tfile5.h5
+            tfile6.h5
+            tfile7.h5
+            th5o_file
+            th5s1.h5
+            tselect.h5
+            tsohm.h5
+            tsohm_dst.h5
+            tsohm_src.h5
+        WORKING_DIRECTORY
+            ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+    )
+    add_test (NAME H5TEST-shared-testhdf5 COMMAND $<TARGET_FILE:testhdf5-shared>)
+    set_tests_properties (H5TEST-shared-testhdf5 PROPERTIES
+        DEPENDS H5TEST-shared-clear-testhdf5-objects
+        ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST-shared"
+        WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+    )
+  endif (BUILD_SHARED_LIBS)
 endif (HDF5_ENABLE_USING_MEMCHECKER)
-  
+
 ##############################################################################
 ##############################################################################
 ###           T H E   T E S T S  M A C R O S                               ###
@@ -228,7 +317,7 @@ endif (HDF5_ENABLE_USING_MEMCHECKER)
 add_test (
     NAME H5TEST-clear-objects
     COMMAND    ${CMAKE_COMMAND}
-        -E remove 
+        -E remove
         dt_arith1.h5
         dt_arith2.h5
         dtransform.h5
@@ -293,9 +382,16 @@ add_test (
 )
 
 foreach (test ${H5_TESTS})
-  add_test (NAME H5TEST-${test} COMMAND $<TARGET_FILE:${test}>)
+  if (${test} STREQUAL "big" AND CYGWIN)
+    add_test (
+        NAME H5TEST-${test}
+        COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${test}"
+    )
+  else (${test} STREQUAL "big" AND CYGWIN)
+    add_test (NAME H5TEST-${test} COMMAND $<TARGET_FILE:${test}>)
+  endif (${test} STREQUAL "big" AND CYGWIN)
   set_tests_properties (H5TEST-${test} PROPERTIES
-      DEPENDS H5TEST-clear-objects 
+      DEPENDS H5TEST-clear-objects
       ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
       WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
   )
@@ -305,6 +401,99 @@ set_tests_properties (H5TEST-flush2 PROPERTIES DEPENDS H5TEST-flush1)
 set_tests_properties (H5TEST-fheap PROPERTIES TIMEOUT 1800)
 set_tests_properties (H5TEST-testmeta PROPERTIES TIMEOUT 1800)
 set_tests_properties (H5TEST-big PROPERTIES TIMEOUT 1800)
+set_tests_properties (H5TEST-objcopy PROPERTIES TIMEOUT 2400)
+
+if (BUILD_SHARED_LIBS)
+  # Remove any output file left over from previous test run
+  add_test (
+      NAME H5TEST-shared-clear-objects
+      COMMAND    ${CMAKE_COMMAND}
+          -E remove
+          dt_arith1.h5
+          dt_arith2.h5
+          dtransform.h5
+          dtypes3.h5
+          dtypes4.h5
+          dtypes5.h5
+          efc0.h5
+          efc1.h5
+          efc2.h5
+          efc3.h5
+          efc4.h5
+          efc5.h5
+          extlinks16A00000.h5
+          extlinks16A00001.h5
+          extlinks16A00002.h5
+          extlinks16B-b.h5
+          extlinks16B-g.h5
+          extlinks16B-l.h5
+          extlinks16B-r.h5
+          extlinks16B-s.h5
+          extlinks19B00000.h5
+          extlinks19B00001.h5
+          extlinks19B00002.h5
+          extlinks19B00003.h5
+          extlinks19B00004.h5
+          extlinks19B00005.h5
+          extlinks19B00006.h5
+          extlinks19B00007.h5
+          extlinks19B00008.h5
+          extlinks19B00009.h5
+          extlinks19B00010.h5
+          extlinks19B00011.h5
+          extlinks19B00012.h5
+          extlinks19B00013.h5
+          extlinks19B00014.h5
+          extlinks19B00015.h5
+          extlinks19B00016.h5
+          extlinks19B00017.h5
+          extlinks19B00018.h5
+          extlinks19B00019.h5
+          extlinks19B00020.h5
+          extlinks19B00021.h5
+          extlinks19B00022.h5
+          extlinks19B00023.h5
+          extlinks19B00024.h5
+          extlinks19B00025.h5
+          extlinks19B00026.h5
+          extlinks19B00027.h5
+          extlinks19B00028.h5
+          fheap.h5
+          log_vfd_out.log
+          new_multi_file_v16-r.h5
+          new_multi_file_v16-s.h5
+          objcopy_ext.dat
+          testmeta.h5
+          tstint1.h5
+          tstint2.h5
+          unregister_filter_1.h5
+          unregister_filter_2.h5
+      WORKING_DIRECTORY
+          ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+  )
+
+  foreach (test ${H5_TESTS})
+    if (${test} STREQUAL "big" AND CYGWIN)
+      add_test (
+          NAME H5TEST-shared-${test}
+          COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${test}-shared"
+      )
+    else (${test} STREQUAL "big" AND CYGWIN)
+      add_test (NAME H5TEST-shared-${test} COMMAND $<TARGET_FILE:${test}-shared>)
+    endif (${test} STREQUAL "big" AND CYGWIN)
+    set_tests_properties (H5TEST-shared-${test} PROPERTIES
+        DEPENDS H5TEST-shared-clear-objects
+        ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST-shared"
+        WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+    )
+  endforeach (test ${H5_TESTS})
+
+  set_tests_properties (H5TEST-shared-flush2 PROPERTIES DEPENDS H5TEST-shared-flush1)
+  set_tests_properties (H5TEST-shared-fheap PROPERTIES TIMEOUT 1800)
+  set_tests_properties (H5TEST-shared-testmeta PROPERTIES TIMEOUT 1800)
+  set_tests_properties (H5TEST-shared-big PROPERTIES TIMEOUT 1800)
+  set_tests_properties (H5TEST-shared-objcopy PROPERTIES TIMEOUT 2400)
+endif (BUILD_SHARED_LIBS)
 
 ##############################################################################
 ##############################################################################
@@ -316,7 +505,7 @@ set_tests_properties (H5TEST-big PROPERTIES TIMEOUT 1800)
 add_test (
     NAME H5TEST-clear-cache-objects
     COMMAND    ${CMAKE_COMMAND}
-        -E remove 
+        -E remove
         cache_test.h5
     WORKING_DIRECTORY
         ${HDF5_TEST_BINARY_DIR}/H5TEST
@@ -324,22 +513,23 @@ add_test (
 add_test (NAME H5TEST-cache COMMAND $<TARGET_FILE:cache>)
 set_tests_properties (H5TEST-cache PROPERTIES
     DEPENDS H5TEST-clear-cache-objects
-    ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+    ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5TestExpress=${HDF_TEST_EXPRESS}"
     WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
+set_tests_properties (H5TEST-cache PROPERTIES TIMEOUT 2400)
 
 #-- Adding test for cache_api
 add_test (
     NAME H5TEST-clear-cache_api-objects
     COMMAND    ${CMAKE_COMMAND}
-        -E remove 
+        -E remove
         cache_api_test.h5
     WORKING_DIRECTORY
         ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 add_test (NAME H5TEST-cache_api COMMAND $<TARGET_FILE:cache_api>)
 set_tests_properties (H5TEST-cache_api PROPERTIES
-    DEPENDS H5TEST-clear-cache_api-objects 
+    DEPENDS H5TEST-clear-cache_api-objects
     ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
     WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
@@ -348,7 +538,7 @@ set_tests_properties (H5TEST-cache_api PROPERTIES
 add_test (
     NAME H5TEST-clear-ttsafe-objects
     COMMAND    ${CMAKE_COMMAND}
-        -E remove 
+        -E remove
         ttsafe_error.h5
         ttsafe_dcreate.h5
         ttsafe_cancel.h5
@@ -368,7 +558,7 @@ if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
   add_test (
       NAME H5TEST-clear-err_compat-objects
       COMMAND    ${CMAKE_COMMAND}
-          -E remove 
+          -E remove
           err_compat.txt
           err_compat.txt.err
       WORKING_DIRECTORY
@@ -395,7 +585,7 @@ endif (HDF5_ENABLE_DEPRECATED_SYMBOLS)
 add_test (
     NAME H5TEST-clear-error_test-objects
     COMMAND    ${CMAKE_COMMAND}
-        -E remove 
+        -E remove
         error_test.txt
         error_test.txt.err
     WORKING_DIRECTORY
@@ -411,7 +601,7 @@ add_test (NAME H5TEST-error_test COMMAND "${CMAKE_COMMAND}"
     -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
     -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
 )
-set_tests_properties (H5TEST-error_test PROPERTIES 
+set_tests_properties (H5TEST-error_test PROPERTIES
     DEPENDS H5TEST-clear-error_test-objects
     ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5_PLUGIN_PRELOAD=::"
     WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
@@ -423,7 +613,7 @@ add_test (
     COMMAND    ${CMAKE_COMMAND}
         -E remove
         links_env.txt
-        links_env.txt.err 
+        links_env.txt.err
         extlinks_env0.h5
         extlinks_env1.h5
         tmp/extlinks_env1.h5
@@ -455,31 +645,170 @@ add_test (
         ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 
-##############################################################################
-###    P L U G I N  T E S T S
-##############################################################################
 if (BUILD_SHARED_LIBS)
+  #-- Adding test for cache
+  if (NOT CYGWIN)
+    add_test (
+        NAME H5TEST-shared-clear-cache-objects
+        COMMAND    ${CMAKE_COMMAND}
+            -E remove
+            cache_test.h5
+        WORKING_DIRECTORY
+            ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+    )
+    add_test (NAME H5TEST-shared-cache COMMAND $<TARGET_FILE:cache-shared>)
+    set_tests_properties (H5TEST-shared-cache PROPERTIES
+        DEPENDS H5TEST-shared-clear-cache-objects
+        ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST-shared;HDF5TestExpress=${HDF_TEST_EXPRESS}"
+        WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+    )
+    set_tests_properties (H5TEST-shared-cache PROPERTIES TIMEOUT 2400)
+  endif (NOT CYGWIN)
 
-  if (WIN32)
-    set (CMAKE_SEP "\;")
-  else (WIN32)
-    set (CMAKE_SEP ":")
-  endif (WIN32)
+  #-- Adding test for cache_api
+  add_test (
+      NAME H5TEST-shared-clear-cache_api-objects
+      COMMAND    ${CMAKE_COMMAND}
+          -E remove
+          cache_api_test.h5
+      WORKING_DIRECTORY
+          ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+  )
+  add_test (NAME H5TEST-shared-cache_api COMMAND $<TARGET_FILE:cache_api-shared>)
+  set_tests_properties (H5TEST-shared-cache_api PROPERTIES
+      DEPENDS H5TEST-shared-clear-cache_api-objects
+      ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST-shared"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+  )
+
+  #-- Adding test for ttsafe
+  add_test (
+      NAME H5TEST-shared-clear-ttsafe-objects
+      COMMAND    ${CMAKE_COMMAND}
+          -E remove
+          ttsafe_error.h5
+          ttsafe_dcreate.h5
+          ttsafe_cancel.h5
+          ttsafe_acreate.h5
+      WORKING_DIRECTORY
+          ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+  )
+  add_test (NAME H5TEST-shared-ttsafe COMMAND $<TARGET_FILE:ttsafe-shared>)
+  set_tests_properties (H5TEST-shared-ttsafe PROPERTIES
+      DEPENDS H5TEST-shared-clear-ttsafe-objects
+      ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST-shared"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+  )
+
+  #-- Adding test for err_compat
+  if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
+    add_test (
+        NAME H5TEST-shared-clear-err_compat-objects
+        COMMAND    ${CMAKE_COMMAND}
+            -E remove
+            err_compat.txt
+            err_compat.txt.err
+        WORKING_DIRECTORY
+            ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+    )
+    add_test (NAME H5TEST-shared-err_compat COMMAND "${CMAKE_COMMAND}"
+        -D "TEST_PROGRAM=$<TARGET_FILE:err_compat-shared>"
+        -D "TEST_ARGS:STRING="
+        -D "TEST_EXPECT=0"
+        -D "TEST_MASK_ERROR=true"
+        -D "TEST_OUTPUT=err_compat.txt"
+        -D "TEST_REFERENCE=err_compat_1"
+        -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST-shared"
+        -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+    )
+    set_tests_properties (H5TEST-shared-err_compat PROPERTIES
+        DEPENDS H5TEST-shared-clear-err_compat-objects
+        ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST-shared"
+        WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+    )
+  endif (HDF5_ENABLE_DEPRECATED_SYMBOLS)
+
+  #-- Adding test for error_test
+  add_test (
+      NAME H5TEST-shared-clear-error_test-objects
+      COMMAND    ${CMAKE_COMMAND}
+          -E remove
+          error_test.txt
+          error_test.txt.err
+      WORKING_DIRECTORY
+          ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+  )
+  add_test (NAME H5TEST-shared-error_test COMMAND "${CMAKE_COMMAND}"
+      -D "TEST_PROGRAM=$<TARGET_FILE:error_test-shared>"
+      -D "TEST_ARGS:STRING="
+      -D "TEST_EXPECT=0"
+      -D "TEST_MASK_ERROR=true"
+      -D "TEST_OUTPUT=error_test.txt"
+      -D "TEST_REFERENCE=error_test_1"
+      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST-shared"
+      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+  )
+  set_tests_properties (H5TEST-shared-error_test PROPERTIES
+      DEPENDS H5TEST-shared-clear-error_test-objects
+      ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST-shared;HDF5_PLUGIN_PRELOAD=::"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+  )
 
-  add_test (NAME H5PLUGIN-plugin COMMAND $<TARGET_FILE:plugin>)
-  set_tests_properties (H5PLUGIN-plugin PROPERTIES
-      ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/testdir1${CMAKE_SEP}${CMAKE_BINARY_DIR}/testdir2;srcdir=${HDF5_TEST_BINARY_DIR}"
-      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}
+  #-- Adding test for links_env
+  add_test (
+      NAME H5TEST-shared-clear-links_env-objects
+      COMMAND    ${CMAKE_COMMAND}
+          -E remove
+          links_env.txt
+          links_env.txt.err
+          extlinks_env0.h5
+          extlinks_env1.h5
+          tmp/extlinks_env1.h5
+      WORKING_DIRECTORY
+          ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
+  )
+  add_test (NAME H5TEST-shared-links_env COMMAND "${CMAKE_COMMAND}"
+      -D "TEST_PROGRAM=$<TARGET_FILE:links_env-shared>"
+      -D "TEST_ARGS:STRING="
+      -D "TEST_ENV_VAR:STRING=HDF5_EXT_PREFIX"
+      -D "TEST_ENV_VALUE:STRING=.:tmp"
+      -D "TEST_EXPECT=0"
+      -D "TEST_OUTPUT=links_env.txt"
+      -D "TEST_REFERENCE=links_env.out"
+      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST-shared"
+      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
+  )
+  set_tests_properties (H5TEST-shared-links_env PROPERTIES
+      DEPENDS H5TEST-shared-clear-links_env-objects
+      ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST-shared"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
   )
-else (BUILD_SHARED_LIBS)
-  message (STATUS " **** Plugins libraries must be built as shared libraries **** ")
+
+  #-- Adding test for libinfo
   add_test (
-      NAME H5PLUGIN-SKIPPED
-      COMMAND ${CMAKE_COMMAND} -E echo "SKIP H5PLUGIN TESTING"
+      NAME H5TEST-shared-testlibinfo
+      COMMAND ${CMAKE_COMMAND} -D "TEST_PROGRAM=$<TARGET_FILE:${HDF5_LIBSH_TARGET}>" -P "${GREP_RUNNER}"
+      WORKING_DIRECTORY
+          ${HDF5_TEST_BINARY_DIR}/H5TEST-shared
   )
 endif (BUILD_SHARED_LIBS)
 
 ##############################################################################
+###    P L U G I N  T E S T S
+##############################################################################
+if (WIN32)
+  set (CMAKE_SEP "\;")
+else (WIN32)
+  set (CMAKE_SEP ":")
+endif (WIN32)
+
+add_test (NAME H5PLUGIN-plugin COMMAND $<TARGET_FILE:plugin>)
+set_tests_properties (H5PLUGIN-plugin PROPERTIES
+    ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/testdir1${CMAKE_SEP}${CMAKE_BINARY_DIR}/testdir2;srcdir=${HDF5_TEST_BINARY_DIR}"
+    WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}
+)
+
+##############################################################################
 ##############################################################################
 ###                         V F D   T E S T S                              ###
 ##############################################################################
@@ -548,13 +877,13 @@ if (HDF5_TEST_VFD)
       if (${vfdname} STREQUAL "multi" OR ${vfdname} STREQUAL "split")
         if (NOT BUILD_SHARED_LIBS AND NOT CMAKE_BUILD_TYPE MATCHES Debug)
           add_test (
-              NAME VFD-${vfdname}-${vfdtest} 
+              NAME VFD-${vfdname}-${vfdtest}
               COMMAND "${CMAKE_COMMAND}"
                   -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>"
                   -D "TEST_ARGS:STRING="
                   -D "TEST_VFD:STRING=${vfdname}"
                   -D "TEST_EXPECT=${resultcode}"
-                  -D "TEST_OUTPUT=${vfdtest}"
+                  -D "TEST_OUTPUT=${vfdname}-${vfdtest}"
                   -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
                   -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
           )
@@ -562,21 +891,44 @@ if (HDF5_TEST_VFD)
               ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
               WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
           )
+          if (BUILD_SHARED_LIBS)
+            add_test (
+                NAME VFD-${vfdname}-${test}-shared
+                COMMAND "${CMAKE_COMMAND}"
+                    -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}-shared>"
+                    -D "TEST_ARGS:STRING="
+                    -D "TEST_VFD:STRING=${vfdname}"
+                    -D "TEST_EXPECT=${resultcode}"
+                    -D "TEST_OUTPUT=${vfdname}-${vfdtest}-shared"
+                    -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}-shared"
+                    -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+            )
+            set_tests_properties (VFD-${vfdname}-${vfdtest}-shared PROPERTIES
+                ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}-shared"
+                WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}-shared
+            )
+          endif (BUILD_SHARED_LIBS)
         else (NOT BUILD_SHARED_LIBS AND NOT CMAKE_BUILD_TYPE MATCHES Debug)
           add_test (
               NAME VFD-${vfdname}-${vfdtest}
               COMMAND ${CMAKE_COMMAND} -E echo "SKIP VFD-${vfdname}-${vfdtest}"
           )
+          if (BUILD_SHARED_LIBS)
+            add_test (
+                NAME VFD-${vfdname}-${test}-shared
+                COMMAND ${CMAKE_COMMAND} -E echo "SKIP VFD-${vfdname}-${vfdtest}-shared"
+            )
+          endif (BUILD_SHARED_LIBS)
         endif(NOT BUILD_SHARED_LIBS AND NOT CMAKE_BUILD_TYPE MATCHES Debug)
       else (${vfdname} STREQUAL "multi" OR ${vfdname} STREQUAL "split")
         add_test (
-            NAME VFD-${vfdname}-${vfdtest} 
+            NAME VFD-${vfdname}-${vfdtest}
             COMMAND "${CMAKE_COMMAND}"
                 -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>"
                 -D "TEST_ARGS:STRING="
                 -D "TEST_VFD:STRING=${vfdname}"
                 -D "TEST_EXPECT=${resultcode}"
-                -D "TEST_OUTPUT=${vfdtest}"
+                -D "TEST_OUTPUT=${vfdname}-${vfdtest}"
                 -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
                 -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
         )
@@ -584,23 +936,57 @@ if (HDF5_TEST_VFD)
             ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
             WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
         )
+        if (BUILD_SHARED_LIBS)
+          add_test (
+            NAME VFD-${vfdname}-${test}-shared
+              COMMAND "${CMAKE_COMMAND}"
+                -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}-shared>"
+                -D "TEST_ARGS:STRING="
+                -D "TEST_VFD:STRING=${vfdname}"
+                -D "TEST_EXPECT=${resultcode}"
+                -D "TEST_OUTPUT=${vfdname}-${vfdtest}-shared"
+                -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}-shared"
+                -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+          )
+          set_tests_properties (VFD-${vfdname}-${vfdtest}-shared PROPERTIES
+              ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}-shared"
+              WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}-shared
+          )
+        endif (BUILD_SHARED_LIBS)
       endif (${vfdname} STREQUAL "multi" OR ${vfdname} STREQUAL "split")
     else (${vfdtest} STREQUAL "flush1" OR ${vfdtest} STREQUAL "flush2")
       add_test (
-          NAME VFD-${vfdname}-${vfdtest} 
+          NAME VFD-${vfdname}-${vfdtest}
           COMMAND "${CMAKE_COMMAND}"
               -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}>"
               -D "TEST_ARGS:STRING="
               -D "TEST_VFD:STRING=${vfdname}"
               -D "TEST_EXPECT=${resultcode}"
-              -D "TEST_OUTPUT=${vfdtest}"
+              -D "TEST_OUTPUT=${vfdname}-${vfdtest}"
               -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
               -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
       )
       set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES
-          ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
+          ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname};HDF5TestExpress=${HDF_TEST_EXPRESS}"
           WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
       )
+      if (BUILD_SHARED_LIBS)
+        add_test (
+            NAME VFD-${vfdname}-${vfdtest}-shared
+            COMMAND "${CMAKE_COMMAND}"
+                -D "TEST_PROGRAM=$<TARGET_FILE:${vfdtest}-shared>"
+                -D "TEST_ARGS:STRING="
+                -D "TEST_VFD:STRING=${vfdname}"
+                -D "TEST_EXPECT=${resultcode}"
+                -D "TEST_OUTPUT=${vfdname}-${vfdtest}-shared"
+                -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}-shared"
+                -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+        )
+        set_tests_properties (VFD-${vfdname}-${vfdtest}-shared PROPERTIES
+            ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}-shared;HDF5TestExpress=${HDF_TEST_EXPRESS}"
+            WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}-shared
+        )
+        endif (BUILD_SHARED_LIBS)
     endif (${vfdtest} STREQUAL "flush1" OR ${vfdtest} STREQUAL "flush2")
   ENDMACRO (CHECK_VFD_TEST vfdtest vfdname resultcode)
 
@@ -610,48 +996,93 @@ if (HDF5_TEST_VFD)
         CHECK_VFD_TEST (${test} ${vfdname} ${resultcode})
       else (WIN32)
         add_test (
-          NAME VFD-${vfdname}-${test} 
-          COMMAND "${CMAKE_COMMAND}"
-              -D "TEST_PROGRAM=$<TARGET_FILE:${test}>"
-              -D "TEST_ARGS:STRING="
-              -D "TEST_VFD:STRING=${vfdname}"
-              -D "TEST_EXPECT=${resultcode}"
-              -D "TEST_OUTPUT=${vfdname}-${test}"
-              -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
-              -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+            NAME VFD-${vfdname}-${test}
+            COMMAND "${CMAKE_COMMAND}"
+                -D "TEST_PROGRAM=$<TARGET_FILE:${test}>"
+                -D "TEST_ARGS:STRING="
+                -D "TEST_VFD:STRING=${vfdname}"
+                -D "TEST_EXPECT=${resultcode}"
+                -D "TEST_OUTPUT=${vfdname}-${test}"
+                -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
+                -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
         )
         set_tests_properties (VFD-${vfdname}-${test} PROPERTIES
             ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
             WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
         )
+        if (BUILD_SHARED_LIBS)
+          add_test (
+              NAME VFD-${vfdname}-${test}-shared
+              COMMAND "${CMAKE_COMMAND}"
+                  -D "TEST_PROGRAM=$<TARGET_FILE:${test}-shared>"
+                  -D "TEST_ARGS:STRING="
+                  -D "TEST_VFD:STRING=${vfdname}"
+                  -D "TEST_EXPECT=${resultcode}"
+                  -D "TEST_OUTPUT=${vfdname}-${test}-shared"
+                  -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}-shared"
+                  -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+          )
+          set_tests_properties (VFD-${vfdname}-${test}-shared PROPERTIES
+              ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}-shared"
+              WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}-shared
+          )
+        endif (BUILD_SHARED_LIBS)
       endif (WIN32)
     endforeach (test ${H5_VFD_TESTS})
     set_tests_properties (VFD-${vfdname}-flush2 PROPERTIES DEPENDS VFD-${vfdname}-flush1)
     set_tests_properties (VFD-${vfdname}-flush1 PROPERTIES TIMEOUT 10)
+    set_tests_properties (VFD-${vfdname}-flush2 PROPERTIES TIMEOUT 10)
     set_tests_properties (VFD-${vfdname}-objcopy PROPERTIES TIMEOUT 1000)
     set_tests_properties (VFD-${vfdname}-testhdf5 PROPERTIES TIMEOUT 1200)
     set_tests_properties (VFD-${vfdname}-gheap PROPERTIES TIMEOUT 1200)
     set_tests_properties (VFD-${vfdname}-istore PROPERTIES TIMEOUT 1200)
+    if (BUILD_SHARED_LIBS)
+      set_tests_properties (VFD-${vfdname}-flush2-shared PROPERTIES DEPENDS VFD-${vfdname}-flush1-shared)
+      set_tests_properties (VFD-${vfdname}-flush1-shared PROPERTIES TIMEOUT 10)
+      set_tests_properties (VFD-${vfdname}-flush2-shared PROPERTIES TIMEOUT 10)
+      set_tests_properties (VFD-${vfdname}-objcopy-shared PROPERTIES TIMEOUT 1000)
+      set_tests_properties (VFD-${vfdname}-testhdf5-shared PROPERTIES TIMEOUT 1200)
+      set_tests_properties (VFD-${vfdname}-gheap-shared PROPERTIES TIMEOUT 1200)
+      set_tests_properties (VFD-${vfdname}-istore-shared PROPERTIES TIMEOUT 1200)
+    endif (BUILD_SHARED_LIBS)
     if (HDF5_TEST_FHEAP_VFD)
       add_test (
-        NAME VFD-${vfdname}-fheap 
-        COMMAND "${CMAKE_COMMAND}"
-            -D "TEST_PROGRAM=$<TARGET_FILE:fheap>"
-            -D "TEST_ARGS:STRING="
-            -D "TEST_VFD:STRING=${vfdname}"
-            -D "TEST_EXPECT=${resultcode}"
-            -D "TEST_OUTPUT=${vfdname}-fheap"
-            -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
-            -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+          NAME VFD-${vfdname}-fheap
+          COMMAND "${CMAKE_COMMAND}"
+              -D "TEST_PROGRAM=$<TARGET_FILE:fheap>"
+              -D "TEST_ARGS:STRING="
+              -D "TEST_VFD:STRING=${vfdname}"
+              -D "TEST_EXPECT=${resultcode}"
+              -D "TEST_OUTPUT=${vfdname}-fheap"
+              -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
+              -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
       )
       set_tests_properties (VFD-${vfdname}-fheap PROPERTIES
           TIMEOUT 1800
-          ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
+          ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname};HDF5TestExpress=${HDF_TEST_EXPRESS}"
           WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
       )
+      if (BUILD_SHARED_LIBS)
+        add_test (
+            NAME VFD-${vfdname}-fheap-shared
+            COMMAND "${CMAKE_COMMAND}"
+                -D "TEST_PROGRAM=$<TARGET_FILE:fheap-shared>"
+                -D "TEST_ARGS:STRING="
+                -D "TEST_VFD:STRING=${vfdname}"
+                -D "TEST_EXPECT=${resultcode}"
+                -D "TEST_OUTPUT=${vfdname}-fheap-shared"
+                -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}-shared"
+                -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+        )
+        set_tests_properties (VFD-${vfdname}-fheap-shared PROPERTIES
+          TIMEOUT 1800
+          ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}-shared;HDF5TestExpress=${HDF_TEST_EXPRESS}"
+          WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}-shared
+      )
+      endif (BUILD_SHARED_LIBS)
     endif (HDF5_TEST_FHEAP_VFD)
   ENDMACRO (ADD_VFD_TEST)
-  
+
   # Run test with different Virtual File Driver
   foreach (vfd ${VFD_LIST})
     ADD_VFD_TEST (${vfd} 0)
@@ -665,7 +1096,7 @@ endif (HDF5_TEST_VFD)
 ##############################################################################
 ##############################################################################
 
-if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+if (HDF5_BUILD_GENERATORS)
   MACRO (ADD_H5_GENERATOR genfile)
     add_executable (${genfile} ${HDF5_TEST_SOURCE_DIR}/${genfile}.c)
     TARGET_NAMING (${genfile} STATIC)
@@ -701,4 +1132,4 @@ if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
     ADD_H5_GENERATOR (${gen})
   endforeach (gen ${H5_GENERATORS})
 
-endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+endif (HDF5_BUILD_GENERATORS)
diff --git a/test/H5srcdir.h b/test/H5srcdir.h
index 4f0f439..81624d8 100644
--- a/test/H5srcdir.h
+++ b/test/H5srcdir.h
@@ -32,11 +32,7 @@ static char srcdir_path[1024] = "";
 static char srcdir_testpath[1024] = "";
 
 /* Append the test file name to the srcdir path and return the whole string */
-#ifdef H5_VMS
-static const char *H5_get_srcdir_filename(char *filename)
-#else
 static const char *H5_get_srcdir_filename(const char *filename)
-#endif
 {
     const char *srcdir = HDgetenv("srcdir");
 
@@ -46,19 +42,7 @@ static const char *H5_get_srcdir_filename(const char *filename)
 
     /* Build path to test file */
     if((HDstrlen(srcdir) + HDstrlen(filename) + 2) < sizeof(srcdir_testpath)) {
-#ifdef H5_VMS
-        HDstrcpy(srcdir_testpath, srcdir);
-        if(filename[0] == '[') {
-            char *tmp = filename;
-
-            srcdir_testpath[HDstrlen(srcdir) - 1] = '\0';
-            HDstrcat(srcdir_testpath, ++tmp);
-        } /* end if */
-        else
-            HDstrcat(srcdir_testpath, filename);
-#else
         HDsnprintf(srcdir_testpath, sizeof(srcdir_testpath), "%s/%s", srcdir, filename);
-#endif
         return(srcdir_testpath);
     } /* end if */
     else
diff --git a/test/app_ref.c b/test/app_ref.c
index 611d255..3052df7 100644
--- a/test/app_ref.c
+++ b/test/app_ref.c
@@ -80,7 +80,7 @@ void Abrt_Handler (int sig);
 
 /* Handler for SIGABRT - prints the reference count on each id */
 void
-Abrt_Handler (int UNUSED sig)
+Abrt_Handler (int H5_ATTR_UNUSED sig)
 {
     int i, n;
 
diff --git a/test/cache.c b/test/cache.c
index 26ef80f..df6d805 100644
--- a/test/cache.c
+++ b/test/cache.c
@@ -17994,14 +17994,14 @@ check_check_evictions_enabled_err(void)
 hbool_t rpt_fcn_called = FALSE;
 enum H5C_resize_status rpt_status;
 
-static void test_rpt_fcn(UNUSED H5C_t * cache_ptr,
-                  UNUSED int32_t version,
-                  UNUSED double hit_rate,
+static void test_rpt_fcn(H5_ATTR_UNUSED H5C_t * cache_ptr,
+                  H5_ATTR_UNUSED int32_t version,
+                  H5_ATTR_UNUSED double hit_rate,
                   enum H5C_resize_status status,
-                  UNUSED size_t old_max_cache_size,
-                  UNUSED size_t new_max_cache_size,
-                  UNUSED size_t old_min_clean_size,
-                  UNUSED size_t new_min_clean_size)
+                  H5_ATTR_UNUSED size_t old_max_cache_size,
+                  H5_ATTR_UNUSED size_t new_max_cache_size,
+                  H5_ATTR_UNUSED size_t old_min_clean_size,
+                  H5_ATTR_UNUSED size_t new_min_clean_size)
 {
     rpt_fcn_called = TRUE;
     rpt_status = status;
diff --git a/test/cache_common.c b/test/cache_common.c
index 4077d29..5fe68db 100644
--- a/test/cache_common.c
+++ b/test/cache_common.c
@@ -330,7 +330,7 @@ const H5C_class_t types[NUMBER_OF_ENTRY_TYPES] =
 static herr_t clear(H5F_t * f, void * thing, hbool_t dest);
 static herr_t destroy(H5F_t * f, void * thing);
 static herr_t flush(H5F_t *f, hid_t dxpl_id, hbool_t dest,
-                    haddr_t addr, void *thing, unsigned UNUSED * flags_ptr);
+                    haddr_t addr, void *thing, unsigned H5_ATTR_UNUSED * flags_ptr);
 static void * load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata);
 static herr_t size(H5F_t * f, void * thing, size_t * size_ptr);
 static void execute_flush_op(H5F_t *file_ptr, struct test_entry_t *entry_ptr,
@@ -486,9 +486,9 @@ type_and_index_to_addr(int32_t type,
  */
 
 herr_t
-check_write_permitted(const H5F_t UNUSED * f,
-                      hid_t UNUSED dxpl_id,
-                      hbool_t * write_permitted_ptr)
+check_write_permitted(const H5F_t H5_ATTR_UNUSED *f,
+                      hid_t H5_ATTR_UNUSED dxpl_id,
+                      hbool_t *write_permitted_ptr)
 {
 
     HDassert( write_permitted_ptr );
@@ -639,7 +639,7 @@ variable_clear(H5F_t * f, void *  thing, hbool_t dest)
  */
 
 herr_t
-destroy(H5F_t UNUSED * f,
+destroy(H5F_t H5_ATTR_UNUSED * f,
         void *         thing)
 {
     int i;
@@ -796,11 +796,11 @@ variable_dest(H5F_t * f, void *  thing)
 
 herr_t
 flush(H5F_t *f,
-      hid_t UNUSED dxpl_id,
+      hid_t H5_ATTR_UNUSED dxpl_id,
       hbool_t dest,
       haddr_t
 #ifdef NDEBUG
-          UNUSED
+          H5_ATTR_UNUSED
 #endif /* NDEBUG */
           addr,
       void *thing,
@@ -966,10 +966,10 @@ variable_flush(H5F_t *f, hid_t dxpl_id, hbool_t dest, haddr_t addr,
  */
 
 void *
-load(H5F_t UNUSED *f,
-     hid_t UNUSED dxpl_id,
+load(H5F_t H5_ATTR_UNUSED *f,
+     hid_t H5_ATTR_UNUSED dxpl_id,
      haddr_t addr,
-     void UNUSED *udata)
+     void H5_ATTR_UNUSED *udata)
 {
     int32_t type;
     int32_t idx;
@@ -1090,7 +1090,7 @@ variable_load(H5F_t *f, hid_t dxpl_id, haddr_t addr, void *udata)
  */
 
 herr_t
-size(H5F_t UNUSED *  f,
+size(H5F_t H5_ATTR_UNUSED *  f,
      void *   thing,
      size_t * size_ptr)
 {
diff --git a/test/dsets.c b/test/dsets.c
index cc1fa03..e523680 100644
--- a/test/dsets.c
+++ b/test/dsets.c
@@ -1229,7 +1229,7 @@ const H5Z_class2_t H5Z_BOGUS[1] = {{
  *-------------------------------------------------------------------------
  */
 static htri_t
-can_apply_bogus(hid_t UNUSED dcpl_id, hid_t type_id, hid_t UNUSED space_id)
+can_apply_bogus(hid_t H5_ATTR_UNUSED dcpl_id, hid_t type_id, hid_t H5_ATTR_UNUSED space_id)
 {
     if(H5Tequal(type_id,H5T_NATIVE_DOUBLE))
         return 0;
@@ -1255,9 +1255,9 @@ can_apply_bogus(hid_t UNUSED dcpl_id, hid_t type_id, hid_t UNUSED space_id)
  *-------------------------------------------------------------------------
  */
 static size_t
-filter_bogus(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t nbytes,
-      size_t UNUSED *buf_size, void UNUSED **buf)
+filter_bogus(unsigned int H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
+      size_t H5_ATTR_UNUSED *buf_size, void H5_ATTR_UNUSED **buf)
 {
     return nbytes;
 }
@@ -1279,7 +1279,7 @@ filter_bogus(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
  *-------------------------------------------------------------------------
  */
 static herr_t
-set_local_bogus2(hid_t dcpl_id, hid_t type_id, hid_t UNUSED space_id)
+set_local_bogus2(hid_t dcpl_id, hid_t type_id, hid_t H5_ATTR_UNUSED space_id)
 {
     unsigned add_on=0;      /* Value to add to data going through */
     unsigned flags;         /* Filter flags */
@@ -1386,9 +1386,9 @@ filter_bogus2(unsigned int flags, size_t cd_nelmts,
  *-------------------------------------------------------------------------
  */
 static size_t
-filter_bogus3(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t UNUSED nbytes,
-      size_t UNUSED *buf_size, void UNUSED **buf)
+filter_bogus3(unsigned int H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t H5_ATTR_UNUSED nbytes,
+      size_t H5_ATTR_UNUSED *buf_size, void H5_ATTR_UNUSED **buf)
 {
     return 0;
 }
@@ -1482,8 +1482,8 @@ error:
  *-------------------------------------------------------------------------
  */
 static H5Z_cb_return_t
-filter_cb_cont(H5Z_filter_t filter, void UNUSED *buf, size_t UNUSED buf_size,
-           void UNUSED *op_data)
+filter_cb_cont(H5Z_filter_t filter, void H5_ATTR_UNUSED *buf, size_t H5_ATTR_UNUSED buf_size,
+           void H5_ATTR_UNUSED *op_data)
 {
     if(H5Z_FILTER_FLETCHER32==filter)
        return H5Z_CB_CONT;
@@ -1505,8 +1505,8 @@ filter_cb_cont(H5Z_filter_t filter, void UNUSED *buf, size_t UNUSED buf_size,
  *-------------------------------------------------------------------------
  */
 static H5Z_cb_return_t
-filter_cb_fail(H5Z_filter_t filter, void UNUSED *buf, size_t UNUSED buf_size,
-           void UNUSED *op_data)
+filter_cb_fail(H5Z_filter_t filter, void H5_ATTR_UNUSED *buf, size_t H5_ATTR_UNUSED buf_size,
+           void H5_ATTR_UNUSED *op_data)
 {
     if(H5Z_FILTER_FLETCHER32==filter)
        return H5Z_CB_FAIL;
@@ -2074,7 +2074,7 @@ error:
 static herr_t
 test_filters(hid_t file, hid_t
 #ifndef H5_HAVE_FILTER_SZIP
-UNUSED
+H5_ATTR_UNUSED
 #endif /* H5_HAVE_FILTER_SZIP */
     fapl)
 {
@@ -5413,7 +5413,7 @@ error:
 static herr_t
 test_can_apply_szip(hid_t
 #ifndef H5_HAVE_FILTER_SZIP
-UNUSED
+H5_ATTR_UNUSED
 #endif /* H5_HAVE_FILTER_SZIP */
 file)
 {
@@ -6773,13 +6773,13 @@ error:
 #ifndef H5_NO_DEPRECATED_SYMBOLS
 /* Empty can_apply and set_local callbacks */
 static htri_t
-can_apply_deprec(hid_t UNUSED dcpl_id, hid_t UNUSED type_id, hid_t UNUSED space_id)
+can_apply_deprec(hid_t H5_ATTR_UNUSED dcpl_id, hid_t H5_ATTR_UNUSED type_id, hid_t H5_ATTR_UNUSED space_id)
 {
     return 1;
 }
 
 static herr_t
-set_local_deprec(hid_t UNUSED dcpl_id, hid_t UNUSED type_id, hid_t UNUSED space_id)
+set_local_deprec(hid_t H5_ATTR_UNUSED dcpl_id, hid_t H5_ATTR_UNUSED type_id, hid_t H5_ATTR_UNUSED space_id)
 {
     return(SUCCEED);
 }
@@ -7502,9 +7502,9 @@ static size_t filter_expand_factor_g = 0;
  *-------------------------------------------------------------------------
  */
 static size_t
-filter_expand(unsigned int flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t nbytes,
-      size_t *buf_size, void UNUSED **buf)
+filter_expand(unsigned int flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
+      size_t *buf_size, void H5_ATTR_UNUSED **buf)
 {
     size_t         ret_value = 0;
 
@@ -8960,8 +8960,8 @@ error:
  *-------------------------------------------------------------------------
  */
 static herr_t
-gather_error_cb_fail(const void UNUSED *dst_buf,
-    size_t UNUSED dst_buf_bytes_used, void UNUSED *op_data)
+gather_error_cb_fail(const void H5_ATTR_UNUSED *dst_buf,
+    size_t H5_ATTR_UNUSED dst_buf_bytes_used, void H5_ATTR_UNUSED *op_data)
 {
     return FAIL;
 }
diff --git a/test/dt_arith.c b/test/dt_arith.c
index 8823e24..4337690 100644
--- a/test/dt_arith.c
+++ b/test/dt_arith.c
@@ -58,10 +58,9 @@ const char *FILENAME[] = {
 };
 
 /*
- * Count up or down depending on whether the machine is big endian, little
- * endian, or VAX (OpenVMS).  If local variable `endian' is H5T_ORDER_BE then
- * the result will be I, otherwise the result will be Z-(I+1).  VAX is printed
- * as little endian.
+ * Count up or down depending on whether the machine is big endian or little
+ * endian.  If local variable `endian' is H5T_ORDER_BE then the result will
+ * be I, otherwise the result will be Z-(I+1).
  */
 #define ENDIAN(Z,I,E)	(H5T_ORDER_BE==E?(I):(Z)-((I)+1))
 
@@ -88,11 +87,6 @@ static int skip_overflow_tests_g = 0;
 #define HANDLE_SIGFPE
 #endif
 
-/* OpenVMS doesn't have this feature.  Make sure to disable it*/
-#ifdef H5_VMS
-#undef HANDLE_SIGFPE
-#endif
-
 /*
  * Decide what values of floating-point number we want to test.  They are
  * 1 - normalized; 2 - denormalized; 3 - special.
@@ -415,7 +409,7 @@ static int my_isinf(int endian, unsigned char *val, size_t size,
  *-------------------------------------------------------------------------
  */
 static void
-fpe_handler(int UNUSED signo)
+fpe_handler(int H5_ATTR_UNUSED signo)
 {
     SKIPPED();
     HDputs("    Test skipped due to SIGFPE.");
@@ -488,7 +482,7 @@ reset_hdf5(void)
  *-------------------------------------------------------------------------
  */
 static H5T_conv_ret_t
-except_func(H5T_conv_except_t except_type, hid_t UNUSED src_id, hid_t UNUSED dst_id, void UNUSED *src_buf,
+except_func(H5T_conv_except_t except_type, hid_t H5_ATTR_UNUSED src_id, hid_t H5_ATTR_UNUSED dst_id, void H5_ATTR_UNUSED *src_buf,
 		 void *dst_buf, void *user_data)
 {
     H5T_conv_ret_t      ret = H5T_CONV_HANDLED;
@@ -630,12 +624,7 @@ test_hard_query(void)
         H5_FAILED();
         printf("Can't query conversion function\n");
         goto error;
-    }
-
-
-#ifndef H5_VMS
-    /* Disable this test because the soft conversion functions (H5T__conv_i_f and H5T__conv_f_i) on
-       OpenVMS and are disabled - SLU 2013/8/26 */
+    } /* end if */
 
     /* Unregister the hard conversion from int to float.  Verify the conversion
      * is a soft conversion. */
@@ -644,8 +633,7 @@ test_hard_query(void)
         H5_FAILED();
         printf("Can't query conversion function\n");
         goto error;
-    }
-#endif
+    } /* end if */
 
     /* Register the hard conversion from int to float.  Verify the conversion
      * is a hard conversion. */
@@ -654,7 +642,7 @@ test_hard_query(void)
         H5_FAILED();
         printf("Can't query conversion function\n");
         goto error;
-    }
+    } /* end if */
 
     PASSED();
     reset_hdf5();
@@ -664,7 +652,7 @@ test_hard_query(void)
  error:
     reset_hdf5();
     return 1;
-}
+} /*  end test_hard_query() */
 
 

 /*-------------------------------------------------------------------------
@@ -683,7 +671,7 @@ test_hard_query(void)
  *-------------------------------------------------------------------------
  */
 static H5T_conv_ret_t
-expt_handle(H5T_conv_except_t except_type, hid_t UNUSED src_id, hid_t UNUSED dst_id, void UNUSED *src_buf,
+expt_handle(H5T_conv_except_t except_type, hid_t H5_ATTR_UNUSED src_id, hid_t H5_ATTR_UNUSED dst_id, void H5_ATTR_UNUSED *src_buf,
 		 void *dst_buf, void *user_data)
 {
     signed char         fill_value1 = 7;
@@ -2746,24 +2734,6 @@ my_isnan(dtype_t type, void *val)
 	    retval = 1;
     }
 
-#ifdef H5_VMS
-    /* For "float" and "double" on OpenVMS/Alpha, NaN is
-     * actually a valid value of maximal value.*/
-    if(!retval) {
-	if (FLT_FLOAT==type) {
-	    float x;
-	    HDmemcpy(&x, val, sizeof(float));
-            retval = (x==FLT_MAX || x==-FLT_MAX);
-	} else if (FLT_DOUBLE==type) {
- 	    double x;
-	    HDmemcpy(&x, val, sizeof(double));
-            retval = (x==DBL_MAX || x==-DBL_MAX);
-	} else {
-	    return 0;
-	}
-    }
-#endif /*H5_VMS*/
-
     return retval;
 }
 
@@ -2792,23 +2762,8 @@ my_isinf(int endian, unsigned char *val, size_t size,
 
     bits = (unsigned char*)HDcalloc((size_t)1, size);
 
-#ifdef H5_VMS
-    if(H5T_ORDER_VAX==endian) {
-        for (i = 0; i < size; i += 4) {
-            bits[i] = val[(size-2)-i];
-            bits[i+1] = val[(size-1)-i];
-
-            bits[(size-2)-i] = val[i];
-            bits[(size-1)-i] = val[i+1];
-        }
-    } else {
-        for (i=0; i<size; i++)
-            bits[size-(i+1)] = *(val + ENDIAN(size,i,endian));
-    }
-#else /*H5_VMS*/
     for (i=0; i<size; i++)
         bits[size-(i+1)] = *(val + ENDIAN(size, i, endian));
-#endif /*H5_VMS*/
 
     if(H5T__bit_find(bits, mpos, msize, H5T_BIT_LSB, 1) < 0 &&
             H5T__bit_find(bits, epos, esize, H5T_BIT_LSB, 0) < 0)
@@ -2866,9 +2821,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
     unsigned char	*hw=NULL;		/*ptr to hardware-conv'd*/
     int			underflow;		/*underflow occurred	*/
     int			overflow;		/*overflow occurred	*/
-#ifdef H5_VMS
-    int			maximal;		/*maximal value occurred, for VMS only.	*/
-#endif /* H5_VMS */
     int 		uflow=0;		/*underflow debug counters*/
     size_t		j, k;			/*counters		*/
     int			sendian;		/* source type endianess */
@@ -2919,9 +2871,7 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
      * The remainder of this function is executed only by the child if
      * HANDLE_SIGFPE is defined.
      */
-#ifndef H5_VMS
     HDsignal(SIGFPE,fpe_handler);
-#endif
 
     /* What are the names of the source and destination types */
     if (H5Tequal(src, H5T_NATIVE_FLOAT)) {
@@ -3019,47 +2969,19 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
     switch (run_test) {
         case TEST_NOOP:
         case TEST_NORMAL:
-#ifdef H5_VMS
             if(src_type == FLT_FLOAT) {
                 INIT_FP_NORM(float, FLT_MAX, FLT_MIN, FLT_MAX_10_EXP, FLT_MIN_10_EXP,
                         src_size, dst_size, buf, saved, nelmts);
-            } else if(src_type == FLT_DOUBLE && dst_type == FLT_FLOAT) {
-                /*Temporary solution for VMS.  Cap double values between maximal and minimal
-                 *destination values because VMS return exception when overflows or underflows.
-                 *Same below.*/
-                INIT_FP_NORM(double, FLT_MAX, FLT_MIN, FLT_MAX_10_EXP, FLT_MIN_10_EXP,
-                        src_size, dst_size, buf, saved, nelmts);
             } else if(src_type == FLT_DOUBLE) {
                 INIT_FP_NORM(double, DBL_MAX, DBL_MIN, DBL_MAX_10_EXP, DBL_MIN_10_EXP,
                         src_size, dst_size, buf, saved, nelmts);
 #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE!=0
-            } else if(src_type == FLT_LDOUBLE && dst_type == FLT_FLOAT) {
-                INIT_FP_NORM(long double, FLT_MAX, FLT_MIN, FLT_MAX_10_EXP, FLT_MIN_10_EXP,
-                        src_size, dst_size, buf, saved, nelmts);
-            } else if(src_type == FLT_LDOUBLE && dst_type == FLT_DOUBLE) {
-                INIT_FP_NORM(long double, DBL_MAX, DBL_MIN, DBL_MAX_10_EXP, DBL_MIN_10_EXP,
-                        src_size, dst_size, buf, saved, nelmts);
             } else if(src_type == FLT_LDOUBLE) {
                 INIT_FP_NORM(long double, LDBL_MAX, LDBL_MIN, LDBL_MAX_10_EXP, LDBL_MIN_10_EXP,
                         src_size, dst_size, buf, saved, nelmts);
 #endif
             } else
                 goto error;
-#else /*H5_VMS*/
-            if(src_type == FLT_FLOAT) {
-                INIT_FP_NORM(float, FLT_MAX, FLT_MIN, FLT_MAX_10_EXP, FLT_MIN_10_EXP,
-                        src_size, dst_size, buf, saved, nelmts);
-            } else if(src_type == FLT_DOUBLE) {
-                INIT_FP_NORM(double, DBL_MAX, DBL_MIN, DBL_MAX_10_EXP, DBL_MIN_10_EXP,
-                        src_size, dst_size, buf, saved, nelmts);
-#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE!=0
-            } else if(src_type == FLT_LDOUBLE) {
-                INIT_FP_NORM(long double, LDBL_MAX, LDBL_MIN, LDBL_MAX_10_EXP, LDBL_MIN_10_EXP,
-                        src_size, dst_size, buf, saved, nelmts);
-#endif
-            } else
-                goto error;
-#endif /*H5_VMS*/
 
             break;
         case TEST_DENORM:
@@ -3135,9 +3057,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
                 hw = (unsigned char*)&hw_f;
                 underflow = HDfabs(*((double*)aligned)) < FLT_MIN;
                 overflow = HDfabs(*((double*)aligned)) > FLT_MAX;
-#ifdef H5_VMS
-                maximal = HDfabs(*((double*)aligned)) == FLT_MAX;
-#endif
             } else if (FLT_DOUBLE==dst_type) {
                 hw_d = *((double*)aligned);
                 hw = (unsigned char*)&hw_d;
@@ -3155,17 +3074,11 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
                 hw = (unsigned char*)&hw_f;
                 underflow = HDfabsl(*((long double*)aligned)) < FLT_MIN;
                 overflow = HDfabsl(*((long double*)aligned)) > FLT_MAX;
-#ifdef H5_VMS
-                maximal = HDfabs(*((long double*)aligned)) == FLT_MAX;
-#endif
             } else if (FLT_DOUBLE==dst_type) {
                 hw_d = *((long double*)aligned);
                 hw = (unsigned char*)&hw_d;
                 underflow = HDfabsl(*((long double*)aligned)) < DBL_MIN;
                 overflow = HDfabsl(*((long double*)aligned)) > DBL_MAX;
-#ifdef H5_VMS
-                maximal = HDfabs(*((long double*)aligned)) == DBL_MAX;
-#endif
             } else {
                 hw_ld = *((long double*)aligned);
                 hw = (unsigned char*)&hw_ld;
@@ -3200,17 +3113,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
         if (k==dst_size)
             continue; /*no error*/
 
-#ifdef H5_VMS
-        /* For "float" and "double" on OpenVMS/Alpha, NaN is
-         * a valid value of maximal value.*/
-        if (FLT_FLOAT==src_type &&
-                my_isnan(src_type, saved+j*sizeof(float))) {
-            continue;
-        } else if (FLT_DOUBLE==src_type &&
-                my_isnan(src_type, saved+j*sizeof(double))) {
-            continue;
-        }
-#endif /*H5_VMS*/
 
         /*
          * Assume same if both results are NaN.  There are many NaN bit
@@ -3268,11 +3170,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
                 if (overflow && my_isinf(dendian, buf+j*sizeof(float),
                         dst_size, dst_mpos, dst_msize, dst_epos, dst_esize))
                     continue;	/* all overflowed, no error */
-#ifdef H5_VMS
-                if (maximal && my_isinf(dendian, buf+j*sizeof(float),
-                        dst_size, dst_mpos, dst_msize, dst_epos, dst_esize))
-                    continue;	/* maximal value, no error */
-#endif /*H5_VMS*/
                 check_mant[0] = HDfrexpf(x, check_expo+0);
                 check_mant[1] = HDfrexpf(hw_f, check_expo+1);
             } else if (FLT_DOUBLE==dst_type) {
@@ -3284,11 +3181,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
                 if (overflow && my_isinf(dendian, buf+j*sizeof(double),
                         dst_size, dst_mpos, dst_msize, dst_epos, dst_esize))
                     continue;	/* all overflowed, no error */
-#ifdef H5_VMS
-                if (maximal && my_isinf(dendian, buf+j*sizeof(double),
-                        dst_size, dst_mpos, dst_msize, dst_epos, dst_esize))
-                    continue;	/* maximal value, no error */
-#endif /*H5_VMS*/
                 check_mant[0] = HDfrexp(x, check_expo+0);
                 check_mant[1] = HDfrexp(hw_d, check_expo+1);
 #if H5_SIZEOF_LONG_DOUBLE !=0 && (H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE)
@@ -3300,7 +3192,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
                 check_mant[1] = HDfrexpl(hw_ld, check_expo+1);
 #endif
             }
-#ifdef H5_CONVERT_DENORMAL_FLOAT
             /* Special check for denormalized values */
             if(check_expo[0]<(-(int)dst_ebias) || check_expo[1]<(-(int)dst_ebias)) {
                 int expo_diff=check_expo[0]-check_expo[1];
@@ -3323,58 +3214,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
                         HDfabs(check_mant[0]-check_mant[1])<FP_EPSILON)
                     continue;
             } /* end else */
-#else /* H5_CONVERT_DENORMAL_FLOAT */
-            {
-            hssize_t	expo;			/*exponent			*/
-            uint8_t tmp[32];
-
-            assert(src_size<=sizeof(tmp));
-            if(sendian==H5T_ORDER_LE)
-                HDmemcpy(tmp,&saved[j*src_size],src_size);
-            else if(sendian==H5T_ORDER_BE)
-                for (k=0; k<src_size; k++)
-                    tmp[k]=saved[j*src_size+(src_size-(k+1))];
-            else {
-                for (k = 0; k < src_size; k += 4) {
-                    tmp[k] = saved[j*src_size+(src_size-2)-k];
-                    tmp[k+1] = saved[j*src_size+(src_size-1)-k];
-
-                    tmp[(src_size-2)-k] = saved[j*src_size+k];
-                    tmp[(src_size-1)-k] = saved[j*src_size+k+1];
-                }
-            }
-
-            expo = H5T__bit_get_d(tmp, src_epos, src_esize);
-            if(expo==0)
-                continue;   /* Denormalized floating-point value detected */
-            else {
-                assert(dst_size<=sizeof(tmp));
-                if(sendian==H5T_ORDER_LE)
-                    HDmemcpy(tmp,&buf[j*dst_size],dst_size);
-                else if(sendian==H5T_ORDER_BE)
-                    for (k=0; k<dst_size; k++)
-                        tmp[k]=buf[j*dst_size+(dst_size-(k+1))];
-                else {
-                    for (k = 0; k < src_size; k += 4) {
-                        tmp[k] = buf[j*dst_size+(dst_size-2)-k];
-                        tmp[k+1] = buf[j*dst_size+(dst_size-1)-k];
-
-                        tmp[(dst_size-2)-k] = buf[j*dst_size+k];
-                        tmp[(dst_size-1)-k] = buf[j*dst_size+k+1];
-                    }
-                }
-
-                expo = H5T__bit_get_d(tmp, dst_epos, dst_esize);
-                if(expo==0)
-                    continue;   /* Denormalized floating-point value detected */
-                else {
-                    if (check_expo[0]==check_expo[1] &&
-                            HDfabs(check_mant[0]-check_mant[1])<FP_EPSILON)
-                        continue;
-                } /* end else */
-            } /* end else */
-            }
-#endif /* H5_CONVERT_DENORMAL_FLOAT */
         }
 
         if (0==fails_this_test++) {
@@ -4451,70 +4290,6 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst)
                 }
             }
         }
-/* On some machines (notably the SGI and Solaris 64-bit machines) unsigned long
-* values are not converted to float or double values correctly, they are
-* consistently off by the lowest bit being rounded oppositely to our
-* software conversion routines output.  So, on those machines, we allow
-* the converted value to be +/- 1 from the machine's value.  -QAK
-*/
-#ifndef H5_SW_ULONG_TO_FP_BOTTOM_BIT_WORKS
-        if(dst_size==sizeof(unsigned)) {
-            unsigned tmp_s, tmp_h;
-            HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(unsigned));
-            HDmemcpy(&tmp_h,&hw[0],sizeof(unsigned));
-            if((tmp_s+1)==tmp_h || (tmp_s-1)==tmp_h)
-                continue; /*no error*/
-        } /* end if */
-        else if (dst_size==sizeof(unsigned long)) {
-            unsigned long tmp_s, tmp_h;
-            HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(unsigned long));
-            HDmemcpy(&tmp_h,&hw[0],sizeof(unsigned long));
-            if((tmp_s+1)==tmp_h || (tmp_s-1)==tmp_h)
-                continue; /*no error*/
-        } /* end if */
-        else if (dst_size==sizeof(unsigned long long)) {
-            unsigned long long tmp_s, tmp_h;
-            HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(unsigned long long));
-            HDmemcpy(&tmp_h,&hw[0],sizeof(unsigned long long));
-            if((tmp_s+1)==tmp_h || (tmp_s-1)==tmp_h)
-                continue; /*no error*/
-        } /* end if */
-#endif /* end H5_ULONG_FP_BOTTOM_BIT_WORKS */
-
-/* For PGI compiler on Linux, during conversion from 'float' or 'double' to
-* 'unsigned long long', round-up happens when the fraction of float-point
-* value is greater than 0.5. So we allow the converted value to be off by 1.
-*/
-#ifndef H5_FP_TO_ULLONG_BOTTOM_BIT_WORKS
-        if((src_type==FLT_FLOAT || src_type==FLT_DOUBLE) && dst_type==INT_ULLONG) {
-            unsigned long long tmp_s, tmp_h;
-            HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(unsigned long long));
-            HDmemcpy(&tmp_h,&hw[0],sizeof(unsigned long long));
-            if((tmp_s+1)==tmp_h)
-                continue; /*no error*/
-        }
-#endif /*end H5_FP_TO_ULLONG_BOTTOM_BIT_WORKS*/
-
-
-#ifdef H5_VMS
-        /* OpenVMS converts the value of zero in char or short to negative zero in 
-         * long double.  Make it warning instead of failure. SLU - 2013/9/10
-         */
-	if(dst_type == FLT_LDOUBLE) {
-            long double *ld= buf + j*dst_size;
-	    if(src_type == INT_SCHAR) {
-                char *c = saved + j*src_size;
-                if(*c == 0 && *ld == -0)
-		    H5_WARNING();
-                    goto printing;
-            } else if(src_type == INT_SHORT) {
-                short *s = saved + j*src_size;
-                if(*s == 0 && *ld == -0)
-		    H5_WARNING();
-                    goto printing;
-            }
-        }
-#endif /*H5_VMS*/
 
         /* Print errors */
         if (0==fails_this_test++) {
@@ -5049,7 +4824,6 @@ run_fp_tests(const char *name)
     nerrors += test_conv_flt_1(name, TEST_NORMAL, H5T_NATIVE_LDOUBLE, H5T_NATIVE_DOUBLE);
 #endif
 
-#ifndef H5_VMS
     /*Test denormalized values.  TEST_DENORM indicates denormalized values.*/
     nerrors += test_conv_flt_1(name, TEST_DENORM, H5T_NATIVE_FLOAT, H5T_NATIVE_DOUBLE);
     nerrors += test_conv_flt_1(name, TEST_DENORM, H5T_NATIVE_DOUBLE, H5T_NATIVE_FLOAT);
@@ -5069,7 +4843,6 @@ run_fp_tests(const char *name)
     nerrors += test_conv_flt_1(name, TEST_SPECIAL, H5T_NATIVE_LDOUBLE, H5T_NATIVE_FLOAT);
     nerrors += test_conv_flt_1(name, TEST_SPECIAL, H5T_NATIVE_LDOUBLE, H5T_NATIVE_DOUBLE);
 #endif
-#endif /*H5_VMS*/
 
 done:
     return nerrors;
@@ -5208,14 +4981,9 @@ static int
 run_fp_int_conv(const char *name)
 {
     int		nerrors = 0;
-#ifdef H5_FP_TO_INTEGER_OVERFLOW_WORKS
     int         test_values;
 
-#ifdef H5_VMS
-    test_values = TEST_NORMAL;
-#else
     for(test_values = TEST_NORMAL; test_values <= TEST_SPECIAL; test_values++) {
-#endif /*H5_VMS*/
 
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_SCHAR);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_SCHAR);
@@ -5235,42 +5003,38 @@ run_fp_int_conv(const char *name)
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_UINT);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_UINT);
 
-#if H5_SIZEOF_LONG!=H5_SIZEOF_INT
+#if H5_SIZEOF_LONG != H5_SIZEOF_INT
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_LONG);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_LONG);
 
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_ULONG);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_ULONG);
-#endif
+#endif /* H5_SIZEOF_LONG != H5_SIZEOF_INT */
 
-#if H5_SIZEOF_LONG_LONG!=H5_SIZEOF_LONG
+#if H5_SIZEOF_LONG_LONG != H5_SIZEOF_LONG
         if(!strcmp(name, "hw")) { /* Hardware conversion */
-            /* Windows .NET 2003 doesn't work for hardware conversion of this case.
-             * .NET should define this macro H5_HW_FP_TO_LLONG_NOT_WORKS. */
-#ifndef H5_HW_FP_TO_LLONG_NOT_WORKS
             nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_LLONG);
             nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_LLONG);
-#endif /*H5_HW_FP_TO_LLONG_NOT_WORKS*/
         } else {  /* Software conversion */
             nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_LLONG);
             nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_LLONG);
         }
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_ULLONG);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_ULLONG);
-#endif
+#endif /* H5_SIZEOF_LONG_LONG != H5_SIZEOF_LONG */
 
-#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE
+#if H5_SIZEOF_LONG_DOUBLE != H5_SIZEOF_DOUBLE
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SCHAR);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UCHAR);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SHORT);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_USHORT);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_INT);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UINT);
-#if H5_SIZEOF_LONG!=H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE!=0
+#if H5_SIZEOF_LONG != H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE != 0
 #ifndef H5_LDOUBLE_TO_LONG_SPECIAL
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_LONG);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_ULONG);
-#else
+#else /* H5_LDOUBLE_TO_LONG_SPECIAL */
         {
             char		str[256];		/*string		*/
 
@@ -5278,16 +5042,17 @@ run_fp_int_conv(const char *name)
                     name, "long double", "(unsigned) long");
             printf("%-70s", str);
             SKIPPED();
-#if H5_SIZEOF_LONG_DOUBLE!=0
+#if H5_SIZEOF_LONG_DOUBLE != 0
             HDputs("    Test skipped due to the special algorithm of hardware conversion.");
-#else
+#else /* H5_SIZEOF_LONG_DOUBLE */
             HDputs("    Test skipped due to disabled long double.");
-#endif
+#endif /* H5_SIZEOF_LONG_DOUBLE */
         }
-#endif
-#endif /*H5_SIZEOF_LONG!=H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE!=0 */
+#endif /* H5_LDOUBLE_TO_LONG_SPECIAL */
 
-#if H5_SIZEOF_LONG_LONG!=H5_SIZEOF_LONG && H5_SIZEOF_LONG_DOUBLE!=0
+#endif /*H5_SIZEOF_LONG != H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE != 0 */
+
+#if H5_SIZEOF_LONG_LONG != H5_SIZEOF_LONG && H5_SIZEOF_LONG_DOUBLE != 0
 #ifdef H5_LDOUBLE_TO_LLONG_ACCURATE
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_LLONG);
 #else /*H5_LDOUBLE_TO_LLONG_ACCURATE*/
@@ -5298,11 +5063,11 @@ run_fp_int_conv(const char *name)
                     name, "long double", "long long");
             printf("%-70s", str);
             SKIPPED();
-#if H5_SIZEOF_LONG_DOUBLE!=0
+#if H5_SIZEOF_LONG_DOUBLE != 0
             HDputs("    Test skipped due to hardware conversion error.");
-#else
+#else /* H5_SIZEOF_LONG_DOUBLE != 0 */
             HDputs("    Test skipped due to disabled long double.");
-#endif
+#endif /* H5_SIZEOF_LONG_DOUBLE != 0 */
         }
 #endif /*H5_LDOUBLE_TO_LLONG_ACCURATE*/
 #if defined(H5_LDOUBLE_TO_LLONG_ACCURATE)
@@ -5315,38 +5080,20 @@ run_fp_int_conv(const char *name)
                     name, "long double", "unsigned long long");
             printf("%-70s", str);
             SKIPPED();
-#if H5_SIZEOF_LONG_DOUBLE!=0
+#if H5_SIZEOF_LONG_DOUBLE != 0
             HDputs("    Test skipped due to hardware conversion error.");
-#else
+#else /* H5_SIZEOF_LONG_DOUBLE != 0 */
             HDputs("    Test skipped due to disabled long double.");
-#endif
+#endif /* H5_SIZEOF_LONG_DOUBLE !=0 */
         }
 #endif /*H5_LDOUBLE_TO_LLONG_ACCURATE*/
-#endif
-#endif
-#ifndef H5_VMS
-    } /* end for */
-#endif /* H5_VMS */
-#else /* H5_FP_TO_INTEGER_OVERFLOW_WORKS */
-/* For Cray X1, the compiler generates floating exception when the
- * conversion overflows.  So disable all of the conversions from
- * floating-point numbers to integers.
- */
-    char		str[256];		/*string		*/
 
-    HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions",
-            name, "all floating-point numbers", "all integers");
-    printf("%-70s", str);
-    SKIPPED();
-#if H5_SIZEOF_LONG_DOUBLE!=0
-    HDputs("    Test skipped due to hardware conversion error.");
-#else
-    HDputs("    Test skipped due to disbaled long double.");
-#endif
-#endif /* H5_FP_TO_INTEGER_OVERFLOW_WORKS */
+#endif /* H5_SIZEOF_LONG_LONG != H5_SIZEOF_LONG && H5_SIZEOF_LONG_DOUBLE != 0 */
+#endif /* H5_SIZEOF_LONG_DOUBLE != H5_SIZEOF_DOUBLE */
+    } /* end for */
 
     return nerrors;
-}
+} /* end run_fp_int_conv() */
 
 

 /*-------------------------------------------------------------------------
@@ -5387,23 +5134,16 @@ main(void)
     /* Test H5Tcompiler_conv() for querying hard conversion. */
     nerrors += test_hard_query();
 
-#ifndef H5_VMS
-    /* Disable this test because the soft conversion functions (H5T__conv_i_f and H5T__conv_f_i) on
-       OpenVMS and are disabled - SLU 2013/8/26 */
-
     /* Test user-define, query functions and software conversion
      * for user-defined floating-point types */
     nerrors += test_derived_flt();
-#endif
 
     /* Test user-define, query functions and software conversion
      * for user-defined integer types */
     nerrors += test_derived_integer();
 
-#ifndef H5_VMS
     /* Does floating point overflow generate a SIGFPE? */
     generates_sigfpe();
-#endif
 
     /* Test degenerate cases */
     nerrors += run_fp_tests("noop");
@@ -5437,16 +5177,11 @@ main(void)
     nerrors += test_conv_int_2();
     nerrors += run_integer_tests("soft");
 
-#ifndef H5_VMS
-    /* Disable these tests because the soft conversion functions (H5T__conv_i_f and H5T__conv_f_i) on
-       OpenVMS and are disabled - SLU 2013/8/26 */
-
     /* Test software float-integer conversion functions */
     nerrors += run_fp_int_conv("soft");
 
     /* Test software integer-float conversion functions */
     nerrors += run_int_fp_conv("soft");
-#endif
 
     reset_hdf5();
 
@@ -5458,3 +5193,4 @@ main(void)
     printf("All data type tests passed.\n");
     return 0;
 }
+
diff --git a/test/dtypes.c b/test/dtypes.c
index 9a78ca9..7c2ad7b 100644
--- a/test/dtypes.c
+++ b/test/dtypes.c
@@ -3233,11 +3233,7 @@ test_compound_18(void)
 
     /* Open Generated File */
     /* (generated with gen_bad_compound.c) */
-#ifdef H5_VMS
-    if((file = H5Fopen(TESTFILE, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
-#else
     if((file = H5Fopen(testfile, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
-#endif
 
     /* Try to open the datatype */
     H5E_BEGIN_TRY {
@@ -4814,10 +4810,10 @@ test_bitfield_funcs(void)
  *-------------------------------------------------------------------------
  */
 static herr_t
-convert_opaque(hid_t UNUSED st, hid_t UNUSED dt, H5T_cdata_t *cdata,
-	       size_t UNUSED nelmts, size_t UNUSED buf_stride,
-               size_t UNUSED bkg_stride, void UNUSED *_buf,
-	       void UNUSED *bkg, hid_t UNUSED dset_xfer_plid)
+convert_opaque(hid_t H5_ATTR_UNUSED st, hid_t H5_ATTR_UNUSED dt, H5T_cdata_t *cdata,
+	       size_t H5_ATTR_UNUSED nelmts, size_t H5_ATTR_UNUSED buf_stride,
+               size_t H5_ATTR_UNUSED bkg_stride, void H5_ATTR_UNUSED *_buf,
+	       void H5_ATTR_UNUSED *bkg, hid_t H5_ATTR_UNUSED dset_xfer_plid)
 {
     if (H5T_CONV_CONV==cdata->command) num_opaque_conversions_g++;
     return 0;
@@ -5872,8 +5868,8 @@ typedef struct {
 } except_info_t;
 
 static H5T_conv_ret_t
-conv_except(H5T_conv_except_t except_type, hid_t UNUSED src_id, hid_t UNUSED dst_id,
-    void UNUSED *src_buf, void UNUSED *dst_buf, void *_user_data)
+conv_except(H5T_conv_except_t except_type, hid_t H5_ATTR_UNUSED src_id, hid_t H5_ATTR_UNUSED dst_id,
+    void H5_ATTR_UNUSED *src_buf, void H5_ATTR_UNUSED *dst_buf, void *_user_data)
 {
     except_info_t *user_data = (except_info_t *)_user_data;
 
diff --git a/test/error_test.c b/test/error_test.c
index 0d945d2..e712d86 100644
--- a/test/error_test.c
+++ b/test/error_test.c
@@ -314,7 +314,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static herr_t
-long_desc_cb(unsigned UNUSED n, const H5E_error2_t *err_desc, void *client_data)
+long_desc_cb(unsigned H5_ATTR_UNUSED n, const H5E_error2_t *err_desc, void *client_data)
 {
     char *real_desc  = (char *)client_data;
 
diff --git a/test/fheap.c b/test/fheap.c
index 1a2ac12..4365324 100644
--- a/test/fheap.c
+++ b/test/fheap.c
@@ -1813,7 +1813,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static int
-test_create(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t UNUSED *tparam)
+test_create(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t H5_ATTR_UNUSED *tparam)
 {
     hid_t	file = -1;              /* File ID */
     char	filename[FHEAP_FILENAME_LEN];         /* Filename to use */
@@ -1927,7 +1927,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static int
-test_reopen(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t UNUSED *tparam)
+test_reopen(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t H5_ATTR_UNUSED *tparam)
 {
     hid_t	file = -1;              /* File ID */
     char	filename[FHEAP_FILENAME_LEN];         /* Filename to use */
@@ -2023,7 +2023,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static int
-test_open_twice(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t UNUSED *tparam)
+test_open_twice(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t H5_ATTR_UNUSED *tparam)
 {
     hid_t	file = -1;              /* File ID */
     hid_t	file2 = -1;             /* File ID */
@@ -2157,7 +2157,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static int
-test_delete_open(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t UNUSED *tparam)
+test_delete_open(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t H5_ATTR_UNUSED *tparam)
 {
     hid_t	file = -1;              /* File ID */
     char	filename[FHEAP_FILENAME_LEN];         /* Filename to use */
@@ -15537,9 +15537,9 @@ error:
 /* Custom filter used to verify that the filters are actually called and do not
  * just silently fail */
 static hbool_t test_write_filter_called;
-static size_t test_write_filter(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-    const unsigned int UNUSED cd_values[], size_t nbytes, size_t UNUSED *buf_size,
-    void UNUSED **buf)
+static size_t test_write_filter(unsigned int H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+    const unsigned int H5_ATTR_UNUSED cd_values[], size_t nbytes, size_t H5_ATTR_UNUSED *buf_size,
+    void H5_ATTR_UNUSED **buf)
 {
     test_write_filter_called = TRUE;
 
@@ -16055,9 +16055,7 @@ curr_test = FHEAP_TEST_NORMAL;
         nerrors += test_id_limits(fapl, &small_cparam);
         nerrors += test_filtered_create(fapl, &small_cparam);
         nerrors += test_size(fapl, &small_cparam);
-#ifndef H5_CANNOT_OPEN_TWICE
         nerrors += test_reopen_hdr(fapl, &small_cparam);
-#endif /*H5_CANNOT_OPEN_TWICE*/
 #else /* QAK */
 HDfprintf(stderr, "Uncomment tests!\n");
 #endif /* QAK */
diff --git a/test/fillval.c b/test/fillval.c
index aa8831e..1c90963 100644
--- a/test/fillval.c
+++ b/test/fillval.c
@@ -1301,7 +1301,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static int
-test_extend_release_integer(void UNUSED *_elmt)
+test_extend_release_integer(void H5_ATTR_UNUSED *_elmt)
 {
     return 0;
 } /* end test_extend_release_integer() */
diff --git a/test/filter_fail.c b/test/filter_fail.c
index 3dbb564..0b92abb 100644
--- a/test/filter_fail.c
+++ b/test/filter_fail.c
@@ -65,8 +65,8 @@ const H5Z_class2_t H5Z_FAIL_TEST[1] = {{
  *-------------------------------------------------------------------------
  */
 static size_t
-filter_fail(unsigned int flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t nbytes,
+filter_fail(unsigned int flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
       size_t *buf_size, void **buf)
 {
     int   *dst = (int*)(*buf);
diff --git a/test/flush2.c b/test/flush2.c
index 4f4caf6..c6e4c3a 100644
--- a/test/flush2.c
+++ b/test/flush2.c
@@ -190,8 +190,6 @@ main(void)
 #if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS)
     SKIPPED();
     puts("   DLL will flush the file even when calling _exit, skip this test temporarily");
-#elif defined H5_VMS
-    SKIPPED();
 #else
     H5_FAILED()
     goto error;
@@ -213,8 +211,6 @@ main(void)
 #if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS)
     SKIPPED();
     puts("   DLL will flush the file even when calling _exit, skip this test temporarily");
-#elif defined H5_VMS
-    SKIPPED();
 #else
     H5_FAILED()
     goto error;
diff --git a/test/freespace.c b/test/freespace.c
index 9ab0d75..1338ae7 100644
--- a/test/freespace.c
+++ b/test/freespace.c
@@ -85,8 +85,8 @@ typedef struct TEST_free_section_t {
 
 static herr_t TEST_sect_init_cls(H5FS_section_class_t *, void *);
 static herr_t TEST_sect_free(H5FS_section_info_t *_sect);
-static herr_t TEST_sect_can_merge(const H5FS_section_info_t *, const H5FS_section_info_t *, void UNUSED *);
-static herr_t TEST_sect_merging(H5FS_section_info_t *, H5FS_section_info_t *, void UNUSED *);
+static herr_t TEST_sect_can_merge(const H5FS_section_info_t *, const H5FS_section_info_t *, void H5_ATTR_UNUSED *);
+static herr_t TEST_sect_merging(H5FS_section_info_t *, H5FS_section_info_t *, void H5_ATTR_UNUSED *);
 static herr_t TEST_sect_can_shrink(const H5FS_section_info_t *, void *);
 static herr_t TEST_sect_shrinking(H5FS_section_info_t **, void *);
 
@@ -223,7 +223,7 @@ TEST_sect_init_cls(H5FS_section_class_t *cls, void *_udata)
  */
 static herr_t
 TEST_sect_can_merge(const H5FS_section_info_t *_sect1,
-    const H5FS_section_info_t *_sect2, void UNUSED *_udata)
+    const H5FS_section_info_t *_sect2, void H5_ATTR_UNUSED *_udata)
 {
     const TEST_free_section_t *sect1 = (const TEST_free_section_t *)_sect1;
     const TEST_free_section_t *sect2 = (const TEST_free_section_t *)_sect2;
@@ -246,7 +246,7 @@ TEST_sect_can_merge(const H5FS_section_info_t *_sect1,
  */
 static herr_t
 TEST_sect_merging(H5FS_section_info_t *_sect1, H5FS_section_info_t *_sect2,
-    void UNUSED *_udata)
+    void H5_ATTR_UNUSED *_udata)
 {
     TEST_free_section_t *sect1 = (TEST_free_section_t *)_sect1;
     TEST_free_section_t *sect2 = (TEST_free_section_t *)_sect2;
diff --git a/test/gen_cross.c b/test/gen_cross.c
index 1c73016..2d4b788 100644
--- a/test/gen_cross.c
+++ b/test/gen_cross.c
@@ -22,6 +22,10 @@
  *  Run it on an OpenVMS, a little-endian, and a big-endian machine.  Change the
  *  output file names to vms_data.h5, le_data.h5, and be_data.h5, and put them
  *  under hdf5/test/ directory.
+ *
+ *  Note that we no longer support OpenVMS. The OpenVMS file will eventually
+ *  have to go away since we won't be able to re-create it but it's probably
+ *  worth keeping around for now.
  */
 
 #include <stdio.h>
diff --git a/test/gen_filters.c b/test/gen_filters.c
index b44339d..f506602 100644
--- a/test/gen_filters.c
+++ b/test/gen_filters.c
@@ -123,9 +123,9 @@ const H5Z_class2_t H5Z_BOGUS[1] = {{
  *-------------------------------------------------------------------------
  */
 static size_t
-filter_bogus(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t nbytes,
-      size_t UNUSED *buf_size, void UNUSED **buf)
+filter_bogus(unsigned int H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
+      size_t H5_ATTR_UNUSED *buf_size, void H5_ATTR_UNUSED **buf)
 {
     return nbytes;
 }
diff --git a/test/getname.c b/test/getname.c
index dac115c..c151bda 100644
--- a/test/getname.c
+++ b/test/getname.c
@@ -103,7 +103,11 @@ test_main(hid_t file_id, hid_t fapl)
     hid_t   space_id;
     hid_t   type_id, type2_id;
     hsize_t dims[1] = { 5 };
-    size_t  name_len; /* Name length */
+    size_t  name_len; /* Name length */ 
+    H5O_info_t oinfo;      /* Object info structs */
+    hid_t      dtype;      /* Object identifier for testing */
+    hid_t      dtype_anon; /* Object identifier for testing anonymous */
+    ssize_t    size;       /* Size returned by H5Iget_name */
 
     /* Initialize the file names */
     h5_fixname(FILENAME[1], fapl, filename1, sizeof filename1);
@@ -2355,7 +2359,58 @@ test_main(hid_t file_id, hid_t fapl)
     H5Gclose(group_id);
     H5Gclose(group2_id);
     H5Fclose(file1_id);
-    H5Fclose(file2_id);
+
+    PASSED();
+
+    /*-------------------------------------------------------------------------
+     * Test H5Iget_name with anonymous datatypes
+     *-------------------------------------------------------------------------
+     */
+
+    TESTING("H5Iget_name with anonymous datatypes");
+
+    /* Commit the type anonymously and link it in */
+    if((dtype = H5Tcopy(H5T_NATIVE_INT)) < 0) TEST_ERROR
+    /* Test H5Iget_name with created datatype, should fail because not committed */
+    H5E_BEGIN_TRY {
+      if((size = H5Iget_name(dtype, NULL, 0)) >= 0) TEST_ERROR
+    } H5E_END_TRY;
+
+    if(H5Tcommit_anon(file2_id, dtype, H5P_DEFAULT, H5P_DEFAULT)) TEST_ERROR
+    
+    /* Test H5Iget_name with anonymously created datatype, should pass because committed */
+    if((size = H5Iget_name(dtype, NULL, 0)) != 0) TEST_ERROR
+
+    /* Create a link to the object */
+    if( H5Olink(dtype, file2_id, "datatype", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
+
+    /* Commit a second datatype with no links to it and commit it */
+    if((dtype_anon = H5Tcopy(H5T_NATIVE_INT)) < 0) TEST_ERROR
+    if(H5Tcommit_anon(file2_id, dtype_anon, H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
+
+    /* Test H5Iget_name with anonymously created datatype, should pass because committed */
+    if((size = H5Iget_name(dtype_anon, NULL,0)) != 0) TEST_ERROR
+
+    /* Store the address of the datatype for later use */
+    if(H5Oget_info(dtype_anon, &oinfo) < 0) TEST_ERROR
+
+    /* Update the reference count to dtype_anon to preserve the datatype */
+    if(H5Oincr_refcount(dtype_anon) < 0) TEST_ERROR
+
+    if(H5Tclose(dtype) < 0) TEST_ERROR
+    if(H5Tclose(dtype_anon) < 0) TEST_ERROR
+    if(H5Fclose(file2_id) < 0) TEST_ERROR
+
+    /* Re-open the file and check that the anonymous datatypes persist */
+    if( (file2_id = H5Fopen(filename2, H5F_ACC_RDONLY, fapl)) < 0) TEST_ERROR
+
+    /* Check the H5Iget_name does not return an error for anon committed datatypes */
+    if((dtype_anon = H5Oopen_by_addr(file2_id, oinfo.addr)) < 0) TEST_ERROR
+
+    if((size = H5Iget_name(dtype_anon,NULL,0)) != 0) TEST_ERROR
+
+    if(H5Tclose(dtype_anon) < 0) TEST_ERROR
+    if(H5Fclose(file2_id) < 0) TEST_ERROR
 
     PASSED();
 
@@ -2927,9 +2982,7 @@ main(void)
     nerrors += test_main(file_id, fapl);
     nerrors += test_obj_ref(fapl);
     nerrors += test_reg_ref(fapl);
-#ifndef H5_CANNOT_OPEN_TWICE
     nerrors += test_elinks(fapl);
-#endif /*H5_CANNOT_OPEN_TWICE*/
 
     /* Close file */
     H5Fclose(file_id);
diff --git a/test/h5test.c b/test/h5test.c
index 21aacb5..4d841f1 100644
--- a/test/h5test.c
+++ b/test/h5test.c
@@ -113,7 +113,7 @@ static char * h5_fixname_real(const char *base_name, hid_t fapl, const char *suf
  *-------------------------------------------------------------------------
  */
 static herr_t
-h5_errors(hid_t estack, void UNUSED *client_data)
+h5_errors(hid_t estack, void H5_ATTR_UNUSED *client_data)
 {
     H5_FAILED();
     H5Eprint2(estack, stdout);
@@ -700,21 +700,24 @@ h5_show_hostname(void)
 {
     char  hostname[80];
 #ifdef H5_HAVE_WIN32_API
-     WSADATA wsaData;
-     int err;
+    WSADATA wsaData;
+    int err;
 #endif
 
     /* try show the process or thread id in multiple processes cases*/
 #ifdef H5_HAVE_PARALLEL
     {
-  int mpi_rank, mpi_initialized;
-
-  MPI_Initialized(&mpi_initialized);
-  if (mpi_initialized){
-      MPI_Comm_rank(MPI_COMM_WORLD,&mpi_rank);
-      printf("MPI-process %d.", mpi_rank);
-  }else
-      printf("thread 0.");
+        int mpi_rank, mpi_initialized, mpi_finalized;
+
+        MPI_Initialized(&mpi_initialized);
+        MPI_Finalized(&mpi_finalized);
+
+        if(mpi_initialized && !mpi_finalized) {
+            MPI_Comm_rank(MPI_COMM_WORLD,&mpi_rank);
+            printf("MPI-process %d.", mpi_rank);
+        }
+        else
+            printf("thread 0.");
     }
 #elif defined(H5_HAVE_THREADSAFE)
     printf("thread %lu.", HDpthread_self_ulong());
@@ -723,31 +726,31 @@ h5_show_hostname(void)
 #endif
 #ifdef H5_HAVE_WIN32_API
 
-   err = WSAStartup( MAKEWORD(2,2), &wsaData );
-   if ( err != 0 ) {
-    /* could not find a usable WinSock DLL */
-    return;
-   }
-
-/* Confirm that the WinSock DLL supports 2.2.*/
-/* Note that if the DLL supports versions greater    */
-/* than 2.2 in addition to 2.2, it will still return */
-/* 2.2 in wVersion since that is the version we      */
-/* requested.                                        */
-
-   if ( LOBYTE( wsaData.wVersion ) != 2 ||
-        HIBYTE( wsaData.wVersion ) != 2 ) {
-    /* could not find a usable WinSock DLL */
-     WSACleanup( );
-     return;
-   }
+    err = WSAStartup( MAKEWORD(2,2), &wsaData );
+    if ( err != 0 ) {
+        /* could not find a usable WinSock DLL */
+        return;
+    }
+
+    /* Confirm that the WinSock DLL supports 2.2.*/
+    /* Note that if the DLL supports versions greater    */
+    /* than 2.2 in addition to 2.2, it will still return */
+    /* 2.2 in wVersion since that is the version we      */
+    /* requested.                                        */
+
+    if ( LOBYTE( wsaData.wVersion ) != 2 ||
+         HIBYTE( wsaData.wVersion ) != 2 ) {
+        /* could not find a usable WinSock DLL */
+        WSACleanup( );
+        return;
+    }
 
 #endif
 #ifdef H5_HAVE_GETHOSTNAME
     if (gethostname(hostname, (size_t)80) < 0)
-  printf(" gethostname failed\n");
+        printf(" gethostname failed\n");
     else
-  printf(" hostname=%s\n", hostname);
+        printf(" hostname=%s\n", hostname);
 #else
     printf(" gethostname not supported\n");
 #endif
@@ -1099,61 +1102,62 @@ int h5_szip_can_encode(void )
 char *
 getenv_all(MPI_Comm comm, int root, const char* name)
 {
-    int mpi_size, mpi_rank, mpi_initialized;
+    int mpi_size, mpi_rank, mpi_initialized, mpi_finalized;
     int len;
     static char* env = NULL;
 
     assert(name);
 
     MPI_Initialized(&mpi_initialized);
-    if(!mpi_initialized) {
-  /* use original getenv */
-  if(env)
-      HDfree(env);
-  env = HDgetenv(name);
-    } /* end if */
-    else {
-  MPI_Comm_rank(comm, &mpi_rank);
-  MPI_Comm_size(comm, &mpi_size);
-  assert(root < mpi_size);
-
-  /* The root task does the getenv call
-   * and sends the result to the other tasks */
-  if(mpi_rank == root) {
-      env = HDgetenv(name);
-      if(env) {
-    len = (int)HDstrlen(env);
-    MPI_Bcast(&len, 1, MPI_INT, root, comm);
-    MPI_Bcast(env, len, MPI_CHAR, root, comm);
-      }
-      else {
-    /* len -1 indicates that the variable was not in the environment */
-    len = -1;
-    MPI_Bcast(&len, 1, MPI_INT, root, comm);
-      }
-  }
-  else {
-      MPI_Bcast(&len, 1, MPI_INT, root, comm);
-      if(len >= 0) {
-    if(env == NULL)
-        env = (char*) HDmalloc((size_t)len+1);
-    else if(HDstrlen(env) < (size_t)len)
-        env = (char*) HDrealloc(env, (size_t)len+1);
-
-    MPI_Bcast(env, len, MPI_CHAR, root, comm);
-    env[len] = '\0';
-      }
-      else {
-    if(env)
-        HDfree(env);
-    env = NULL;
-      }
-  }
-    }
-
+    MPI_Finalized(&mpi_finalized);
+
+    if(mpi_initialized && !mpi_finalized) {
+        MPI_Comm_rank(comm, &mpi_rank);
+        MPI_Comm_size(comm, &mpi_size);
+        assert(root < mpi_size);
+
+        /* The root task does the getenv call
+         * and sends the result to the other tasks */
+        if(mpi_rank == root) {
+            env = HDgetenv(name);
+            if(env) {
+                len = (int)HDstrlen(env);
+                MPI_Bcast(&len, 1, MPI_INT, root, comm);
+                MPI_Bcast(env, len, MPI_CHAR, root, comm);
+            }
+            else {
+                /* len -1 indicates that the variable was not in the environment */
+                len = -1;
+                MPI_Bcast(&len, 1, MPI_INT, root, comm);
+            }
+        }
+        else {
+            MPI_Bcast(&len, 1, MPI_INT, root, comm);
+            if(len >= 0) {
+                if(env == NULL)
+                    env = (char*) HDmalloc((size_t)len+1);
+                else if(HDstrlen(env) < (size_t)len)
+                    env = (char*) HDrealloc(env, (size_t)len+1);
+
+                MPI_Bcast(env, len, MPI_CHAR, root, comm);
+                env[len] = '\0';
+            }
+            else {
+                if(env)
+                    HDfree(env);
+                env = NULL;
+            }
+        }
 #ifndef NDEBUG
-    MPI_Barrier(comm);
+        MPI_Barrier(comm);
 #endif
+    }
+    else {
+        /* use original getenv */
+        if(env)
+            HDfree(env);
+        env = HDgetenv(name);
+    } /* end if */
 
     return env;
 }
@@ -1222,8 +1226,8 @@ h5_make_local_copy(const char *origfilename, const char *local_copy_name)
  *-------------------------------------------------------------------------
  */
 static herr_t
-h5_verify_cached_stabs_cb(hid_t oid, const char UNUSED *name,
-    const H5O_info_t *oinfo, void UNUSED *udata)
+h5_verify_cached_stabs_cb(hid_t oid, const char H5_ATTR_UNUSED *name,
+    const H5O_info_t *oinfo, void H5_ATTR_UNUSED *udata)
 {
     if(oinfo->type == H5O_TYPE_GROUP)
         return(H5G__verify_cached_stabs_test(oid));
diff --git a/test/h5test.h b/test/h5test.h
index d31e963..19524a9 100644
--- a/test/h5test.h
+++ b/test/h5test.h
@@ -175,7 +175,7 @@ H5TEST_DLL void ParseTestVerbosity(char *argv);
 H5TEST_DLL int  GetTestNumErrs(void);
 H5TEST_DLL void  IncTestNumErrs(void);
 H5TEST_DLL const void *GetTestParameters(void);
-H5TEST_DLL int  TestErrPrintf(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
+H5TEST_DLL int  TestErrPrintf(const char *format, ...) H5_ATTR_FORMAT(printf, 1, 2);
 H5TEST_DLL void SetTest(const char *testname, int action);
 H5TEST_DLL void TestAlarmOn(void);
 H5TEST_DLL void TestAlarmOff(void);
diff --git a/test/lheap.c b/test/lheap.c
index ab6fb11..81ccc77 100644
--- a/test/lheap.c
+++ b/test/lheap.c
@@ -169,11 +169,7 @@ main(void)
     {
         const char *testfile = H5_get_srcdir_filename(TESTFILE); /* Corrected test file name */
         hid_t dset = -1;
-#ifdef H5_VMS
-        file = H5Fopen(TESTFILE, H5F_ACC_RDONLY, H5P_DEFAULT);
-#else
         file = H5Fopen(testfile, H5F_ACC_RDONLY, H5P_DEFAULT);
-#endif
         if(file >= 0){
             if((dset = H5Dopen2(file, "/Dataset1", H5P_DEFAULT)) < 0)
                 TEST_ERROR
diff --git a/test/links.c b/test/links.c
index f40ead0..b5d7316 100644
--- a/test/links.c
+++ b/test/links.c
@@ -36,13 +36,8 @@
 /* File for external link test.  Created with gen_udlinks.c */
 #define LINKED_FILE  "be_extlink2.h5"
 
-#ifdef H5_VMS
-#define TMPDIR          "[.tmp]"
-#define TMPDIR2         "[.tmp2]"
-#else /* H5_VMS */
 #define TMPDIR          "tmp/"
 #define TMPDIR2         "tmp2/"
-#endif /* H5_VMS */
 
 /* Symlinks for external link symlink test */
 #define SYMLINK1  TMPDIR "sym1.h5"
@@ -320,7 +315,7 @@ typedef struct {
  * Function:    fix_ext_filename
  *
  * Purpose:     Internal function to append path to file name.  It handles
- *              path name of Unix, Windows, and OpenVMS.
+ *              path name of Unix and Windows.
  *
  * Return:      void
  *
@@ -333,17 +328,8 @@ fix_ext_filename(char *path_name, char *cwd, const char *file_name)
 {
     HDstrcpy(path_name, cwd);
 
-#ifdef H5_VMS
-    if(file_name[0] == '[') {
-        char *tmp = file_name;
-        path_name[strlen(cwd)-1] = '\0';
-        HDstrcat(path_name, ++tmp);
-    } else
-        HDstrcat(path_name, file_name);
-#else
     HDstrcat(path_name, "/");
     HDstrcat(path_name, file_name);
-#endif
 }
 
 

@@ -2877,7 +2863,6 @@ external_link_abs_mainpath(hid_t fapl, hbool_t new_format)
      * set up name for main file:
      *	Linux: "/CWD/tmp/extlinks0"
      *  Window: "<cur drive>:/CWD/tmp/extlinks0"
-     *  OpenVMS: "<cur disk>$<partition>:[CWD.tmp]extlinks0"
      */
     fix_ext_filename(tmpname, cwdpath, FILENAME[13]);
     h5_fixname(tmpname, fapl, filename1, sizeof filename1);
@@ -4023,10 +4008,6 @@ external_set_elink_acc_flags(hid_t fapl, hbool_t new_format)
     } H5E_END_TRY;
     if(ret != FAIL) TEST_ERROR
     H5E_BEGIN_TRY {
-        ret = H5Pset_elink_acc_flags(gapl, H5F_ACC_DEBUG);
-    } H5E_END_TRY;
-    if(ret != FAIL) TEST_ERROR
-    H5E_BEGIN_TRY {
         ret = H5Pset_elink_acc_flags(gapl, H5F_ACC_CREAT);
     } H5E_END_TRY;
     if(ret != FAIL) TEST_ERROR
@@ -6964,7 +6945,6 @@ external_file_cache(hid_t fapl, hbool_t new_format)
     /* Verify that all files are now closed */
     H5F_sfile_assert_num(0);
 
-#ifndef H5_CANNOT_OPEN_TWICE
     /*
      * Test 5: 3 file cycle
      */
@@ -7066,7 +7046,6 @@ external_file_cache(hid_t fapl, hbool_t new_format)
 
     /* Verify that all files are now closed */
     H5F_sfile_assert_num(0);
-#endif /* H5_CANNOT_OPEN_TWICE */
 
     /* Close fapl */
     H5Pclose(my_fapl);
@@ -7341,8 +7320,8 @@ error:
 /* Callback functions for UD hard links. */
 /* UD_hard_create increments the object's reference count */
 static herr_t
-UD_hard_create(const char UNUSED * link_name, hid_t loc_group, const void *udata,
-    size_t udata_size, hid_t UNUSED lcpl_id)
+UD_hard_create(const char H5_ATTR_UNUSED * link_name, hid_t loc_group, const void *udata,
+    size_t udata_size, hid_t H5_ATTR_UNUSED lcpl_id)
 {
     haddr_t addr;
     hid_t target_obj = -1;
@@ -7410,8 +7389,8 @@ done:
 
 /* Traverse a hard link by opening the object */
 static hid_t
-UD_hard_traverse(const char UNUSED *link_name, hid_t cur_group,
-    const void *udata, size_t udata_size, hid_t UNUSED lapl_id)
+UD_hard_traverse(const char H5_ATTR_UNUSED *link_name, hid_t cur_group,
+    const void *udata, size_t udata_size, hid_t H5_ATTR_UNUSED lapl_id)
 {
     haddr_t addr;
     hid_t ret_value = -1;
@@ -7428,7 +7407,7 @@ UD_hard_traverse(const char UNUSED *link_name, hid_t cur_group,
 
 /* UD_hard_delete decrements the object's reference count */
 static herr_t
-UD_hard_delete(const char UNUSED * link_name, hid_t file, const void *udata,
+UD_hard_delete(const char H5_ATTR_UNUSED * link_name, hid_t file, const void *udata,
     size_t udata_size)
 {
     haddr_t addr;
@@ -7646,8 +7625,8 @@ ud_hard_links(hid_t fapl)
  * in the current group named REREG_TARGET_NAME
  */
 static hid_t
-UD_rereg_traverse(const char UNUSED * link_name, hid_t cur_group,
-    const void UNUSED *udata, size_t UNUSED udata_size, hid_t lapl_id)
+UD_rereg_traverse(const char H5_ATTR_UNUSED * link_name, hid_t cur_group,
+    const void H5_ATTR_UNUSED *udata, size_t H5_ATTR_UNUSED udata_size, hid_t lapl_id)
 {
     hid_t ret_value;
 
@@ -8085,8 +8064,8 @@ error:
  *-------------------------------------------------------------------------
  */
 static hid_t
-UD_plist_traverse(const char UNUSED * link_name, hid_t cur_group,
-    const void UNUSED *udata, size_t udata_size, hid_t lapl_id)
+UD_plist_traverse(const char H5_ATTR_UNUSED * link_name, hid_t cur_group,
+    const void H5_ATTR_UNUSED *udata, size_t udata_size, hid_t lapl_id)
 {
     char target[NAME_BUF_SIZE];
     hid_t ret_value;
@@ -8224,8 +8203,8 @@ lapl_udata(hid_t fapl, hbool_t new_format)
  *-------------------------------------------------------------------------
  */
 static herr_t
-UD_cbsucc_create(const char UNUSED * link_name, hid_t UNUSED loc_group,
-    const void *udata, size_t udata_size, hid_t UNUSED lcpl_id)
+UD_cbsucc_create(const char H5_ATTR_UNUSED * link_name, hid_t H5_ATTR_UNUSED loc_group,
+    const void *udata, size_t udata_size, hid_t H5_ATTR_UNUSED lcpl_id)
 {
     /* Check to make sure that this "soft link" has a target */
     if(udata_size < 1 || !udata)
@@ -8235,8 +8214,8 @@ UD_cbsucc_create(const char UNUSED * link_name, hid_t UNUSED loc_group,
 } /* end UD_cbsucc_create() */
 
 static hid_t
-UD_cbsucc_traverse(const char UNUSED *link_name, hid_t cur_group,
-    const void *udata, size_t UNUSED udata_size, hid_t lapl_id)
+UD_cbsucc_traverse(const char H5_ATTR_UNUSED *link_name, hid_t cur_group,
+    const void *udata, size_t H5_ATTR_UNUSED udata_size, hid_t lapl_id)
 {
     const char *target = (const char *)udata;
     hid_t ret_value;
@@ -8253,8 +8232,8 @@ error:
 
 /* Failure callback for when the link is moved or renamed */
 static herr_t
-UD_cbfail_move(const char UNUSED *new_name, hid_t UNUSED new_loc,
-    const void UNUSED *udata, size_t UNUSED udata_size)
+UD_cbfail_move(const char H5_ATTR_UNUSED *new_name, hid_t H5_ATTR_UNUSED new_loc,
+    const void H5_ATTR_UNUSED *udata, size_t H5_ATTR_UNUSED udata_size)
 {
     /* This traversal function will always fail. */
     return -1;
@@ -8262,8 +8241,8 @@ UD_cbfail_move(const char UNUSED *new_name, hid_t UNUSED new_loc,
 
 /* SuccessCallback for when the link is moved or renamed */
 static herr_t
-UD_cbsucc_move(const char UNUSED *new_name, hid_t UNUSED new_loc,
-    const void UNUSED *udata, size_t UNUSED udata_size)
+UD_cbsucc_move(const char H5_ATTR_UNUSED *new_name, hid_t H5_ATTR_UNUSED new_loc,
+    const void H5_ATTR_UNUSED *udata, size_t H5_ATTR_UNUSED udata_size)
 {
     /* This traversal function will always succeed. */
     return 0;
@@ -8271,8 +8250,8 @@ UD_cbsucc_move(const char UNUSED *new_name, hid_t UNUSED new_loc,
 
 /* Callback for when the link is deleted.  Also called during move */
 static herr_t
-UD_cbsucc_delete(const char UNUSED *link_name, hid_t UNUSED file,
-    const void UNUSED *udata, size_t UNUSED udata_size)
+UD_cbsucc_delete(const char H5_ATTR_UNUSED *link_name, hid_t H5_ATTR_UNUSED file,
+    const void H5_ATTR_UNUSED *udata, size_t H5_ATTR_UNUSED udata_size)
 {
     /* This callback will always succeed */
     return 0;
@@ -8280,8 +8259,8 @@ UD_cbsucc_delete(const char UNUSED *link_name, hid_t UNUSED file,
 
 /* Callback for when the link is deleted.  Also called during move */
 static herr_t
-UD_cbfail_delete(const char UNUSED *link_name, hid_t UNUSED file,
-    const void UNUSED *udata, size_t UNUSED udata_size)
+UD_cbfail_delete(const char H5_ATTR_UNUSED *link_name, hid_t H5_ATTR_UNUSED file,
+    const void H5_ATTR_UNUSED *udata, size_t H5_ATTR_UNUSED udata_size)
 {
     /* This traversal function will always fail. */
     /* Note: un-deletable links are in general a very bad idea! */
@@ -8290,8 +8269,8 @@ UD_cbfail_delete(const char UNUSED *link_name, hid_t UNUSED file,
 
 /* Callback for when the link is queried */
 static ssize_t
-UD_cbfail_query(const char UNUSED *link_name, const void UNUSED *udata,
-    size_t UNUSED udata_size, void UNUSED *buf, size_t UNUSED buf_size)
+UD_cbfail_query(const char H5_ATTR_UNUSED *link_name, const void H5_ATTR_UNUSED *udata,
+    size_t H5_ATTR_UNUSED udata_size, void H5_ATTR_UNUSED *buf, size_t H5_ATTR_UNUSED buf_size)
 {
     /* This traversal function will always fail. */
     return -1;
@@ -8299,8 +8278,8 @@ UD_cbfail_query(const char UNUSED *link_name, const void UNUSED *udata,
 
 /* Callback for when the link is queried */
 static ssize_t
-UD_cbfail_on_write_query(const char UNUSED *link_name, const void UNUSED *udata,
-    size_t UNUSED udata_size, void *buf, size_t UNUSED buf_size)
+UD_cbfail_on_write_query(const char H5_ATTR_UNUSED *link_name, const void H5_ATTR_UNUSED *udata,
+    size_t H5_ATTR_UNUSED udata_size, void *buf, size_t H5_ATTR_UNUSED buf_size)
 {
     /* This traversal function will return a buffer size,
      * but will fail when a buffer is passed in ("writing to the buffer"
@@ -8315,8 +8294,8 @@ UD_cbfail_on_write_query(const char UNUSED *link_name, const void UNUSED *udata,
 
 /* Callback for when the link is queried */
 static ssize_t
-UD_cbsucc_query(const char UNUSED *link_name, const void UNUSED *udata,
-    size_t UNUSED udata_size, void *buf, size_t buf_size)
+UD_cbsucc_query(const char H5_ATTR_UNUSED *link_name, const void H5_ATTR_UNUSED *udata,
+    size_t H5_ATTR_UNUSED udata_size, void *buf, size_t buf_size)
 {
     /* This traversal function will return a buffer size,
      * but will fail when a buffer is passed in ("writing to the buffer"
@@ -9037,7 +9016,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static int
-visit_link_cb(hid_t UNUSED group_id, const char *name, const H5L_info_t *linfo,
+visit_link_cb(hid_t H5_ATTR_UNUSED group_id, const char *name, const H5L_info_t *linfo,
     void *_op_data)
 {
     lvisit_ud_t *op_data = (lvisit_ud_t *)_op_data;
@@ -9215,7 +9194,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static int
-visit_obj_cb(hid_t UNUSED group_id, const char *name, const H5O_info_t *oinfo,
+visit_obj_cb(hid_t H5_ATTR_UNUSED group_id, const char *name, const H5O_info_t *oinfo,
     void *_op_data)
 {
     ovisit_ud_t *op_data = (ovisit_ud_t *)_op_data;
@@ -9393,7 +9372,7 @@ error:
  *-------------------------------------------------------------------------
  */
 static int
-visit_obj_stop_cb(hid_t UNUSED group_id, const char UNUSED *name, const H5O_info_t UNUSED *oinfo,
+visit_obj_stop_cb(hid_t H5_ATTR_UNUSED group_id, const char H5_ATTR_UNUSED *name, const H5O_info_t H5_ATTR_UNUSED *oinfo,
     void *_op_data)
 {
     unsigned *op_data = (unsigned *)_op_data;
@@ -9519,8 +9498,8 @@ static herr_t link_filter_set_local(hid_t dcpl_id, hid_t type_id, hid_t space_id
 } /* end link_filter_set_local */
 
 static size_t link_filter_filter(unsigned int flags, size_t cd_nelmts,
-    const unsigned int cd_values[], size_t nbytes, size_t UNUSED *buf_size,
-    void UNUSED **buf)
+    const unsigned int cd_values[], size_t nbytes, size_t H5_ATTR_UNUSED *buf_size,
+    void H5_ATTR_UNUSED **buf)
 {
     if(flags & H5Z_FLAG_OPTIONAL || cd_nelmts != 1 || cd_values[0] != 2112)
         return 0;
@@ -12020,8 +11999,8 @@ group_iterate_cb(hid_t group_id, const char *link_name, void *_op_data)
  *-------------------------------------------------------------------------
  */
 static int
-link_iterate_fail_cb(hid_t UNUSED group_id, const char UNUSED *link_name,
-    const H5L_info_t UNUSED *info, void UNUSED *_op_data)
+link_iterate_fail_cb(hid_t H5_ATTR_UNUSED group_id, const char H5_ATTR_UNUSED *link_name,
+    const H5L_info_t H5_ATTR_UNUSED *info, void H5_ATTR_UNUSED *_op_data)
 {
     return(H5_ITER_ERROR);
 } /* end link_iterate_fail_cb() */
@@ -14610,15 +14589,11 @@ main(void)
                 printf("\n---Testing without external file cache---\n");
             } /* end else */
 
-#ifndef H5_CANNOT_OPEN_TWICE
             nerrors += external_link_root(my_fapl, new_format) < 0 ? 1 : 0;
-#endif /* H5_CANNOT_OPEN_TWICE */
             nerrors += external_link_path(my_fapl, new_format) < 0 ? 1 : 0;
-#ifndef H5_CANNOT_OPEN_TWICE
             nerrors += external_link_self(my_fapl, new_format) < 0 ? 1 : 0;
             nerrors += external_link_pingpong(my_fapl, new_format) < 0 ? 1 : 0;
             nerrors += external_link_toomany(my_fapl, new_format) < 0 ? 1 : 0;
-#endif /* H5_CANNOT_OPEN_TWICE */
             nerrors += external_link_dangling(my_fapl, new_format) < 0 ? 1 : 0;
             nerrors += external_link_recursive(my_fapl, new_format) < 0 ? 1 : 0;
             nerrors += external_link_query(my_fapl, new_format) < 0 ? 1 : 0;
@@ -14626,9 +14601,7 @@ main(void)
             nerrors += external_link_unlink_dense(my_fapl, new_format) < 0 ? 1 : 0;
             nerrors += external_link_move(my_fapl, new_format) < 0 ? 1 : 0;
             nerrors += external_link_ride(my_fapl, new_format) < 0 ? 1 : 0;
-#ifndef H5_CANNOT_OPEN_TWICE
             nerrors += external_link_closing(my_fapl, new_format) < 0 ? 1 : 0;
-#endif /* H5_CANNOT_OPEN_TWICE */
             nerrors += external_link_endian(new_format) < 0 ? 1 : 0;
             nerrors += external_link_strong(my_fapl, new_format) < 0 ? 1 : 0;
 
@@ -14658,9 +14631,7 @@ main(void)
             nerrors += external_symlink(env_h5_drvr, my_fapl, new_format) < 0 ? 1 : 0;
             nerrors += external_copy_invalid_object(my_fapl, new_format) < 0 ? 1 : 0;
             nerrors += external_dont_fail_to_source(my_fapl, new_format) < 0 ? 1 : 0;
-#ifndef H5_CANNOT_OPEN_TWICE
             nerrors += external_open_twice(my_fapl, new_format) < 0 ? 1 : 0;
-#endif /* H5_CANNOT_OPEN_TWICE */
         } /* end for */
 
         /* These tests assume that external links are a form of UD links,
@@ -14684,9 +14655,7 @@ main(void)
         nerrors += obj_visit_by_name(my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += obj_visit_stop(my_fapl, new_format) < 0 ? 1 : 0;
         nerrors += link_filters(my_fapl, new_format) < 0 ? 1 : 0;
-#ifndef H5_CANNOT_OPEN_TWICE
         nerrors += obj_exists(my_fapl, new_format) < 0 ? 1 : 0;
-#endif /* H5_CANNOT_OPEN_TWICE */
 
         /* Keep this test last, it's testing files that are used above */
         /* do not do this for files used by external link tests */
diff --git a/test/links_env.c b/test/links_env.c
index 308d562..6e47667 100644
--- a/test/links_env.c
+++ b/test/links_env.c
@@ -25,11 +25,7 @@
 #include "H5Iprivate.h"		/* IDs			  		*/
 #include "H5Lprivate.h"         /* Links                                */
 
-#ifdef H5_VMS
-#define TMPDIR          "[.tmp]"
-#else /* H5_VMS */
 #define TMPDIR          "tmp/"
-#endif /* H5_VMS */
 #define NAME_BUF_SIZE   1024
 
 const char *FILENAME[] = {
diff --git a/test/mf.c b/test/mf.c
index b5d1255..b037fc9 100644
--- a/test/mf.c
+++ b/test/mf.c
@@ -589,12 +589,12 @@ test_mf_eoa_extend(const char *env_h5_drvr, hid_t fapl)
     char		filename[FILENAME_LEN]; 	/* Filename to use */
     H5F_t		*f = NULL;              	/* Internal file object pointer */
     h5_stat_size_t      file_size, new_file_size;  	/* File size */
-    H5FD_mem_t 		type;
+    H5FD_mem_t  type;
     haddr_t		addr;
-    htri_t      	extended;
-    haddr_t 		ma_addr=HADDR_UNDEF, new_ma_addr=HADDR_UNDEF;
-    hsize_t 		ma_size=0, new_ma_size=0;
-    hbool_t             contig_addr_vfd;        /* Whether VFD used has a contigous address space */
+    htri_t      was_extended;
+    haddr_t 	ma_addr=HADDR_UNDEF, new_ma_addr=HADDR_UNDEF;
+    hsize_t 	ma_size=0, new_ma_size=0;
+    hbool_t     contig_addr_vfd;        /* Whether VFD used has a contigous address space */
 
     TESTING("H5MF_try_extend() of file allocation: test 1");
 
@@ -666,9 +666,9 @@ test_mf_eoa_extend(const char *env_h5_drvr, hid_t fapl)
             FAIL_STACK_ERROR
 
         /* should succeed */
-        extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)addr, (hsize_t)TEST_BLOCK_SIZE30, (hsize_t)TEST_BLOCK_SIZE50);
+        was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)addr, (hsize_t)TEST_BLOCK_SIZE30, (hsize_t)TEST_BLOCK_SIZE50);
 
-        if(extended <= 0)
+        if(was_extended <= 0)
             TEST_ERROR
 
         /* nothing should be changed in meta_aggr */
@@ -725,10 +725,10 @@ test_mf_eoa_extend(const char *env_h5_drvr, hid_t fapl)
         if(new_ma_addr != ma_addr)
             TEST_ERROR
 
-        extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)addr, (hsize_t)(TEST_BLOCK_SIZE30-10), (hsize_t)(TEST_BLOCK_SIZE50));
+        was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)addr, (hsize_t)(TEST_BLOCK_SIZE30-10), (hsize_t)(TEST_BLOCK_SIZE50));
 
         /* should not succeed */
-        if(extended > 0)
+        if(was_extended > 0)
             TEST_ERROR
 
         /* nothing should be changed in meta_aggr */
@@ -1435,7 +1435,7 @@ test_mf_fs_extend(hid_t fapl)
     frspace_state_t 	state;          	/* State of free space*/
     H5MF_sect_ud_t 	udata;
     H5FS_section_info_t *node;
-    htri_t      	extended;
+    htri_t      	was_extended;
 
     TESTING("H5MF_try_extend() of free-space manager:test 1");
 
@@ -1529,10 +1529,10 @@ test_mf_fs_extend(hid_t fapl)
         TEST_ERROR
 
     /* Try to extend the allocated block */
-    extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)TEST_BLOCK_ADDR70, (hsize_t)TEST_BLOCK_SIZE30, (hsize_t)TEST_BLOCK_SIZE50);
+    was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)TEST_BLOCK_ADDR70, (hsize_t)TEST_BLOCK_SIZE30, (hsize_t)TEST_BLOCK_SIZE50);
 
     /* should succeed */
-    if(extended <= 0)
+    if(was_extended <= 0)
 	TEST_ERROR
 
     /* Section B is removed from free-space manager */
@@ -1647,10 +1647,10 @@ test_mf_fs_extend(hid_t fapl)
         TEST_ERROR
 
     /* Try to extend the allocated block */
-    extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)TEST_BLOCK_ADDR70, (hsize_t)TEST_BLOCK_SIZE30, (hsize_t)(TEST_BLOCK_SIZE50+10));
+    was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)TEST_BLOCK_ADDR70, (hsize_t)TEST_BLOCK_SIZE30, (hsize_t)(TEST_BLOCK_SIZE50+10));
 
     /* Should not be able to extend the allocated block */
-    if(extended)
+    if(was_extended)
 	TEST_ERROR
 
     /* free-space info should remain the same */
@@ -1760,10 +1760,10 @@ test_mf_fs_extend(hid_t fapl)
         TEST_ERROR
 
     /* Try to extend the allocated block */
-    extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)TEST_BLOCK_ADDR70, (hsize_t)TEST_BLOCK_SIZE30, (hsize_t)(TEST_BLOCK_SIZE40));
+    was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)TEST_BLOCK_ADDR70, (hsize_t)TEST_BLOCK_SIZE30, (hsize_t)(TEST_BLOCK_SIZE40));
 
     /* Should succeed in extending the allocated block */
-    if(extended <=0)
+    if(was_extended <=0)
 	TEST_ERROR
 
     /* Should have 1 section of size=10 left in free-space manager */
@@ -1873,10 +1873,10 @@ test_mf_fs_extend(hid_t fapl)
         TEST_ERROR
 
     /* Try to extend the allocated block */
-    extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)TEST_BLOCK_ADDR70, (hsize_t)(TEST_BLOCK_SIZE30-10), (hsize_t)TEST_BLOCK_SIZE50);
+    was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)TEST_BLOCK_ADDR70, (hsize_t)(TEST_BLOCK_SIZE30-10), (hsize_t)TEST_BLOCK_SIZE50);
 
     /* Should not succeed in extending the allocated block */
-    if(extended)
+    if(was_extended)
 	TEST_ERROR
 
     /* Free-space info should be the same */
@@ -3222,7 +3222,7 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
     haddr_t		new_addr, addr, saddr;
     haddr_t 		ma_addr=HADDR_UNDEF, new_ma_addr=HADDR_UNDEF, sdata_addr=HADDR_UNDEF;
     hsize_t 		ma_size=0, new_ma_size=0, sdata_size=0;
-    htri_t      	extended;
+    htri_t      	was_extended;
     hbool_t             contig_addr_vfd;        /* Whether VFD used has a contigous address space */
 
     TESTING("H5MF_try_extend() of meta/sdata aggregator: test 1");
@@ -3267,10 +3267,10 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
         new_addr = addr - 10;
 
         /* Try to extend the block by an amount < (% * aggr->alloc_size) */
-        extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE50));
+        was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE50));
 
         /* should succeed */
-        if(!extended)
+        if(!was_extended)
             TEST_ERROR
 
         H5MF_aggr_query(f, &(f->shared->meta_aggr), &new_ma_addr, &new_ma_size);
@@ -3283,10 +3283,10 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
         H5MF_xfree(f, type, H5P_DATASET_XFER_DEFAULT, addr, (hsize_t)TEST_BLOCK_SIZE50);
 
         /* Try to extend the block by an amount > (% * aggr->alloc_size) but amount < aggr->alloc_size */
-        extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE700));
+        was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE700));
 
         /* should succeed */
-        if(!extended)
+        if(!was_extended)
             TEST_ERROR
 
         H5MF_aggr_query(f, &(f->shared->meta_aggr), &new_ma_addr, &new_ma_size);
@@ -3299,10 +3299,10 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
         H5MF_xfree(f, type, H5P_DATASET_XFER_DEFAULT, addr, (hsize_t)TEST_BLOCK_SIZE700);
 
         /* Try to extend the block by an amount > (% * aggr->alloc_size) but amount > aggr->alloc_size */
-        extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE2058));
+        was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE2058));
 
         /* should succeed */
-        if(!extended)
+        if(!was_extended)
             TEST_ERROR
 
         H5MF_aggr_query(f, &(f->shared->meta_aggr), &new_ma_addr, &new_ma_size);
@@ -3365,9 +3365,9 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
         new_addr = addr - 10;
 
         /* should be able to fulfill request from the aggreqator itself */
-        extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE50));
+        was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE50));
 
-        if(!extended)
+        if(!was_extended)
             TEST_ERROR
 
         H5MF_aggr_query(f, &(f->shared->meta_aggr), &new_ma_addr, &new_ma_size);
@@ -3435,9 +3435,9 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
         new_addr = addr - 10;
 
         /* unable to fulfill request from the aggreqator itself */
-        extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE50));
+        was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)new_addr, (hsize_t)10, (hsize_t)(TEST_BLOCK_SIZE50));
 
-        if(extended)
+        if(was_extended)
             TEST_ERROR
 
         H5MF_aggr_query(f, &(f->shared->meta_aggr), &new_ma_addr, &new_ma_size);
@@ -3753,7 +3753,7 @@ test_mf_align_eoa(const char *env_h5_drvr, hid_t fapl, hid_t new_fapl)
     haddr_t		addr1, addr2;
     haddr_t 		ma_addr=HADDR_UNDEF;
     hsize_t 		ma_size=0;
-    htri_t 		extended;
+    htri_t 		was_extended;
     frspace_state_t 	state;
     hsize_t		alignment=0, mis_align=0, tmp=0, accum=0;
     hbool_t             have_alloc_vfd;        /* Whether VFD used has an 'alloc' callback */
@@ -3959,9 +3959,9 @@ test_mf_align_eoa(const char *env_h5_drvr, hid_t fapl, hid_t new_fapl)
             FAIL_STACK_ERROR
 
         /* try to extend the block */
-        extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)addr1, (hsize_t)TEST_BLOCK_SIZE50, (hsize_t)TEST_BLOCK_SIZE30);
+        was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)addr1, (hsize_t)TEST_BLOCK_SIZE50, (hsize_t)TEST_BLOCK_SIZE30);
 
-        if (extended <=0) TEST_ERROR
+        if (was_extended <=0) TEST_ERROR
 
         if(H5Fclose(file) < 0)
             FAIL_STACK_ERROR
@@ -4033,7 +4033,7 @@ test_mf_align_fs(const char *env_h5_drvr, hid_t fapl, hid_t new_fapl)
     haddr_t		addr;
     frspace_state_t 	state;
     H5MF_sect_ud_t 	udata;
-    htri_t 		extended;
+    htri_t 		was_extended;
     hsize_t		alignment=0, tmp=0, mis_align=0;
     hbool_t             have_alloc_vfd;        /* Whether VFD used has an 'alloc' callback */
 
@@ -4178,9 +4178,9 @@ test_mf_align_fs(const char *env_h5_drvr, hid_t fapl, hid_t new_fapl)
         TEST_ERROR
 
     /* try to extend the block */
-    extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)addr, (hsize_t)TEST_BLOCK_SIZE600, (hsize_t)TEST_BLOCK_SIZE200);
+    was_extended = H5MF_try_extend(f, H5P_DATASET_XFER_DEFAULT, type, (haddr_t)addr, (hsize_t)TEST_BLOCK_SIZE600, (hsize_t)TEST_BLOCK_SIZE200);
 
-    if (extended <=0) TEST_ERROR
+    if (was_extended <=0) TEST_ERROR
 
     /* space should be decreased by 200, # of sections remain the same */
     state.tot_space -= TEST_BLOCK_SIZE200;
diff --git a/test/objcopy.c b/test/objcopy.c
index d95a05e..19e4a58 100644
--- a/test/objcopy.c
+++ b/test/objcopy.c
@@ -11457,7 +11457,7 @@ error:
  */
 static herr_t
 test_copy_iterate_cb(hid_t loc_id, const char *name,
-    const H5L_info_t UNUSED *link_info, void *op_data)
+    const H5L_info_t H5_ATTR_UNUSED *link_info, void *op_data)
 {
     hid_t dst_loc_id = *((hid_t *)op_data);
 
@@ -12284,9 +12284,7 @@ main(void)
         nerrors += test_copy_group_wide_loop(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
         nerrors += test_copy_group_links(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
         nerrors += test_copy_soft_link(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
-#ifndef H5_CANNOT_OPEN_TWICE
         nerrors += test_copy_ext_link(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
-#endif /* H5_CANNOT_OPEN_TWICE */
         nerrors += test_copy_exist(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
         nerrors += test_copy_path(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
 
diff --git a/test/stab.c b/test/stab.c
index 48b58b1..95e9722 100644
--- a/test/stab.c
+++ b/test/stab.c
@@ -57,8 +57,6 @@ const char *FILENAME[] = {
 /* The group_old.h5 is generated from gen_old_fill.c in HDF5 'test' directory
  * for version 1.6.  To get this data file, simply compile gen_old_group.c with
  * the HDF5 library in that branch and run it. */
-/* I changed the name "group_old.h5.copy" to "group_old_copy.h5" because OpenVMS 
- * doesn't like any file name with more than one ".". SLU 2010/12/13 */ 
 #define FILE_OLD_GROUPS "group_old.h5"
 #define FILE_OLD_GROUPS_COPY "group_old_copy.h5"
 
diff --git a/test/tattr.c b/test/tattr.c
index d533ef6..f29551a 100644
--- a/test/tattr.c
+++ b/test/tattr.c
@@ -1388,7 +1388,7 @@ test_attr_mult_read(hid_t fapl)
 **
 ****************************************************************/
 static herr_t
-attr_op1(hid_t UNUSED loc_id, const char *name, const H5A_info_t UNUSED *ainfo,
+attr_op1(hid_t H5_ATTR_UNUSED loc_id, const char *name, const H5A_info_t H5_ATTR_UNUSED *ainfo,
     void *op_data)
 {
     int *count = (int *)op_data;
@@ -6504,8 +6504,8 @@ attr_iterate1_cb(hid_t loc_id, const char *attr_name, void *_op_data)
  *-------------------------------------------------------------------------
  */
 static int
-attr_iterate2_fail_cb(hid_t UNUSED group_id, const char UNUSED *attr_name,
-    const H5A_info_t UNUSED *info, void UNUSED *_op_data)
+attr_iterate2_fail_cb(hid_t H5_ATTR_UNUSED group_id, const char H5_ATTR_UNUSED *attr_name,
+    const H5A_info_t H5_ATTR_UNUSED *info, void H5_ATTR_UNUSED *_op_data)
 {
     return(H5_ITER_ERROR);
 } /* end attr_iterate2_fail_cb() */
diff --git a/test/tcheck_version.c b/test/tcheck_version.c
index 91d98ef..a75d642 100644
--- a/test/tcheck_version.c
+++ b/test/tcheck_version.c
@@ -36,7 +36,7 @@
 /* prototypes */
 void showhelp(void);
 void parse(int ac, char **av);
-void abort_intercept (int UNUSED sig);
+void abort_intercept (int H5_ATTR_UNUSED sig);
 
 /* global variables */
 unsigned	major = H5_VERS_MAJOR;
@@ -105,7 +105,7 @@ parse(int ac, char **av)
  * This tries to eliminate those side effects.
  */
 void
-abort_intercept (int UNUSED sig)
+abort_intercept (int H5_ATTR_UNUSED sig)
 {
     HDexit(6);
 }
diff --git a/test/tconfig.c b/test/tconfig.c
index f3ac242..14c863e 100644
--- a/test/tconfig.c
+++ b/test/tconfig.c
@@ -60,13 +60,6 @@ void test_exit_definitions(void);
  * Programmer:	Albert Cheng
  *              September 25, 2001
  *
- * Modifications:
- *              Raymond Lu
- *              16 Dec 2009
- *              On Boeing's OpenVMS, the value of EXIT_FAILURE is 268435458.
- *              (The test is in test_exit_definitions.)  Their document says
- *              it's supposed to be 2.  I commented it out for OpenVMS for
- *              further consideration.
  *-------------------------------------------------------------------------
  */
 void
@@ -75,9 +68,7 @@ test_configure(void)
     /* Output message about test being performed */
     MESSAGE(5, ("Testing configure definitions\n"));
     test_config_ctypes();
-#ifndef H5_VMS
     test_exit_definitions();
-#endif
 }
 
 

diff --git a/test/tfile.c b/test/tfile.c
index 736fe42..2e24791 100644
--- a/test/tfile.c
+++ b/test/tfile.c
@@ -152,19 +152,15 @@ test_file_create(void)
      * try to create the same file with H5F_ACC_TRUNC. This should fail
      * because fid1 is the same file and is currently open.
      */
-#ifndef H5_HAVE_FILE_VERSIONS
     fid2 = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
     VERIFY(fid2, FAIL, "H5Fcreate");
-#endif /*H5_DONT_HAVE_FILE_VERSIONS*/
 
     /* Close all files */
     ret = H5Fclose(fid1);
     CHECK(ret, FAIL, "H5Fclose");
 
-#ifndef H5_HAVE_FILE_VERSIONS
     ret = H5Fclose(fid2);
     VERIFY(ret, FAIL, "H5Fclose"); /*file should not have been open */
-#endif /*H5_HAVE_FILE_VERSIONS*/
 
     /*
      * Try again with H5F_ACC_EXCL. This should fail because the file already
@@ -177,7 +173,6 @@ test_file_create(void)
     fid1 = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
     CHECK(fid1, FAIL, "H5Fcreate");
 
-#ifndef H5_HAVE_FILE_VERSIONS
     /*
      * Try to truncate first file again. This should fail because fid1 is the
      * same file and is currently open.
@@ -191,7 +186,6 @@ test_file_create(void)
      */
     fid2 = H5Fcreate(FILE1, H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);
     VERIFY(fid2, FAIL, "H5Fcreate");
-#endif /*H5_HAVE_FILE_VERSIONS*/
 
     /* Get the file-creation template */
     tmpl1 = H5Fget_create_plist(fid1);
@@ -1341,7 +1335,6 @@ test_file_perm(void)
     ret = H5Dclose(dset);
     CHECK(ret, FAIL, "H5Dclose");
 
-#ifndef H5_CANNOT_OPEN_TWICE
     /* Open the file (with read-only permission) */
     filero = H5Fopen(FILE2, H5F_ACC_RDONLY, H5P_DEFAULT);
     CHECK(filero, FAIL, "H5Fopen");
@@ -1358,7 +1351,6 @@ test_file_perm(void)
 
     ret = H5Fclose(filero);
     CHECK(ret, FAIL, "H5Fclose");
-#endif /*H5_CANNOT_OPEN_TWICE*/
 
     ret = H5Fclose(file);
     CHECK(ret, FAIL, "H5Fclose");
@@ -2335,7 +2327,7 @@ test_rw_noupdate(void)
     /* Check That Timestamps Are Equal */
     if(diff > 0.0F) {
         /* Output message about test being performed */
-        MESSAGE(1, ("Testing to verify that nothing is written if nothing is changed: This test is skipped on this system because the modification time from stat is the same as the last access time (We know OpenVMS behaves in this way).\n"));
+        MESSAGE(1, ("Testing to verify that nothing is written if nothing is changed: This test is skipped on this system because the modification time from stat is the same as the last access time.\n"));
     } /* end if */
     else {
         hid_t file_id;      /* HDF5 File ID */
@@ -2965,16 +2957,12 @@ test_file(void)
     test_file_freespace();      /* Test file free space information */
     test_file_ishdf5();         /* Test detecting HDF5 files correctly */
     test_file_open_dot();       /* Test opening objects with "." for a name */
-#ifndef H5_CANNOT_OPEN_TWICE
     test_file_open_overlap();   /* Test opening files in an overlapping manner */
-#endif /*H5_CANNOT_OPEN_TWICE*/
     test_file_getname();        /* Test basic H5Fget_name() functionality */
-#ifndef H5_CANNOT_OPEN_TWICE
     test_file_double_root_open();       /* Test opening root group from two files works properly */
     test_file_double_group_open();      /* Test opening same group from two files works properly */
     test_file_double_dataset_open();    /* Test opening same dataset from two files works properly */
     test_file_double_datatype_open();   /* Test opening same named datatype from two files works properly */
-#endif /*H5_CANNOT_OPEN_TWICE*/
     test_userblock_file_size(); /* Tests that files created with a userblock have the correct size */
     test_cached_stab_info();    /* Tests that files are created with cached stab info in the superblock */
     test_rw_noupdate();         /* Test to ensure that RW permissions don't write the file unless dirtied */
diff --git a/test/tgenprop.c b/test/tgenprop.c
index d147099..9e97bec 100644
--- a/test/tgenprop.c
+++ b/test/tgenprop.c
@@ -385,7 +385,7 @@ test_genprop_cls_crt_cb1(hid_t list_id, void *create_data)
 }
 
 static herr_t
-test_genprop_cls_cpy_cb1(hid_t new_list_id, hid_t UNUSED old_list_id, void *copy_data)
+test_genprop_cls_cpy_cb1(hid_t new_list_id, hid_t H5_ATTR_UNUSED old_list_id, void *copy_data)
 {
     struct {                /* Struct for iterations */
         int count;
@@ -993,7 +993,7 @@ prop_cb_info prop3_cb_info;     /* Callback statistics for property #3 */
 **
 ****************************************************************/
 static herr_t
-test_genprop_cls_cpy_cb2(hid_t new_list_id, hid_t UNUSED old_list_id, void *create_data)
+test_genprop_cls_cpy_cb2(hid_t new_list_id, hid_t H5_ATTR_UNUSED old_list_id, void *create_data)
 {
     struct {                /* Struct for iterations */
         int count;
diff --git a/test/th5o.c b/test/th5o.c
index a470f4c..40844fa 100644
--- a/test/th5o.c
+++ b/test/th5o.c
@@ -669,7 +669,7 @@ test_h5o_plist(void)
     gcpl = H5Gget_create_plist(grp);
     CHECK(gcpl, FAIL, "H5Gget_create_plist");
     tcpl = H5Tget_create_plist(dtype);
-    CHECK(dcpl, FAIL, "H5Tget_create_plist");
+    CHECK(tcpl, FAIL, "H5Tget_create_plist");
     dcpl = H5Dget_create_plist(dset);
     CHECK(dcpl, FAIL, "H5Dget_create_plist");
 
@@ -719,7 +719,7 @@ test_h5o_plist(void)
     gcpl = H5Gget_create_plist(grp);
     CHECK(gcpl, FAIL, "H5Gget_create_plist");
     tcpl = H5Tget_create_plist(dtype);
-    CHECK(dcpl, FAIL, "H5Tget_create_plist");
+    CHECK(tcpl, FAIL, "H5Tget_create_plist");
     dcpl = H5Dget_create_plist(dset);
     CHECK(dcpl, FAIL, "H5Dget_create_plist");
 
@@ -1355,9 +1355,7 @@ test_h5o(void)
     test_h5o_link();            /* Test object link routine */
     test_h5o_comment();         /* Test routines for comment */
     test_h5o_comment_by_name(); /* Test routines for comment by name */
-#ifndef  H5_CANNOT_OPEN_TWICE   /* OpenVMS can't open a file twice */
     test_h5o_getinfo_same_file(); /* Test info for objects in the same file */
-#endif /* H5_CANNOT_OPEN_TWICE */
 } /* test_h5o() */
 
 

diff --git a/test/th5s.c b/test/th5s.c
index f2d2693..dcee25f 100644
--- a/test/th5s.c
+++ b/test/th5s.c
@@ -2331,6 +2331,48 @@ test_h5s_extent_copy(void)
 
 /****************************************************************
 **
+**  test_h5s_bug1(): Test Creating dataspace with H5Screate then
+*                    setting extent with H5Sextent_copy.
+**
+****************************************************************/
+static void
+test_h5s_bug1(void)
+{
+    hid_t space1;               /* Dataspace to copy extent to */
+    hid_t space2;               /* Scalar dataspace */
+    hsize_t dims[2] = {10, 10}; /* Dimensions */
+    hsize_t start[2] = {0, 0};  /* Hyperslab start */
+    htri_t select_valid;        /* Whether the dataspace selection is valid */
+    herr_t ret;                 /* Generic error return */
+
+    /* Create dataspaces */
+    space1 = H5Screate(H5S_SIMPLE);
+    CHECK(space1, FAIL, "H5Screate");
+    space2 = H5Screate_simple(2, dims, NULL);
+    CHECK(space2, FAIL, "H5Screate");
+
+    /* Copy extent to space1 */
+    ret = H5Sextent_copy(space1, space2);
+    CHECK(ret, FAIL, "H5Sextent_copy");
+
+    /* Select hyperslab in space1 containing entire extent */
+    ret = H5Sselect_hyperslab(space1, H5S_SELECT_SET, start, NULL, dims, NULL);
+    CHECK(ret, FAIL, "H5Sselect_hyperslab");
+
+    /* Check that space1's selection is valid */
+    select_valid = H5Sselect_valid(space1);
+    CHECK(select_valid, FAIL, "H5Sselect_valid");
+    VERIFY(select_valid, TRUE, "H5Sselect_valid result");
+
+    /* Close dataspaces */
+    ret = H5Sclose(space1);
+    CHECK(ret, FAIL, "H5Sclose");
+    ret = H5Sclose(space2);
+    CHECK(ret, FAIL, "H5Sclose");
+} /* test_h5s_bug1() */
+
+/****************************************************************
+**
 **  test_h5s(): Main H5S (dataspace) testing routine.
 **
 ****************************************************************/
@@ -2355,6 +2397,7 @@ test_h5s(void)
 
     test_h5s_extent_equal();	/* Test extent comparison code */
     test_h5s_extent_copy();     /* Test extent copy code */
+    test_h5s_bug1();            /* Test bug in offset initialization */
 } /* test_h5s() */
 
 

diff --git a/test/tid.c b/test/tid.c
index cd8e64a..087d9f3 100644
--- a/test/tid.c
+++ b/test/tid.c
@@ -239,7 +239,7 @@ out:
 
 
 	/* A dummy search function for the next test */
-static int test_search_func(void UNUSED * ptr1, void UNUSED * ptr2) { return 0; }
+static int test_search_func(void H5_ATTR_UNUSED * ptr1, void H5_ATTR_UNUSED * ptr2) { return 0; }
 
 	/* Ensure that public functions cannot access "predefined" ID types */
 static int id_predefined_test(void )
@@ -663,12 +663,211 @@ out:
     return(-1);
 }
 
+    /* Test removing ids in callback for H5Iclear_type */
+
+/* There was a rare bug where, if an id free callback being called by
+ * H5I_clear_type() removed another id in that type, a segfault could occur.
+ * This test tests for that error (and freeing ids "out of order" within
+ * H5Iclear_type() in general). */
+/* Macro definitions */
+#define TEST_RCT_MAX_NOBJS 25
+#define TEST_RCT_MIN_NOBJS 5
+#define TEST_RCT_NITER 50
+
+/* Structure to hold the list of objects */
+typedef struct {
+    struct test_rct_obj_t *list; /* List of objects */
+    long nobjs;                 /* Number of objects in list */
+    long nobjs_rem;             /* Number of objects in list that have not been freed */
+} test_rct_list_t;
+
+/* Structure for an object */
+typedef struct test_rct_obj_t {
+    hid_t id;                   /* ID for this object */
+    int nfrees;                 /* Number of times this object has been freed */
+    hbool_t freeing;            /* Whether we are currently freeing this object directly (through H5Idec_ref()) */
+    test_rct_list_t *obj_list;  /* List of all objects */
+} test_rct_obj_t;
+
+/* Free callback */
+static herr_t test_rct_free(void *_obj) {
+    test_rct_obj_t *obj = (test_rct_obj_t *)_obj;
+    long rem_idx, i;
+    herr_t  ret;        /* return value */
+
+    /* Mark this object as freed */
+    obj->nfrees++;
+    obj->obj_list->nobjs_rem--;
+
+    /* Check freeing and nobjs_rem */
+    if(!obj->freeing && (obj->obj_list->nobjs_rem > 0)) {
+        /* Remove a random object from the list */
+        rem_idx = HDrandom() % obj->obj_list->nobjs_rem;
+
+        /* Scan the list, finding the rem_idx'th object that has not been
+         * freed */
+        for(i = 0; i < obj->obj_list->nobjs; i++)
+            if(obj->obj_list->list[i].nfrees == 0) {
+                if(rem_idx == 0)
+                    break;
+                else
+                    rem_idx--;
+            } /* end if */
+        if(i == obj->obj_list->nobjs) {
+            ERROR("invalid obj_list");
+            goto out;
+        } /* end if */
+        else {
+            /* Remove the object.  Mark as "freeing" so its own callback does
+             * not free another object. */
+            obj->obj_list->list[i].freeing = TRUE;
+            ret = H5Idec_ref(obj->obj_list->list[i].id);
+            CHECK(ret, FAIL, "H5Idec_ref");
+            if(ret == FAIL)
+                goto out;
+            obj->obj_list->list[i].freeing = FALSE;
+        } /* end else */
+    } /* end if */
+
+    /* Verify nobjs_rem is non-negative */
+    if(obj->obj_list->nobjs_rem < 0) {
+        ERROR("invalid nobjs_rem");
+        goto out;
+    } /* end if */
+
+    return 0;
+
+out:
+    return -1;
+} /* end test_rct_free() */
+
+/* Test function */
+static int test_remove_clear_type(void)
+{
+    H5I_type_t obj_type;
+    test_rct_list_t obj_list;
+    test_rct_obj_t list[TEST_RCT_MAX_NOBJS];
+    long i, j;
+    long nobjs_found;
+    hsize_t nmembers;
+    herr_t  ret;        /* return value */
+
+    /* Register type */
+    obj_type = H5Iregister_type((size_t)8, 0, test_rct_free);
+    CHECK(obj_type, H5I_BADID, "H5Iregister_type");
+    if(obj_type == H5I_BADID)
+        goto out;
+
+    /* Init obj_list.list */
+    obj_list.list = list;
+
+    for(i = 0; i < TEST_RCT_NITER; i++) {
+        /* Build object list */
+        obj_list.nobjs = obj_list.nobjs_rem = TEST_RCT_MIN_NOBJS + (HDrandom() % (long)(TEST_RCT_MAX_NOBJS - TEST_RCT_MIN_NOBJS + 1));
+        for(j = 0; j < obj_list.nobjs; j++) {
+            list[j].nfrees = 0;
+            list[j].freeing = FALSE;
+            list[j].obj_list = &obj_list;
+            list[j].id = H5Iregister(obj_type, &list[j]);
+            CHECK(list[j].id, FAIL, "H5Iregister");
+            if(list[j].id == FAIL)
+                goto out;
+            if(HDrandom() % 2) {
+                ret = H5Iinc_ref(list[j].id);
+                CHECK(ret, FAIL, "H5Iinc_ref");
+                if(ret == FAIL)
+                    goto out;
+            } /* end if */
+        } /* end for */
+
+        /* Clear the type */
+        ret = H5Iclear_type(obj_type, FALSE);
+        CHECK(ret, FAIL, "H5Iclear_type");
+        if(ret == FAIL)
+            goto out;
+
+        /* Verify list */
+        nobjs_found = 0;
+        for(j = 0; j < obj_list.nobjs; j++) {
+            if(list[j].nfrees == 0)
+                nobjs_found++;
+            else {
+                VERIFY(list[j].nfrees, (long)1, "list[j].nfrees");
+                if(list[j].nfrees != (long)1)
+                    goto out;
+            } /* end else */
+            VERIFY(list[j].freeing, FALSE, "list[j].freeing");
+            if(list[j].freeing != FALSE)
+                goto out;
+        } /* end for */
+
+        /* Verify number of objects */
+        VERIFY(obj_list.nobjs_rem, nobjs_found, "obj_list.nobjs_rem");
+        if(obj_list.nobjs_rem != nobjs_found)
+            goto out;
+        ret = H5Inmembers(obj_type, &nmembers);
+        CHECK(ret, FAIL, "H5Inmembers");
+        if(ret == FAIL)
+            goto out;
+        VERIFY(nmembers, (size_t)nobjs_found, "H5Inmembers");
+        if(nmembers != (size_t)nobjs_found)
+            goto out;
+
+        /* Clear the type with force set to TRUE */
+        ret = H5Iclear_type(obj_type, TRUE);
+        CHECK(ret, FAIL, "H5Iclear_type");
+        if(ret == FAIL)
+            goto out;
+
+        /* Verify list */
+        for(j = 0; j < obj_list.nobjs; j++) {
+            VERIFY(list[j].nfrees, (long)1, "list[j].nfrees");
+            if(list[j].nfrees != (long)1)
+                goto out;
+            VERIFY(list[j].freeing, FALSE, "list[j].freeing");
+            if(list[j].freeing != FALSE)
+                goto out;
+        } /* end for */
+
+        /* Verify number of objects is 0 */
+        VERIFY(obj_list.nobjs_rem, (long)0, "obj_list.nobjs_rem");
+        if(obj_list.nobjs_rem != (long)0)
+            goto out;
+        ret = H5Inmembers(obj_type, &nmembers);
+        CHECK(ret, FAIL, "H5Inmembers");
+        if(ret == FAIL)
+            goto out;
+        VERIFY(nmembers, (size_t)0, "H5Inmembers");
+        if(nmembers != (size_t)0)
+            goto out;
+    } /* end for */
+
+    /* Destroy type */
+    ret = H5Idestroy_type(obj_type);
+    CHECK(ret, FAIL, "H5Idestroy_type");
+    if(ret == FAIL)
+        goto out;
+
+    return 0;
+
+out:
+    /* Cleanup.  For simplicity, just destroy the types and ignore errors. */
+    H5E_BEGIN_TRY
+        H5Idestroy_type(obj_type);
+    H5E_END_TRY
+    return -1;
+} /* end test_remove_clear_type() */
+
 void test_ids(void)
 {
+    /* Set the random # seed */
+    HDsrandom((unsigned)HDtime(NULL));
+
 	if (basic_id_test() < 0) TestErrPrintf("Basic ID test failed\n");
 	if (id_predefined_test() < 0) TestErrPrintf("Predefined ID type test failed\n");
 	if (test_is_valid() < 0) TestErrPrintf("H5Iis_valid test failed\n");
 	if (test_get_type() < 0) TestErrPrintf("H5Iget_type test failed\n");
 	if (test_id_type_list() < 0) TestErrPrintf("ID type list test failed\n");
 	if (test_id_wrap() < 0) TestErrPrintf("ID wraparound test failed\n");
+	if (test_remove_clear_type() < 0) TestErrPrintf("ID remove during H5Iclear_type test failed\n");
 }
diff --git a/test/titerate.c b/test/titerate.c
index 049e258..fff13f1 100644
--- a/test/titerate.c
+++ b/test/titerate.c
@@ -83,7 +83,7 @@ int iter_strcmp(const void *s1, const void *s2)
 **
 ****************************************************************/
 static herr_t
-liter_cb(hid_t UNUSED group, const char *name, const H5L_info_t UNUSED *link_info,
+liter_cb(hid_t H5_ATTR_UNUSED group, const char *name, const H5L_info_t H5_ATTR_UNUSED *link_info,
     void *op_data)
 {
     iter_info *info = (iter_info *)op_data;
@@ -344,7 +344,7 @@ test_iter_group(hid_t fapl, hbool_t new_format)
 **
 ****************************************************************/
 herr_t
-aiter_cb(hid_t UNUSED group, const char *name, const H5A_info_t UNUSED *ainfo,
+aiter_cb(hid_t H5_ATTR_UNUSED group, const char *name, const H5A_info_t H5_ATTR_UNUSED *ainfo,
     void *op_data)
 {
     iter_info *info = (iter_info *)op_data;
@@ -538,7 +538,7 @@ int iter_strcmp2(const void *s1, const void *s2)
 **
 ****************************************************************/
 static herr_t
-liter_cb2(hid_t loc_id, const char *name, const H5L_info_t UNUSED *link_info,
+liter_cb2(hid_t loc_id, const char *name, const H5L_info_t H5_ATTR_UNUSED *link_info,
     void *opdata)
 {
     const iter_info *test_info = (const iter_info *)opdata;
diff --git a/test/tmisc.c b/test/tmisc.c
index d606438..5b4bdb3 100644
--- a/test/tmisc.c
+++ b/test/tmisc.c
@@ -5181,8 +5181,8 @@ test_misc29(void)
 
 
 static int
-test_misc30_get_info_cb(hid_t loc_id, const char *name, const H5L_info_t UNUSED *info,
-    void UNUSED *op_data)
+test_misc30_get_info_cb(hid_t loc_id, const char *name, const H5L_info_t H5_ATTR_UNUSED *info,
+    void H5_ATTR_UNUSED *op_data)
 {
     H5O_info_t object_info;
 
diff --git a/test/trefer.c b/test/trefer.c
index 6223029..93c7dd4 100644
--- a/test/trefer.c
+++ b/test/trefer.c
@@ -493,7 +493,7 @@ test_reference_region(void)
     hsize_t	high[SPACE2_RANK];	/* Selection bounds */
     hdset_reg_ref_t      *wbuf,		/* buffer to write to disk */
                *rbuf;       /* buffer read from disk */
-    hdset_reg_ref_t  nvrbuf[3]={{0},{101},{1000000000}}; /* buffer with non-valid refs */
+    hdset_reg_ref_t  nvrbuf[3]={{0},{101},{255}}; /* buffer with non-valid refs */
     uint8_t    *dwbuf,      /* Buffer for writing numeric data to disk */
                *drbuf;      /* Buffer for reading numeric data from disk */
     uint8_t    *tu8;        /* Temporary pointer to uint8 data */
@@ -716,7 +716,7 @@ test_reference_region(void)
     VERIFY(ret, 36, "H5Sget_select_npoints");
     ret = (int)H5Sget_select_hyper_nblocks(sid2);
     VERIFY(ret, 1, "H5Sget_select_hyper_nblocks");
-    coords = HDmalloc(ret * SPACE2_RANK * sizeof(hsize_t) * 2); /* allocate space for the hyperslab blocks */
+    coords = (hsize_t *)HDmalloc(ret * SPACE2_RANK * sizeof(hsize_t) * 2); /* allocate space for the hyperslab blocks */
     ret = H5Sget_select_hyper_blocklist(sid2, (hsize_t)0, (hsize_t)ret, coords);
     CHECK(ret, FAIL, "H5Sget_select_hyper_blocklist");
     VERIFY(coords[0], 2, "Hyperslab Coordinates");
@@ -744,7 +744,7 @@ test_reference_region(void)
     VERIFY(ret, 10, "H5Sget_select_npoints");
     ret = (int)H5Sget_select_elem_npoints(sid2);
     VERIFY(ret, 10, "H5Sget_select_elem_npoints");
-    coords = HDmalloc(ret * SPACE2_RANK * sizeof(hsize_t)); /* allocate space for the element points */
+    coords = (hsize_t *)HDmalloc(ret * SPACE2_RANK * sizeof(hsize_t)); /* allocate space for the element points */
     ret = H5Sget_select_elem_pointlist(sid2, (hsize_t)0, (hsize_t)ret, coords);
     CHECK(ret, FAIL, "H5Sget_select_elem_pointlist");
     VERIFY(coords[0], coord1[0][0], "Element Coordinates");
@@ -1193,7 +1193,7 @@ test_reference_obj_deleted(void)
 **
 ****************************************************************/
 static herr_t
-test_deref_iter_op(hid_t UNUSED group, const char *name, const H5L_info_t UNUSED *info,
+test_deref_iter_op(hid_t H5_ATTR_UNUSED group, const char *name, const H5L_info_t H5_ATTR_UNUSED *info,
     void *op_data)
 {
     int *count = (int *)op_data;        /* Pointer to name counter */
diff --git a/test/tselect.c b/test/tselect.c
index 4f15694..704a2d3 100644
--- a/test/tselect.c
+++ b/test/tselect.c
@@ -180,7 +180,7 @@ static herr_t test_select_hyper_iter3(void *elem,hid_t type_id, unsigned ndim, c
 **
 ****************************************************************/
 static herr_t
-test_select_hyper_iter1(void *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void *_operator_data)
+test_select_hyper_iter1(void *_elem, hid_t H5_ATTR_UNUSED type_id, unsigned H5_ATTR_UNUSED ndim, const hsize_t H5_ATTR_UNUSED *point, void *_operator_data)
 {
     uint8_t *tbuf=(uint8_t *)_elem,     /* temporary buffer pointer */
             **tbuf2=(uint8_t **)_operator_data; /* temporary buffer handle */
@@ -379,7 +379,7 @@ struct pnt_iter {
 **
 ****************************************************************/
 static herr_t
-test_select_point_iter1(void *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void *_operator_data)
+test_select_point_iter1(void *_elem, hid_t H5_ATTR_UNUSED type_id, unsigned H5_ATTR_UNUSED ndim, const hsize_t H5_ATTR_UNUSED *point, void *_operator_data)
 {
     uint8_t *elem=(uint8_t *)_elem;  /* Pointer to the element to examine */
     uint8_t *tmp;                       /* temporary ptr to element in operator data */
@@ -656,7 +656,7 @@ test_select_point(hid_t xfer_plist)
 **
 ****************************************************************/
 static herr_t
-test_select_all_iter1(void *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void *_operator_data)
+test_select_all_iter1(void *_elem, hid_t H5_ATTR_UNUSED type_id, unsigned H5_ATTR_UNUSED ndim, const hsize_t H5_ATTR_UNUSED *point, void *_operator_data)
 {
     uint8_t *tbuf=(uint8_t *)_elem,     /* temporary buffer pointer */
             **tbuf2=(uint8_t **)_operator_data; /* temporary buffer handle */
@@ -676,7 +676,7 @@ test_select_all_iter1(void *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, c
 **
 ****************************************************************/
 static herr_t
-test_select_none_iter1(void UNUSED *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void UNUSED *_operator_data)
+test_select_none_iter1(void H5_ATTR_UNUSED *_elem, hid_t H5_ATTR_UNUSED type_id, unsigned H5_ATTR_UNUSED ndim, const hsize_t H5_ATTR_UNUSED *point, void H5_ATTR_UNUSED *_operator_data)
 {
     return(-1);
 }   /* end test_select_none_iter1() */
@@ -5810,7 +5810,7 @@ test_select_hyper_nota_2d(void)
 **
 ****************************************************************/
 static herr_t
-test_select_hyper_iter2(void *_elem, hid_t UNUSED type_id, unsigned ndim, const hsize_t *point, void *_operator_data)
+test_select_hyper_iter2(void *_elem, hid_t H5_ATTR_UNUSED type_id, unsigned ndim, const hsize_t *point, void *_operator_data)
 {
     int *tbuf=(int *)_elem,     /* temporary buffer pointer */
         **tbuf2=(int **)_operator_data; /* temporary buffer handle */
@@ -7002,7 +7002,7 @@ typedef struct {
 **
 ****************************************************************/
 static herr_t
-test_select_hyper_iter3(void *_elem, hid_t UNUSED type_id, unsigned ndim, const hsize_t *point, void *_operator_data)
+test_select_hyper_iter3(void *_elem, hid_t H5_ATTR_UNUSED type_id, unsigned ndim, const hsize_t *point, void *_operator_data)
 {
     unsigned *tbuf = (unsigned *)_elem;     /* temporary buffer pointer */
     fill_iter_info *iter_info = (fill_iter_info *)_operator_data; /* Get the pointer to the iterator information */
diff --git a/test/tskiplist.c b/test/tskiplist.c
index 8966e39..62c5f8e 100644
--- a/test/tskiplist.c
+++ b/test/tskiplist.c
@@ -592,7 +592,7 @@ test_skiplist_string(void)
 } /* end test_skiplist_string() */
 
 static herr_t
-test_skiplist_iter(void *item, void UNUSED *key, void *op_data)
+test_skiplist_iter(void *item, void H5_ATTR_UNUSED *key, void *op_data)
 {
     size_t *up=(size_t *)op_data;
 
@@ -1070,7 +1070,7 @@ test_skiplist_add(void)
 } /* end test_skiplist_add() */
 
 static herr_t
-test_skiplist_destroy_free(void *item, void UNUSED *key, void *op_data)
+test_skiplist_destroy_free(void *item, void H5_ATTR_UNUSED *key, void *op_data)
 {
     unsigned *free_count=(unsigned *)op_data;
 
@@ -1171,6 +1171,208 @@ test_skiplist_free(void)
 
 /****************************************************************
 **
+**  test_skiplist_try_free_safe(): Test H5SL (skip list) code.
+**      Tests 'try_free_safe' operation in skip lists.
+**
+****************************************************************/
+/* Macro definitions */
+#define TEST_TFS_MAX_NOBJS 100
+#define TEST_TFS_MIN_NOBJS 5
+#define TEST_TFS_NITER 50
+
+/* Structure to hold the list of objects */
+typedef struct {
+    H5SL_t *slist;              /* Skiplist holding the objects */
+    struct test_tfs_obj_t *list; /* Linear list of objects */
+    int nobjs;                  /* Number of objects in list */
+    int nobjs_rem;              /* Number of objects in list that have not been freed */
+} test_tfs_list_t;
+
+/* Structure for an object */
+typedef struct test_tfs_obj_t {
+    int idx;                    /* Index (key) for this object */
+    int nfrees;                 /* Number of times this object has been freed */
+} test_tfs_obj_t;
+
+/* op_data struct for H5SL_iterate() */
+typedef struct test_tfs_it_ud_t {
+    test_tfs_list_t *obj_list;  /* List of objects */
+    int last_idx;               /* Index of last object visited in iteration */
+    int ncalls;                 /* Number of times this callback was called */
+} test_tfs_it_ud_t;
+
+/* iterate callback */
+static herr_t test_tfs_iter(void *_obj, void *key, void *_udata) {
+    test_tfs_obj_t *obj = (test_tfs_obj_t *)_obj;
+    test_tfs_it_ud_t *udata = (test_tfs_it_ud_t *)_udata;
+
+    /* Check consistency */
+    VERIFY((void *)&obj->idx, key, "obj->idx");
+    VERIFY(obj, &udata->obj_list->list[obj->idx], "obj_list->list[obj->idx]");
+
+    /* Increment number of calls */
+    udata->ncalls++;
+
+    /* Verify we were given the correct object */
+    do {
+        udata->last_idx++;
+    } while(udata->obj_list->list[udata->last_idx].nfrees != 0);
+    VERIFY(udata->last_idx, obj->idx, "H5SL_iterate");
+
+    return 0;
+} /* end test_tfs_iter() */
+
+/* try_free_safe callback */
+static htri_t test_tfs_free(void *_obj, void *key, void *_obj_list) {
+    test_tfs_obj_t *obj = (test_tfs_obj_t *)_obj;
+    test_tfs_list_t *obj_list = (test_tfs_list_t *)_obj_list;
+    test_tfs_it_ud_t iter_ud;
+    int nrems, rem_idx, i, j;
+    test_tfs_obj_t *obj_ret;
+    herr_t  ret;        /* return value */
+    htri_t ret_value;
+
+    /* Check consistency */
+    VERIFY((void *)&obj->idx, key, "obj->idx");
+    VERIFY(obj, &obj_list->list[obj->idx], "obj_list->list[obj->idx]");
+
+    /* Mark this object as freed (to make sure it isn't recursively freed, that
+     * is not something we support, we will undo this if we decide later not to
+     * free the object) */
+    obj->nfrees++;
+    obj_list->nobjs_rem--;
+
+    /* Decide how many objects to remove */
+    nrems = (int)(HDrandom() % (long)3);
+
+    /* Remove objects */
+    for(i = 0; i < nrems; i++)
+        /* Check nobjs_rem */
+        if(obj_list->nobjs_rem > 0) {
+            /* Remove a random object from the list */
+            rem_idx = (int)(HDrandom() % (long)obj_list->nobjs_rem);
+
+            /* Scan the list, finding the rem_idx'th object that has not been
+             * freed */
+            for(j = 0; j < obj_list->nobjs; j++)
+                if(obj_list->list[j].nfrees == 0) {
+                    if(rem_idx == 0)
+                        break;
+                    else
+                        rem_idx--;
+                } /* end if */
+            if(j == obj_list->nobjs)
+                ERROR("invalid obj_list");
+            else {
+                /* Remove the object */
+                obj_ret = (test_tfs_obj_t *)H5SL_remove(obj_list->slist, &j);
+                CHECK(obj_ret, NULL, "H5SL_remove");
+                obj_ret->nfrees++;
+                obj_list->nobjs_rem--;
+            } /* end else */
+        } /* end if */
+
+    /* Mark this object as not freed so we know to expect it in the iterate call
+     */
+    obj->nfrees--;
+    obj_list->nobjs_rem++;
+
+    /* Iterate over skip list (maybe) */
+    if(HDrandom() % (long)5) {
+        iter_ud.obj_list = obj_list;
+        iter_ud.last_idx = -1;
+        iter_ud.ncalls = 0;
+        ret = H5SL_iterate(obj_list->slist, test_tfs_iter, &iter_ud);
+        CHECK(ret, FAIL, "H5SL_iterate");
+        VERIFY(iter_ud.ncalls, obj_list->nobjs_rem, "H5SL_iterate");
+    } /* end if */
+
+    /* Verify nobjs_rem is non-negative */
+    if(obj_list->nobjs_rem < 0)
+        ERROR("invalid nobjs_rem");
+
+    /* Decide whether this object should be freed */
+    if(HDrandom() % (long)2) {
+        /* Free the object */
+        ret_value = TRUE;
+        obj->nfrees++;
+        obj_list->nobjs_rem--;
+    } /* end if */
+    else
+        /* Do not free the object */
+        ret_value = FALSE;
+
+    return ret_value;
+} /* end test_tfs_free() */
+
+/* Test function */
+static void
+test_skiplist_try_free_safe(void)
+{
+    test_tfs_list_t obj_list;
+    test_tfs_obj_t list[TEST_TFS_MAX_NOBJS];
+    int i, j;
+    int nobjs_found;
+    hsize_t count;
+    herr_t ret;         /* Generic return value */
+
+    /* Output message about test being performed */
+    MESSAGE(7, ("Testing Skip List 'Try Free Safe' Operation\n"));
+
+    /* Create a skip list */
+    obj_list.slist = H5SL_create(H5SL_TYPE_INT, NULL);
+    CHECK(obj_list.slist, NULL, "H5SL_create");
+
+    /* Init obj_list.list */
+    obj_list.list = list;
+    for(j = 0; j < TEST_TFS_MAX_NOBJS; j++)
+        list[j].idx = j;
+
+    for(i = 0; i < TEST_TFS_NITER; i++) {
+        /* Build object list */
+        obj_list.nobjs = obj_list.nobjs_rem = (int)(TEST_TFS_MIN_NOBJS + (HDrandom() % (long)(TEST_TFS_MAX_NOBJS - TEST_TFS_MIN_NOBJS + 1)));
+        for(j = 0; j < obj_list.nobjs; j++) {
+            list[j].nfrees = 0;
+            ret = H5SL_insert(obj_list.slist, &list[j], &list[j].idx);
+            CHECK(ret, FAIL, "H5SL_insert");
+        } /* end for */
+
+        /* Call H5S_try_free_safe() - free most of the items in the skip list in
+         * a safe manner */
+        ret = H5SL_try_free_safe(obj_list.slist, test_tfs_free, &obj_list);
+        CHECK(ret, FAIL, "H5SL_try_free_safe");
+
+        /* Verify list */
+        nobjs_found = 0;
+        for(j = 0; j < obj_list.nobjs; j++)
+            if(list[j].nfrees == 0)
+                nobjs_found++;
+            else
+                VERIFY(list[j].nfrees, (long)1, "list[j].nfrees");
+
+        /* Verify number of objects */
+        VERIFY(obj_list.nobjs_rem, nobjs_found, "obj_list.nobjs_rem");
+        count = H5SL_count(obj_list.slist);
+        VERIFY(count, (size_t)nobjs_found, "H5SL_count");
+
+        /* Release the skip list, forcibly freeing all nodes (will not make
+         * callbacks) */
+        ret = H5SL_release(obj_list.slist);
+        CHECK(ret, FAIL, "H5SL_release");
+
+        /* Verify number of objects is 0 */
+        count = H5SL_count(obj_list.slist);
+        VERIFY(count, (size_t)0, "H5SL_count");
+    } /* end for */
+
+    /* Close the skip list */
+    ret = H5SL_close(obj_list.slist);
+    CHECK(ret, FAIL, "H5SL_close");
+
+} /* end test_skiplist_try_free_safe() */
+
+/****************************************************************
+**
 **  test_skiplist_less(): Test H5SL (skip list) code.
 **      Tests 'less' operation in skip lists.
 **
@@ -1577,6 +1779,7 @@ test_skiplist(void)
     test_skiplist_add();        /* Test 'add' operation */
     test_skiplist_destroy();    /* Test 'destroy' operation */
     test_skiplist_free();       /* Test 'free' operation */
+    test_skiplist_try_free_safe(); /* Test 'try_free_safe' operation */
     test_skiplist_less();       /* Test 'less' operation */
     test_skiplist_greater();    /* Test 'greater' operation */
     test_skiplist_below();      /* Test 'below' operation */
diff --git a/test/tsohm.c b/test/tsohm.c
index 11fb8ab..d51a166 100644
--- a/test/tsohm.c
+++ b/test/tsohm.c
@@ -3988,10 +3988,7 @@ test_sohm(void)
     test_sohm_delete();         /* Test deleting shared messages */
     test_sohm_delete_revert();  /* Test that a file with SOHMs becomes an
                                  * empty file again when they are deleted. */
-#ifndef  H5_CANNOT_OPEN_TWICE   /* On VMS this test fails since it tries to
-                                   open target file the second time */
     test_sohm_extlink();        /* Test SOHMs when external links are used */
-#endif /* H5_CANNOT_OPEN_TWICE */
 
     test_sohm_extend_dset();    /* Test extending shared datasets */
     test_sohm_external_dtype(); /* Test using datatype in another file */
diff --git a/test/ttsafe.c b/test/ttsafe.c
index d0ab81a..d3c5cfb 100644
--- a/test/ttsafe.c
+++ b/test/ttsafe.c
@@ -40,13 +40,6 @@
 /* ANY new test needs to have a prototype in ttsafe.h */
 #include "ttsafe.h"
 
-#ifndef H5_HAVE_THREADSAFE
-int main(void)
-{
-    printf("Test skipped because THREADSAFE not enabled\n");
-    return 0;
-}
-#else
 
 #define MAX_NUM_NAME 1000
 #define NAME_OFFSET 6         /* offset for "name<num>" */
@@ -66,6 +59,30 @@ num_digits(int num)
     return u;
 }
 
+/* Test the H5is_library_threadsafe() function */
+void
+tts_is_threadsafe(void)
+{
+    hbool_t is_ts;
+    hbool_t should_be;
+
+#ifdef H5_HAVE_THREADSAFE
+    is_ts = FALSE;
+    should_be = TRUE;
+#else /* H5_HAVE_THREADSAFE */
+    is_ts = TRUE;
+    should_be = FALSE;
+#endif /* H5_HAVE_THREADSAFE */
+
+    if(H5is_library_threadsafe(&is_ts) != SUCCEED)
+            TestErrPrintf("H5_is_library_threadsafe() call failed - test failed\n");
+
+    if(is_ts != should_be)
+            TestErrPrintf("Thread-safety value incorrect - test failed\n");
+
+    return;
+}
+
 /* Routine to generate attribute names for numeric values */
 char *gen_name(int value)
 {
@@ -88,10 +105,13 @@ char *gen_name(int value)
 
 int main(int argc, char *argv[])
 {
+
     /* Initialize testing framework */
     TestInit(argv[0], NULL, NULL);
 
     /* Tests are generally arranged from least to most complexity... */
+    AddTest("is_threadsafe", tts_is_threadsafe, NULL, "library threadsafe status", NULL);
+#ifdef H5_HAVE_THREADSAFE
     AddTest("dcreate", tts_dcreate, cleanup_dcreate, "multi-dataset creation", NULL);
     AddTest("error", tts_error, cleanup_error, "per-thread error stacks", NULL);
 #ifdef H5_HAVE_PTHREAD_H    
@@ -100,6 +120,12 @@ int main(int argc, char *argv[])
 #endif /* H5_HAVE_PTHREAD_H */
     AddTest("acreate", tts_acreate, cleanup_acreate, "multi-attribute creation", NULL);
 
+#else /* H5_HAVE_THREADSAFE */
+
+    printf("Most thread-safety tests skipped because THREADSAFE not enabled\n");
+
+#endif /* H5_HAVE_THREADSAFE */
+
     /* Display testing information */
     TestInfo(argv[0]);
 
@@ -118,5 +144,6 @@ int main(int argc, char *argv[])
         TestCleanup();
 
     return GetTestNumErrs();
+
 } /* end main() */
-#endif  /*H5_HAVE_THREADSAFE*/
+
diff --git a/test/ttsafe.h b/test/ttsafe.h
index b4826fc..f2e9e86 100644
--- a/test/ttsafe.h
+++ b/test/ttsafe.h
@@ -20,8 +20,6 @@
 #ifndef TTSAFE_H
 #define TTSAFE_H
 
-#include <string.h>
-
 /*
  * Include required headers.  This file tests internal library functions,
  * so we include the private headers here.
@@ -31,16 +29,13 @@
 #include "H5Eprivate.h"
 #include "testhdf5.h"
 
-#ifdef H5_HAVE_THREADSAFE
-/* Include pthread library for threadsafe tests */
-#ifdef H5_HAVE_PTHREAD_H
-#include <pthread.h>
-#endif /* H5_HAVE_PTHREAD_H */
 
 /* Prototypes for the support routines */
 extern char*            gen_name(int);
 
 /* Prototypes for the test routines */
+void                    tts_is_threadsafe(void);
+#ifdef H5_HAVE_THREADSAFE
 void                    tts_dcreate(void);
 void                    tts_error(void);
 void                    tts_cancel(void);
@@ -54,3 +49,4 @@ void                    cleanup_acreate(void);
 
 #endif /* H5_HAVE_THREADSAFE */
 #endif /* TTSAFE_H */
+
diff --git a/test/ttsafe_cancel.c b/test/ttsafe_cancel.c
index d8ed462..9bbec34 100644
--- a/test/ttsafe_cancel.c
+++ b/test/ttsafe_cancel.c
@@ -120,7 +120,7 @@ void tts_cancel(void)
     assert(ret==0);
 }
 
-void *tts_cancel_thread(void UNUSED *arg)
+void *tts_cancel_thread(void H5_ATTR_UNUSED *arg)
 {
     int datavalue;
     int buffer;
@@ -182,8 +182,8 @@ void *tts_cancel_thread(void UNUSED *arg)
     return NULL;
 }
 
-herr_t tts_cancel_callback(void *elem, hid_t UNUSED type_id, unsigned UNUSED ndim,
-			   const hsize_t UNUSED *point, void *operator_data)
+herr_t tts_cancel_callback(void *elem, hid_t H5_ATTR_UNUSED type_id, unsigned H5_ATTR_UNUSED ndim,
+			   const hsize_t H5_ATTR_UNUSED *point, void *operator_data)
 {
     int value = *(int *)elem;
     hid_t dataset = *(hid_t *)operator_data;
diff --git a/test/ttsafe_error.c b/test/ttsafe_error.c
index b81a7ad..a2f25db 100644
--- a/test/ttsafe_error.c
+++ b/test/ttsafe_error.c
@@ -154,7 +154,7 @@ void tts_error(void)
 }
 
 static
-void *tts_error_thread(void UNUSED *arg)
+void *tts_error_thread(void H5_ATTR_UNUSED *arg)
 {
     hid_t dataspace, datatype, dataset;
     hsize_t dimsf[1]; /* dataset dimensions */
@@ -199,7 +199,7 @@ void *tts_error_thread(void UNUSED *arg)
 }
 
 static
-herr_t error_callback(hid_t UNUSED estack_id, void *client_data)
+herr_t error_callback(hid_t H5_ATTR_UNUSED estack_id, void *client_data)
 {
     H5TS_mutex_lock_simple(&error_mutex);
     error_count++;
@@ -208,7 +208,7 @@ herr_t error_callback(hid_t UNUSED estack_id, void *client_data)
 }
 
 static
-herr_t walk_error_callback(unsigned n, const H5E_error2_t *err_desc, void UNUSED *client_data)
+herr_t walk_error_callback(unsigned n, const H5E_error2_t *err_desc, void H5_ATTR_UNUSED *client_data)
 {
     hid_t maj_num, min_num;
 
@@ -231,3 +231,4 @@ void cleanup_error(void)
 }
 
 #endif /*H5_HAVE_THREADSAFE*/
+
diff --git a/test/tunicode.c b/test/tunicode.c
index 2804fe6..6781fe8 100644
--- a/test/tunicode.c
+++ b/test/tunicode.c
@@ -119,7 +119,7 @@ void test_fl_string(hid_t fid, const char *string)
  * Borrows heavily from dtypes.c, but is more complicated because
  * the string is randomly generated.
  */
-void test_strpad(hid_t UNUSED fid, const char *string)
+void test_strpad(hid_t H5_ATTR_UNUSED fid, const char *string)
 {
     /* buf is used to hold the data that H5Tconvert operates on. */
     char     buf[LONG_BUF_SIZE];
@@ -650,7 +650,7 @@ void test_compound(hid_t fid, const char * string)
  * test_enum
  * Test that enumerated datatypes can have UTF-8 member names.
  */
-void test_enum(hid_t UNUSED fid, const char * string)
+void test_enum(hid_t H5_ATTR_UNUSED fid, const char * string)
 {
   /* Define an enumerated type */
   typedef enum {
@@ -699,7 +699,7 @@ void test_enum(hid_t UNUSED fid, const char * string)
  * test_opaque
  * Test comments on opaque datatypes
  */
-void test_opaque(hid_t UNUSED fid, const char * string)
+void test_opaque(hid_t H5_ATTR_UNUSED fid, const char * string)
 {
   hid_t type_id;
   char * read_buf;
diff --git a/test/unregister.c b/test/unregister.c
index 383958d..be40383 100644
--- a/test/unregister.c
+++ b/test/unregister.c
@@ -68,9 +68,9 @@ const H5Z_class2_t H5Z_DUMMY[1] = {{
  *-------------------------------------------------------------------------
  */
 static size_t
-filter_dummy(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED *cd_values, size_t nbytes,
-      size_t UNUSED *buf_size, void UNUSED **buf)
+filter_dummy(unsigned int H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+      const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
+      size_t H5_ATTR_UNUSED *buf_size, void H5_ATTR_UNUSED **buf)
 {
     return nbytes;
 }
diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt
index 37b461b..05f74dc 100644
--- a/testpar/CMakeLists.txt
+++ b/testpar/CMakeLists.txt
@@ -27,15 +27,15 @@ set (testphdf5_SRCS
 
 #-- Adding test for testhdf5
 add_executable (testphdf5 ${testphdf5_SRCS})
-TARGET_NAMING (testphdf5 ${LIB_TYPE})
-TARGET_C_PROPERTIES (testphdf5 ${LIB_TYPE} " " " ")
+TARGET_NAMING (testphdf5 STATIC)
+TARGET_C_PROPERTIES (testphdf5 STATIC " " " ")
 target_link_libraries (testphdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS})
 set_target_properties (testphdf5 PROPERTIES FOLDER test/par)
 
 MACRO (ADD_H5P_EXE file)
   add_executable (${file} ${HDF5_TEST_PAR_SOURCE_DIR}/${file}.c)
-  TARGET_NAMING (${file} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (${file} ${LIB_TYPE} " " " ")
+  TARGET_NAMING (${file} STATIC)
+  TARGET_C_PROPERTIES (${file} STATIC " " " ")
   target_link_libraries (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS})
   set_target_properties (${file} PROPERTIES FOLDER test/par)
 ENDMACRO (ADD_H5P_EXE file)
@@ -47,6 +47,7 @@ set (H5P_TESTS
     t_pflush2
     t_pshutdown
     t_prestart
+    t_init_term
     t_shapesame
 )
 
diff --git a/testpar/Makefile.am b/testpar/Makefile.am
index c79a609..b190ce8 100644
--- a/testpar/Makefile.am
+++ b/testpar/Makefile.am
@@ -25,7 +25,7 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/test
 
 # Test programs.  These are our main targets.
 #
-TEST_PROG_PARA=t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_pshutdown t_prestart t_shapesame
+TEST_PROG_PARA=t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_pshutdown t_prestart t_init_term t_shapesame
 
 check_PROGRAMS = $(TEST_PROG_PARA)
 
@@ -39,7 +39,8 @@ LDADD = $(LIBH5TEST) $(LIBHDF5)
 # MPItest.h5 is from t_mpi
 # Para*.h5 are from testphdf
 # shutdown.h5 is from t_pshutdown
+# after_mpi_fin.h5 is from t_init_term
 # go is used for debugging. See testphdf5.c.
-CHECK_CLEANFILES+=MPItest.h5 Para*.h5 CacheTestDummy.h5 shutdown.h5 go
+CHECK_CLEANFILES+=MPItest.h5 Para*.h5 CacheTestDummy.h5 shutdown.h5  after_mpi_fin.h5 go
 
 include $(top_srcdir)/config/conclude.am
diff --git a/testpar/Makefile.in b/testpar/Makefile.in
index 5b43546..8b6c54c 100644
--- a/testpar/Makefile.in
+++ b/testpar/Makefile.in
@@ -113,7 +113,7 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 am__EXEEXT_1 = t_mpi$(EXEEXT) testphdf5$(EXEEXT) t_cache$(EXEEXT) \
 	t_pflush1$(EXEEXT) t_pflush2$(EXEEXT) t_pshutdown$(EXEEXT) \
-	t_prestart$(EXEEXT) t_shapesame$(EXEEXT)
+	t_prestart$(EXEEXT) t_init_term$(EXEEXT) t_shapesame$(EXEEXT)
 t_cache_SOURCES = t_cache.c
 t_cache_OBJECTS = t_cache.$(OBJEXT)
 t_cache_LDADD = $(LDADD)
@@ -122,6 +122,10 @@ AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
+t_init_term_SOURCES = t_init_term.c
+t_init_term_OBJECTS = t_init_term.$(OBJEXT)
+t_init_term_LDADD = $(LDADD)
+t_init_term_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5)
 t_mpi_SOURCES = t_mpi.c
 t_mpi_OBJECTS = t_mpi.$(OBJEXT)
 t_mpi_LDADD = $(LDADD)
@@ -188,10 +192,10 @@ AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_prestart.c \
-	t_pshutdown.c t_shapesame.c $(testphdf5_SOURCES)
-DIST_SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_prestart.c \
-	t_pshutdown.c t_shapesame.c $(testphdf5_SOURCES)
+SOURCES = t_cache.c t_init_term.c t_mpi.c t_pflush1.c t_pflush2.c \
+	t_prestart.c t_pshutdown.c t_shapesame.c $(testphdf5_SOURCES)
+DIST_SOURCES = t_cache.c t_init_term.c t_mpi.c t_pflush1.c t_pflush2.c \
+	t_prestart.c t_pshutdown.c t_shapesame.c $(testphdf5_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -687,13 +691,14 @@ TRACE = perl $(top_srcdir)/bin/trace
 # MPItest.h5 is from t_mpi
 # Para*.h5 are from testphdf
 # shutdown.h5 is from t_pshutdown
+# after_mpi_fin.h5 is from t_init_term
 # go is used for debugging. See testphdf5.c.
 CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 MPItest.h5 \
-	Para*.h5 CacheTestDummy.h5 shutdown.h5 go
+	Para*.h5 CacheTestDummy.h5 shutdown.h5 after_mpi_fin.h5 go
 
 # Test programs.  These are our main targets.
 #
-TEST_PROG_PARA = t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_pshutdown t_prestart t_shapesame
+TEST_PROG_PARA = t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_pshutdown t_prestart t_init_term t_shapesame
 testphdf5_SOURCES = testphdf5.c t_dset.c t_file.c t_file_image.c t_mdset.c \
 	t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c
 
@@ -769,6 +774,10 @@ t_cache$(EXEEXT): $(t_cache_OBJECTS) $(t_cache_DEPENDENCIES) $(EXTRA_t_cache_DEP
 	@rm -f t_cache$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(t_cache_OBJECTS) $(t_cache_LDADD) $(LIBS)
 
+t_init_term$(EXEEXT): $(t_init_term_OBJECTS) $(t_init_term_DEPENDENCIES) $(EXTRA_t_init_term_DEPENDENCIES) 
+	@rm -f t_init_term$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(t_init_term_OBJECTS) $(t_init_term_LDADD) $(LIBS)
+
 t_mpi$(EXEEXT): $(t_mpi_OBJECTS) $(t_mpi_DEPENDENCIES) $(EXTRA_t_mpi_DEPENDENCIES) 
 	@rm -f t_mpi$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(t_mpi_OBJECTS) $(t_mpi_LDADD) $(LIBS)
@@ -810,6 +819,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_file.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_file_image.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_filter_read.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_init_term.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_mdset.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_mpi.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_pflush1.Po at am__quote@
diff --git a/testpar/t_cache.c b/testpar/t_cache.c
index 290cd3f..04e4cc4 100644
--- a/testpar/t_cache.c
+++ b/testpar/t_cache.c
@@ -382,12 +382,12 @@ static hbool_t serve_rw_count_reset_request(struct mssg_t * mssg_ptr);
 /* call back functions & related data structures */
 
 static herr_t clear_datum(H5F_t * f, void *  thing, hbool_t dest);
-static herr_t destroy_datum(H5F_t UNUSED * f, void * thing);
-static herr_t flush_datum(H5F_t *f, hid_t UNUSED dxpl_id, hbool_t dest, haddr_t addr,
+static herr_t destroy_datum(H5F_t H5_ATTR_UNUSED * f, void * thing);
+static herr_t flush_datum(H5F_t *f, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t dest, haddr_t addr,
                    void *thing);
-static void * load_datum(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, haddr_t addr,
-                  void UNUSED *udata);
-static herr_t size_datum(H5F_t UNUSED * f, void * thing, size_t * size_ptr);
+static void * load_datum(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, haddr_t addr,
+                  void H5_ATTR_UNUSED *udata);
+static herr_t size_datum(H5F_t H5_ATTR_UNUSED * f, void * thing, size_t * size_ptr);
 
 #define DATUM_ENTRY_TYPE	H5AC_TEST_ID
 
@@ -2396,7 +2396,7 @@ clear_datum(H5F_t * f,
  *-------------------------------------------------------------------------
  */
 static herr_t
-destroy_datum(H5F_t UNUSED * f,
+destroy_datum(H5F_t H5_ATTR_UNUSED * f,
               void *         thing)
 {
     int idx;
@@ -2445,9 +2445,9 @@ destroy_datum(H5F_t UNUSED * f,
  */
 static herr_t
 flush_datum(H5F_t *f,
-            hid_t UNUSED dxpl_id,
+            hid_t H5_ATTR_UNUSED dxpl_id,
             hbool_t dest,
-            haddr_t UNUSED addr,
+            haddr_t H5_ATTR_UNUSED addr,
             void *thing)
 {
     const char * fcn_name = "flush_datum()";
@@ -2603,10 +2603,10 @@ flush_datum(H5F_t *f,
  */
 
 static void *
-load_datum(H5F_t UNUSED *f,
-           hid_t UNUSED dxpl_id,
+load_datum(H5F_t H5_ATTR_UNUSED *f,
+           hid_t H5_ATTR_UNUSED dxpl_id,
            haddr_t addr,
-           void UNUSED *udata)
+           void H5_ATTR_UNUSED *udata)
 {
     const char * fcn_name = "load_datum()";
     hbool_t success = TRUE;
@@ -2773,7 +2773,7 @@ load_datum(H5F_t UNUSED *f,
  */
 
 static herr_t
-size_datum(H5F_t UNUSED *  f,
+size_datum(H5F_t H5_ATTR_UNUSED *  f,
            void *   thing,
            size_t * size_ptr)
 {
diff --git a/testpar/t_file_image.c b/testpar/t_file_image.c
index 544ba32..a2246b6 100644
--- a/testpar/t_file_image.c
+++ b/testpar/t_file_image.c
@@ -241,6 +241,9 @@ file_image_daisy_chain_test(void)
                 vector_ok = FALSE;
         VRFY((vector_ok), "verified received vector.");
  
+        HDfree(vector_ptr);
+        vector_ptr = NULL;
+
 	/* 7) closes the core file and exit. */
 
         err = H5Sclose(space_id);
diff --git a/testpar/t_init_term.c b/testpar/t_init_term.c
new file mode 100644
index 0000000..824f773
--- /dev/null
+++ b/testpar/t_init_term.c
@@ -0,0 +1,76 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ * Programmer:  Mohamad Chaarawi
+ *              June 2015
+ *
+ * Purpose: This test checks for the correct initialization and
+ * termination of the HDF5 library with MPI init and finalize.
+ */
+
+#include "testphdf5.h"
+
+int nerrors = 0;			/* errors count */
+
+const char *FILENAME[] = {
+    "after_mpi_fin",
+    NULL
+};
+
+int
+main (int argc, char **argv)
+{
+    int         mpi_size, mpi_rank;
+    MPI_Comm    comm  = MPI_COMM_WORLD;
+
+    /* Initialize and finalize MPI */
+    MPI_Init(&argc, &argv);
+    MPI_Comm_size(comm, &mpi_size);
+    MPI_Comm_rank(comm, &mpi_rank);  
+
+    if(MAINPROCESS)
+	TESTING("Usage of Serial HDF5 after MPI_Finalize() is called");
+
+    MPI_Finalize();
+
+    nerrors += GetTestNumErrs();
+
+    /* test if we can initialize the library with MPI being finalized
+       and create a file serially */
+    H5open();
+
+    if(mpi_rank == 0) {
+        char	filename[1024];
+        hid_t   file_id;
+
+        h5_fixname(FILENAME[0], H5P_DEFAULT, filename, sizeof filename);
+        file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+        VRFY((file_id >= 0), "H5Fcreate succeeded");
+        H5Fclose(file_id);
+        file_id = -1;
+    }
+
+    H5close();
+
+    if(MAINPROCESS) {
+        if(0 == nerrors)
+            PASSED()
+        else
+	    H5_FAILED()
+    }
+
+    return (nerrors!=0);
+}
diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt
index 7291197..63b9b5d 100644
--- a/tools/h5copy/CMakeLists.txt
+++ b/tools/h5copy/CMakeLists.txt
@@ -10,15 +10,15 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # Add the h5copy and test executables
 # --------------------------------------------------------------------
 add_executable (h5copy ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copy.c)
-TARGET_NAMING (h5copy ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5copy ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5copy STATIC)
+TARGET_C_PROPERTIES (h5copy STATIC " " " ")
 target_link_libraries (h5copy  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5copy PROPERTIES FOLDER tools)
 
 set (H5_DEP_EXECUTABLES h5copy)
 
 if (BUILD_TESTING)
-  if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  if (HDF5_BUILD_GENERATORS)
     add_executable (h5copygentest ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copygentest.c)
     TARGET_NAMING (h5copygentest STATIC)
     TARGET_C_PROPERTIES (h5copygentest STATIC " " " ")
@@ -26,7 +26,7 @@ if (BUILD_TESTING)
     set_target_properties (h5copygentest PROPERTIES FOLDER generator/tools)
 
     #add_test (NAME h5copygentest COMMAND $<TARGET_FILE:h5copygentest>)
-  endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  endif (HDF5_BUILD_GENERATORS)
 
   include (CMakeTests.cmake)
 endif (BUILD_TESTING)
@@ -46,8 +46,5 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5copy
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt
index 39095a5..59a3241 100644
--- a/tools/h5diff/CMakeLists.txt
+++ b/tools/h5diff/CMakeLists.txt
@@ -13,8 +13,8 @@ add_executable (h5diff
     ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_common.c
     ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_main.c
 )
-TARGET_NAMING (h5diff ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5diff ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5diff STATIC)
+TARGET_C_PROPERTIES (h5diff STATIC " " " ")
 target_link_libraries (h5diff  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5diff PROPERTIES FOLDER tools)
 
@@ -25,8 +25,8 @@ if (H5_HAVE_PARALLEL)
       ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_common.c
       ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/ph5diff_main.c
   )
-  TARGET_NAMING (ph5diff ${LIB_TYPE})
-  TARGET_C_PROPERTIES (ph5diff ${LIB_TYPE} " " " ")
+  TARGET_NAMING (ph5diff STATIC)
+  TARGET_C_PROPERTIES (ph5diff STATIC " " " ")
   target_link_libraries (ph5diff  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (ph5diff PROPERTIES FOLDER tools)
 endif (H5_HAVE_PARALLEL)
@@ -35,7 +35,7 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   # Add the h5diff and test executables
   # --------------------------------------------------------------------
-  if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  if (HDF5_BUILD_GENERATORS)
     add_executable (h5diffgentest ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diffgentest.c)
     TARGET_NAMING (h5diffgentest STATIC)
     TARGET_C_PROPERTIES (h5diffgentest STATIC " " " ")
@@ -43,7 +43,7 @@ if (BUILD_TESTING)
     set_target_properties (h5diffgentest PROPERTIES FOLDER generator/tools)
     
     #add_test (NAME h5diffgentest COMMAND $<TARGET_FILE:h5diffgentest>)
-  endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  endif (HDF5_BUILD_GENERATORS)
 
   include (CMakeTests.cmake)
  
@@ -64,10 +64,7 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5diff
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
 
 if (H5_HAVE_PARALLEL)
@@ -77,9 +74,6 @@ if (H5_HAVE_PARALLEL)
   install (
       TARGETS
           ph5diff
-      RUNTIME DESTINATION
-          ${HDF5_INSTALL_BIN_DIR}
-      COMPONENT
-          toolsapplications
+      RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
   )
 endif (H5_HAVE_PARALLEL)
diff --git a/tools/h5diff/CMakeTests.cmake b/tools/h5diff/CMakeTests.cmake
index c650dbe..16854a9 100644
--- a/tools/h5diff/CMakeTests.cmake
+++ b/tools/h5diff/CMakeTests.cmake
@@ -4,7 +4,7 @@
 ###           T E S T I N G                                                ###
 ##############################################################################
 ##############################################################################
-  
+
   # --------------------------------------------------------------------
   # Copy all the HDF5 files from the test directory into the source directory
   # --------------------------------------------------------------------
@@ -253,9 +253,9 @@
 
 
   #
-  # Overwrite system dependent files (Windows)
+  # Overwrite system dependent files (Windows) and not VS2015
   #
-  if (WIN32)
+  if (WIN32 AND MSVC_VERSION LESS 1900)
     add_custom_command (
         TARGET     h5diff
         POST_BUILD
@@ -282,8 +282,8 @@
         COMMAND    ${CMAKE_COMMAND}
         ARGS       -E copy_if_different ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/testfiles/h5diff_104w.txt ${PROJECT_BINARY_DIR}/testfiles/h5diff_104.txt
     )
-  endif (WIN32)
-  
+  endif (WIN32 AND MSVC_VERSION LESS 1900)
+
 ##############################################################################
 ##############################################################################
 ###           T H E   T E S T S  M A C R O S                               ###
@@ -399,7 +399,7 @@
 ##############################################################################
 
   # --------------------------------------------------------------------
-  # test file names 
+  # test file names
   # --------------------------------------------------------------------
   set (FILE1 h5diff_basic1.h5)
   set (FILE2 h5diff_basic2.h5)
@@ -425,7 +425,7 @@
   set (DANGLE_LINK_FILE2 h5diff_danglelinks2.h5)
   set (GRP_RECURSE_FILE1 h5diff_grp_recurse1.h5)
   set (GRP_RECURSE_FILE2 h5diff_grp_recurse2.h5)
-  # group recursive - same structure via external links through files 
+  # group recursive - same structure via external links through files
   set (GRP_RECURSE1_EXT h5diff_grp_recurse_ext1.h5)
   set (GRP_RECURSE2_EXT1 h5diff_grp_recurse_ext2-1.h5)
   set (GRP_RECURSE2_EXT2 h5diff_grp_recurse_ext2-2.h5)
@@ -453,7 +453,7 @@
     add_test (
       NAME H5DIFF-clearall-objects
       COMMAND    ${CMAKE_COMMAND}
-          -E remove 
+          -E remove
           h5diff_10.out
           h5diff_10.out.err
           h5diff_100.out
@@ -816,13 +816,13 @@
 ADD_H5_TEST (h5diff_10 0 -h)
 
 # 1.1 normal mode
-ADD_H5_TEST (h5diff_11 1  ${FILE1} ${FILE2}) 
+ADD_H5_TEST (h5diff_11 1  ${FILE1} ${FILE2})
 
 # 1.2 normal mode with objects
 ADD_H5_TEST (h5diff_12 1  ${FILE1} ${FILE2}  g1/dset1 g1/dset2)
 
 # 1.3 report mode
-ADD_H5_TEST (h5diff_13 1 -r ${FILE1} ${FILE2}) 
+ADD_H5_TEST (h5diff_13 1 -r ${FILE1} ${FILE2})
 
 # 1.4 report  mode with objects
 ADD_H5_TEST (h5diff_14 1  -r ${FILE1} ${FILE2} g1/dset1 g1/dset2)
@@ -840,7 +840,7 @@ ADD_H5_TEST (h5diff_16_2 1 --verbose --relative=0.02 ${FILE1} ${FILE1} g1/dset7
 ADD_H5_TEST (h5diff_16_3 1 -v -p 0.02 ${FILE1} ${FILE1} g1/dset9 g1/dset10)
 
 # 1.7 verbose mode
-ADD_H5_TEST (h5diff_17 1 -v ${FILE1} ${FILE2})   
+ADD_H5_TEST (h5diff_17 1 -v ${FILE1} ${FILE2})
 
 # 1.7 test 32-bit INFINITY
 ADD_H5_TEST (h5diff_171 0 -v ${FILE1} ${FILE1} /g1/fp19 /g1/fp19_COPY)
@@ -848,8 +848,8 @@ ADD_H5_TEST (h5diff_171 0 -v ${FILE1} ${FILE1} /g1/fp19 /g1/fp19_COPY)
 # 1.7 test 64-bit INFINITY
 ADD_H5_TEST (h5diff_172 0 -v ${FILE1} ${FILE1} /g1/fp20 /g1/fp20_COPY)
 
-# 1.8 quiet mode 
-ADD_H5_TEST (h5diff_18 1 -q ${FILE1} ${FILE2}) 
+# 1.8 quiet mode
+ADD_H5_TEST (h5diff_18 1 -q ${FILE1} ${FILE2})
 
 # 1.8 -v and -q
 ADD_H5_TEST (h5diff_18_1 2 -v -q ${FILE1} ${FILE2})
@@ -878,7 +878,7 @@ ADD_H5_TEST (h5diff_23 0 -v ${FILE3} ${FILE3} g1 g1)
 ADD_H5_TEST (h5diff_24 0 -v ${FILE3} ${FILE3} t1 t1)
 
 # 2.5
-ADD_H5_TEST (h5diff_25 0 -v ${FILE3} ${FILE3} l1 l1) 
+ADD_H5_TEST (h5diff_25 0 -v ${FILE3} ${FILE3} l1 l1)
 
 # 2.6
 ADD_H5_TEST (h5diff_26 0 -v ${FILE3} ${FILE3} g1 g2)
@@ -920,7 +920,7 @@ ADD_H5_TEST (h5diff_57 0 -v ${FILE4} ${FILE4} dset7a dset7b)
 # 5.8 (region reference)
 ADD_H5_TEST (h5diff_58 1 -v ${FILE7} ${FILE8} refreg)
 
-# test for both dset and attr with same type but with different size 
+# test for both dset and attr with same type but with different size
 # ( HDDFV-7942 )
 ADD_H5_TEST (h5diff_59 0 -v ${FILE4} ${FILE4} dset11a dset11b)
 
@@ -929,13 +929,13 @@ ADD_H5_TEST (h5diff_59 0 -v ${FILE4} ${FILE4} dset11a dset11b)
 # ##############################################################################
 
 # 6.0: Check if the command line number of arguments is less than 3
-ADD_H5_TEST (h5diff_600 1 ${FILE1}) 
+ADD_H5_TEST (h5diff_600 1 ${FILE1})
 
-# 6.1: Check if non-exist object name is specified 
+# 6.1: Check if non-exist object name is specified
 ADD_H5_TEST (h5diff_601 2 ${FILE1} ${FILE1} nono_obj)
 
 # ##############################################################################
-# # -d 
+# # -d
 # ##############################################################################
 
 # 6.3: negative value
@@ -953,7 +953,7 @@ ADD_H5_TEST (h5diff_606 1 -d 0x1 ${FILE1} ${FILE2} g1/dset3 g1/dset4)
 # 6.7: string
 ADD_H5_TEST (h5diff_607 1 -d "1" ${FILE1} ${FILE2} g1/dset3 g1/dset4)
 
-# 6.8: use system epsilon 
+# 6.8: use system epsilon
 ADD_H5_TEST (h5diff_608 1 --use-system-epsilon ${FILE1} ${FILE2}  g1/dset3 g1/dset4)
 
 # 6.9: number larger than biggest difference
@@ -1032,12 +1032,12 @@ ADD_H5_TEST (h5diff_631 0 -v --use-system-epsilon ${FILE1} ${FILE1} g1/fp18 g1/f
 # ##############################################################################
 # 7.  attributes
 # ##############################################################################
-ADD_H5_TEST (h5diff_70 1 -v ${FILE5} ${FILE6}) 
+ADD_H5_TEST (h5diff_70 1 -v ${FILE5} ${FILE6})
 
 # ##################################################
 #  attrs with verbose option level
 # ##################################################
-ADD_H5_TEST (h5diff_700 1 -v1 ${FILE5} ${FILE6}) 
+ADD_H5_TEST (h5diff_700 1 -v1 ${FILE5} ${FILE6})
 ADD_H5_TEST (h5diff_701 1 -v2 ${FILE5} ${FILE6})
 ADD_H5_TEST (h5diff_702 1 --verbose=1 ${FILE5} ${FILE6})
 ADD_H5_TEST (h5diff_703 1 --verbose=2 ${FILE5} ${FILE6})
@@ -1054,7 +1054,7 @@ ADD_H5_TEST (h5diff_706 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_F
 # different attr number , same attr name (intersected)
 ADD_H5_TEST (h5diff_707 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g2)
 
-# different attr number , all different attr name 
+# different attr number , all different attr name
 ADD_H5_TEST (h5diff_708 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_FILE2} /g3)
 
 # when no attributes exist in both objects
@@ -1066,31 +1066,31 @@ ADD_H5_TEST (h5diff_710 1 -v2 ${ATTR_VERBOSE_LEVEL_FILE1} ${ATTR_VERBOSE_LEVEL_F
 # ##############################################################################
 # 8.  all dataset datatypes
 # ##############################################################################
-ADD_H5_TEST (h5diff_80 1 -v ${FILE7} ${FILE8}) 
+ADD_H5_TEST (h5diff_80 1 -v ${FILE7} ${FILE8})
 
 # 9. compare a file with itself
 ADD_H5_TEST (h5diff_90 0 -v ${FILE2} ${FILE2})
 
 # 10. read by hyperslab, print indexes
-ADD_H5_TEST (h5diff_100 1 -v ${FILE9} ${FILE10}) 
+ADD_H5_TEST (h5diff_100 1 -v ${FILE9} ${FILE10})
 
 # 11. floating point comparison
-ADD_H5_TEST (h5diff_101 1 -v ${FILE1} ${FILE1} g1/d1  g1/d2) 
+ADD_H5_TEST (h5diff_101 1 -v ${FILE1} ${FILE1} g1/d1  g1/d2)
 
-ADD_H5_TEST (h5diff_102 1 -v ${FILE1} ${FILE1} g1/fp1 g1/fp2) 
+ADD_H5_TEST (h5diff_102 1 -v ${FILE1} ${FILE1} g1/fp1 g1/fp2)
 
-# with --use-system-epsilon for double value. expect less differences  
+# with --use-system-epsilon for double value. expect less differences
 ADD_H5_TEST (h5diff_103 1 -v --use-system-epsilon ${FILE1} ${FILE1} g1/d1
-g1/d2) 
+g1/d2)
 
 # with --use-system-epsilon for float value. expect less differences
 ADD_H5_TEST (h5diff_104 1 -v --use-system-epsilon ${FILE1} ${FILE1} g1/fp1
 g1/fp2)
 
 # not comparable -c flag
-ADD_H5_TEST (h5diff_200 0 ${FILE2} ${FILE2} g2/dset1  g2/dset2) 
+ADD_H5_TEST (h5diff_200 0 ${FILE2} ${FILE2} g2/dset1  g2/dset2)
 
-ADD_H5_TEST (h5diff_201 0 -c ${FILE2} ${FILE2} g2/dset1  g2/dset2) 
+ADD_H5_TEST (h5diff_201 0 -c ${FILE2} ${FILE2} g2/dset1  g2/dset2)
 
 ADD_H5_TEST (h5diff_202 0 -c ${FILE2} ${FILE2} g2/dset2  g2/dset3)
 
@@ -1106,9 +1106,9 @@ ADD_H5_TEST (h5diff_206 0 -c ${FILE2} ${FILE2} g2/dset7  g2/dset8)
 ADD_H5_TEST (h5diff_207 0 -c ${FILE2} ${FILE2} g2/dset8  g2/dset9)
 
 # not comparable in dataspace of zero dimension size
-ADD_H5_TEST (h5diff_208 0 -c ${FILE19} ${FILE20}) 
+ADD_H5_TEST (h5diff_208 0 -c ${FILE19} ${FILE20})
 
-# non-comparable dataset with comparable attribute, and other comparable datasets. 
+# non-comparable dataset with comparable attribute, and other comparable datasets.
 # All the rest comparables should display differences.
 ADD_H5_TEST (h5diff_220 1 -c non_comparables1.h5 non_comparables2.h5 /g1)
 
@@ -1221,28 +1221,28 @@ ADD_H5_TEST (h5diff_425 1 --follow-symlinks -v ${FILE17} ${FILE17} /ext_link_to_
 ADD_H5_TEST (h5diff_450 1  --follow-symlinks -v ${DANGLE_LINK_FILE1} ${DANGLE_LINK_FILE2})
 
 # dangling links --follow-symlinks and --no-dangling-links (FILE to FILE)
-ADD_H5_TEST (h5diff_451 2  --follow-symlinks -v --no-dangling-links  ${DANGLE_LINK_FILE1} ${DANGLE_LINK_FILE2}) 
+ADD_H5_TEST (h5diff_451 2  --follow-symlinks -v --no-dangling-links  ${DANGLE_LINK_FILE1} ${DANGLE_LINK_FILE2})
 
 # try --no-dangling-links without --follow-symlinks options
 ADD_H5_TEST (h5diff_452 2  --no-dangling-links  ${FILE13} ${FILE13})
 
 # dangling link found for soft links (FILE to FILE)
-ADD_H5_TEST (h5diff_453 2  --follow-symlinks -v --no-dangling-links  ${FILE13} ${FILE13})  
+ADD_H5_TEST (h5diff_453 2  --follow-symlinks -v --no-dangling-links  ${FILE13} ${FILE13})
 
 # dangling link found for soft links (obj to obj)
-ADD_H5_TEST (h5diff_454 2  --follow-symlinks -v --no-dangling-links  ${FILE13} ${FILE13} /softlink_dset2 /softlink_noexist) 
+ADD_H5_TEST (h5diff_454 2  --follow-symlinks -v --no-dangling-links  ${FILE13} ${FILE13} /softlink_dset2 /softlink_noexist)
 
 # dangling link found for soft links (obj to obj) Both dangle links
-ADD_H5_TEST (h5diff_455 2  --follow-symlinks -v --no-dangling-links  ${FILE13} ${FILE13} /softlink_noexist /softlink_noexist) 
+ADD_H5_TEST (h5diff_455 2  --follow-symlinks -v --no-dangling-links  ${FILE13} ${FILE13} /softlink_noexist /softlink_noexist)
 
 # dangling link found for ext links (FILE to FILE)
-ADD_H5_TEST (h5diff_456 2  --follow-symlinks -v --no-dangling-links  ${FILE15} ${FILE15}) 
+ADD_H5_TEST (h5diff_456 2  --follow-symlinks -v --no-dangling-links  ${FILE15} ${FILE15})
 
 # dangling link found for ext links (obj to obj). target file exist
-ADD_H5_TEST (h5diff_457 2  --follow-symlinks -v --no-dangling-links  ${FILE15} ${FILE15} /ext_link_dset1 /ext_link_noexist1) 
+ADD_H5_TEST (h5diff_457 2  --follow-symlinks -v --no-dangling-links  ${FILE15} ${FILE15} /ext_link_dset1 /ext_link_noexist1)
 
 # dangling link found for ext links (obj to obj). target file NOT exist
-ADD_H5_TEST (h5diff_458 2  --follow-symlinks -v --no-dangling-links  ${FILE15} ${FILE15} /ext_link_dset1 /ext_link_noexist2)  
+ADD_H5_TEST (h5diff_458 2  --follow-symlinks -v --no-dangling-links  ${FILE15} ${FILE15} /ext_link_dset1 /ext_link_noexist2)
 
 # dangling link found for ext links (obj to obj). Both dangle links
 ADD_H5_TEST (h5diff_459 2  --follow-symlinks -v --no-dangling-links  ${FILE15} ${FILE15} /ext_link_noexist1 /ext_link_noexist2)
@@ -1261,9 +1261,9 @@ ADD_H5_TEST (h5diff_468 0 -v --follow-symlinks h5diff_danglelinks1.h5 h5diff_dan
 ADD_H5_TEST (h5diff_469 1 -v --follow-symlinks h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /ext_link2)
 
 #---------------------------------------------------
-# dangling links without follow symlink 
+# dangling links without follow symlink
 # (HDFFV-7998)
-# test - soft dangle links (same and different paths), 
+# test - soft dangle links (same and different paths),
 #      - external dangle links (same and different paths)
 ADD_H5_TEST (h5diff_471 1 -v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5)
 ADD_H5_TEST (h5diff_472 0 -v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /soft_link1)
@@ -1275,7 +1275,7 @@ ADD_H5_TEST (h5diff_475 1 -v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /ext_
 # ##############################################################################
 # # test for group diff recursivly
 # ##############################################################################
-# root 
+# root
 ADD_H5_TEST (h5diff_500 1 -v ${GRP_RECURSE_FILE1} ${GRP_RECURSE_FILE2} / /)
 ADD_H5_TEST (h5diff_501 1 -v --follow-symlinks ${GRP_RECURSE_FILE1} ${GRP_RECURSE_FILE2} / /)
 
@@ -1309,7 +1309,7 @@ ADD_H5_TEST (h5diff_513 1 -v ${GRP_RECURSE_FILE1} ${GRP_RECURSE_FILE2} /slink_gr
 ADD_H5_TEST (h5diff_514 1 -v --follow-symlinks ${GRP_RECURSE_FILE1} ${GRP_RECURSE_FILE2} /slink_grp10 /slink_grp11)
 
 ###############################################################################
-# Test for group recursive diff via multi-linked external links 
+# Test for group recursive diff via multi-linked external links
 # With follow-symlinks, file $GRP_RECURSE1_EXT and $GRP_RECURSE2_EXT1 should
 # be same with the external links.
 ###############################################################################
@@ -1332,7 +1332,7 @@ ADD_H5_TEST (h5diff_480 0 -v --exclude-path /group1/dset3 ${EXCLUDE_FILE1_1} ${E
 ADD_H5_TEST (h5diff_481 1 -v ${EXCLUDE_FILE1_1} ${EXCLUDE_FILE1_2})
 
 #
-# Different structure, different names. 
+# Different structure, different names.
 #
 # Exclude all the different objects. Expect return - same
 ADD_H5_TEST (h5diff_482 0 -v --exclude-path "/group1" --exclude-path "/dset1" ${EXCLUDE_FILE2_1} ${EXCLUDE_FILE2_2})
@@ -1364,10 +1364,10 @@ ADD_H5_TEST (h5diff_530 0 -v  ${COMP_VL_STRS_FILE} ${COMP_VL_STRS_FILE} /group /
 ADD_H5_TEST (h5diff_540 1 -v ${COMPS_ARRAY_VLEN_FILE1} ${COMPS_ARRAY_VLEN_FILE2})
 
 # ##############################################################################
-# # Test mutually exclusive options 
+# # Test mutually exclusive options
 # ##############################################################################
 #
-# Test with -d , -p and --use-system-epsilon. 
+# Test with -d , -p and --use-system-epsilon.
 ADD_H5_TEST (h5diff_640 1 -v -d 5 -p 0.05 --use-system-epsilon ${FILE1} ${FILE2} /g1/dset3 /g1/dset4)
 ADD_H5_TEST (h5diff_641 1 -v -d 5 -p 0.05 ${FILE1} ${FILE2} /g1/dset3 /g1/dset4)
 ADD_H5_TEST (h5diff_642 1 -v -p 0.05 -d 5 ${FILE1} ${FILE2} /g1/dset3 /g1/dset4)
diff --git a/tools/h5diff/h5diffgentest.c b/tools/h5diff/h5diffgentest.c
index 1b80317..cfaffe6 100644
--- a/tools/h5diff/h5diffgentest.c
+++ b/tools/h5diff/h5diffgentest.c
@@ -106,8 +106,8 @@ hsize_t H5TOOLS_MALLOCSIZE = (128 * 1024 * 1024);
 #define SPACE1_DIM2 0
 
 /* A UD link traversal function.  Shouldn't actually be called. */
-static hid_t UD_traverse(UNUSED const char * link_name, UNUSED hid_t cur_group,
-                         UNUSED const void * udata, UNUSED size_t udata_size, UNUSED hid_t lapl_id)
+static hid_t UD_traverse(H5_ATTR_UNUSED const char * link_name, H5_ATTR_UNUSED hid_t cur_group,
+                         H5_ATTR_UNUSED const void * udata, H5_ATTR_UNUSED size_t udata_size, H5_ATTR_UNUSED hid_t lapl_id)
 {
     return -1;
 }
diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt
index 7658c04..47ba7a8 100644
--- a/tools/h5dump/CMakeLists.txt
+++ b/tools/h5dump/CMakeLists.txt
@@ -14,8 +14,8 @@ add_executable (h5dump
     ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump_ddl.c
     ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump_xml.c
 )
-TARGET_NAMING (h5dump ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5dump ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5dump STATIC)
+TARGET_C_PROPERTIES (h5dump STATIC " " " ")
 target_link_libraries (h5dump  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5dump PROPERTIES FOLDER tools)
 
@@ -25,7 +25,7 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   # Add the h5dump test executable
   # --------------------------------------------------------------------
-  if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  if (HDF5_BUILD_GENERATORS)
     add_executable (h5dumpgentest ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dumpgentest.c)
     TARGET_NAMING (h5dumpgentest STATIC)
     TARGET_C_PROPERTIES (h5dumpgentest STATIC " " " ")
@@ -33,7 +33,7 @@ if (BUILD_TESTING)
     set_target_properties (h5dumpgentest PROPERTIES FOLDER generator/tools)
     
     #add_test (NAME h5dumpgentest COMMAND $<TARGET_FILE:h5dumpgentest>)
-  endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  endif (HDF5_BUILD_GENERATORS)
 
   include (CMakeTests.cmake)
 
@@ -57,8 +57,5 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5dump
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
diff --git a/tools/h5dump/CMakeTestsPBITS.cmake b/tools/h5dump/CMakeTestsPBITS.cmake
index 421e020..e76fa0e 100644
--- a/tools/h5dump/CMakeTestsPBITS.cmake
+++ b/tools/h5dump/CMakeTestsPBITS.cmake
@@ -4,65 +4,65 @@
 ###           T E S T I N G                                                ###
 ##############################################################################
 ##############################################################################
-  
+
   # --------------------------------------------------------------------
   # Packed Bits
   # --------------------------------------------------------------------
   #-- Copy all the HDF5 files from the test directory into the source directory
   set (HDF5_REFERENCE_PBITS
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tnofilename-with-packed-bits.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsArray.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsCompound.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsIncomplete.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsLengthExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsCharLengthExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsIntLengthExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsLongLengthExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsLengthPositive.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsMax.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsMaxExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsOffsetExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsCharOffsetExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsIntOffsetExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsLongOffsetExceeded.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsOffsetNegative.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsOverlapped.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSigned.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsigned.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedInt.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedInt.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLong.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLong.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLongLong.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLongLong.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedWhole.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedWhole.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedIntWhole.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedIntWhole.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLongWhole.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLongWhole.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLongLongWhole.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLongLongWhole.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLongLongWhole1.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLongLongWhole1.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLongLongWhole63.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLongLongWhole63.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSigned4.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsigned4.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedInt8.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedInt8.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLong16.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLong16.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLongLong32.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLongLong32.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSigned2.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsigned2.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedInt4.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedInt4.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLong8.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLong8.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsSignedLongLong16.ddl
-      ${HDF5_TOOLS_SRC_DIR}/testfiles/tpbitsUnsignedLongLong16.ddl
+      tnofilename-with-packed-bits.ddl
+      tpbitsArray.ddl
+      tpbitsCompound.ddl
+      tpbitsIncomplete.ddl
+      tpbitsLengthExceeded.ddl
+      tpbitsCharLengthExceeded.ddl
+      tpbitsIntLengthExceeded.ddl
+      tpbitsLongLengthExceeded.ddl
+      tpbitsLengthPositive.ddl
+      tpbitsMax.ddl
+      tpbitsMaxExceeded.ddl
+      tpbitsOffsetExceeded.ddl
+      tpbitsCharOffsetExceeded.ddl
+      tpbitsIntOffsetExceeded.ddl
+      tpbitsLongOffsetExceeded.ddl
+      tpbitsOffsetNegative.ddl
+      tpbitsOverlapped.ddl
+      tpbitsSigned.ddl
+      tpbitsUnsigned.ddl
+      tpbitsSignedInt.ddl
+      tpbitsUnsignedInt.ddl
+      tpbitsSignedLong.ddl
+      tpbitsUnsignedLong.ddl
+      tpbitsSignedLongLong.ddl
+      tpbitsUnsignedLongLong.ddl
+      tpbitsSignedWhole.ddl
+      tpbitsUnsignedWhole.ddl
+      tpbitsSignedIntWhole.ddl
+      tpbitsUnsignedIntWhole.ddl
+      tpbitsSignedLongWhole.ddl
+      tpbitsUnsignedLongWhole.ddl
+      tpbitsSignedLongLongWhole.ddl
+      tpbitsUnsignedLongLongWhole.ddl
+      tpbitsSignedLongLongWhole1.ddl
+      tpbitsUnsignedLongLongWhole1.ddl
+      tpbitsSignedLongLongWhole63.ddl
+      tpbitsUnsignedLongLongWhole63.ddl
+      tpbitsSigned4.ddl
+      tpbitsUnsigned4.ddl
+      tpbitsSignedInt8.ddl
+      tpbitsUnsignedInt8.ddl
+      tpbitsSignedLong16.ddl
+      tpbitsUnsignedLong16.ddl
+      tpbitsSignedLongLong32.ddl
+      tpbitsUnsignedLongLong32.ddl
+      tpbitsSigned2.ddl
+      tpbitsUnsigned2.ddl
+      tpbitsSignedInt4.ddl
+      tpbitsUnsignedInt4.ddl
+      tpbitsSignedLong8.ddl
+      tpbitsUnsignedLong8.ddl
+      tpbitsSignedLongLong16.ddl
+      tpbitsUnsignedLongLong16.ddl
   )
   set (HDF5_REFERENCE_TEST_PBITS
       ${HDF5_TOOLS_SRC_DIR}/testfiles/packedbits.h5
@@ -70,19 +70,19 @@
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tcompound.h5
   )
   set (HDF5_ERROR_REFERENCE_PBITS
-      ${PROJECT_SOURCE_DIR}/errfiles/tnofilename-with-packed-bits.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsCharLengthExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsCharOffsetExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsIncomplete.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsIntLengthExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsIntOffsetExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsLengthExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsLengthPositive.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsLongLengthExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsLongOffsetExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsMaxExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsOffsetExceeded.err
-      ${PROJECT_SOURCE_DIR}/errfiles/tpbitsOffsetNegative.err
+      tnofilename-with-packed-bits.err
+      tpbitsCharLengthExceeded.err
+      tpbitsCharOffsetExceeded.err
+      tpbitsIncomplete.err
+      tpbitsIntLengthExceeded.err
+      tpbitsIntOffsetExceeded.err
+      tpbitsLengthExceeded.err
+      tpbitsLengthPositive.err
+      tpbitsLongLengthExceeded.err
+      tpbitsLongOffsetExceeded.err
+      tpbitsMaxExceeded.err
+      tpbitsOffsetExceeded.err
+      tpbitsOffsetNegative.err
   )
 
   foreach (pbits_h5_file ${HDF5_REFERENCE_TEST_PBITS})
@@ -96,7 +96,7 @@
         ARGS       -E copy_if_different ${pbits_h5_file} ${dest}
     )
   endforeach (pbits_h5_file ${HDF5_REFERENCE_TEST_PBITS})
-  
+
 
   foreach (ddl_pbits ${HDF5_REFERENCE_PBITS})
     GET_FILENAME_COMPONENT(fname "${ddl_pbits}" NAME)
@@ -106,7 +106,7 @@
         TARGET     h5dump
         POST_BUILD
         COMMAND    ${CMAKE_COMMAND}
-        ARGS       -E copy_if_different ${ddl_pbits} ${ddldest}
+        ARGS       -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/pbits/${ddl_pbits} ${ddldest}
     )
   endforeach (ddl_pbits ${HDF5_REFERENCE_PBITS})
 
@@ -118,10 +118,10 @@
         TARGET     h5dump
         POST_BUILD
         COMMAND    ${CMAKE_COMMAND}
-        ARGS       -E copy_if_different ${ddl_pbits} ${ddldest}
+        ARGS       -E copy_if_different ${PROJECT_SOURCE_DIR}/errfiles/${ddl_pbits} ${ddldest}
     )
   endforeach (ddl_pbits ${HDF5_ERROR_REFERENCE_PBITS})
-  
+
 ##############################################################################
 ##############################################################################
 ###           T H E   T E S T S  M A C R O S                               ###
@@ -163,7 +163,7 @@
 
 ##############################################################################
 ##############################################################################
-###           T H E   T E S T S                                          HDF5_ENABLE_USING_MEMCHECKER  ###
+###           T H E   T E S T S                                            ###
 ##############################################################################
 ##############################################################################
 
@@ -172,7 +172,7 @@
     add_test (
       NAME H5DUMP_PACKED_BITS-clearall-objects
       COMMAND    ${CMAKE_COMMAND}
-          -E remove 
+          -E remove
           tnofilename-with-packed-bits.out
           tnofilename-with-packed-bits.out.err
           tpbitsArray.out
diff --git a/tools/h5dump/h5dump_ddl.c b/tools/h5dump/h5dump_ddl.c
index 1227e6e..43d397c 100644
--- a/tools/h5dump/h5dump_ddl.c
+++ b/tools/h5dump/h5dump_ddl.c
@@ -112,7 +112,7 @@ dump_dataspace(hid_t space)
  *-------------------------------------------------------------------------
  */
 herr_t
-dump_attr_cb(hid_t oid, const char *attr_name, const H5A_info_t UNUSED *info, void UNUSED *_op_data)
+dump_attr_cb(hid_t oid, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *info, void H5_ATTR_UNUSED *_op_data)
 {
     h5tools_context_t ctx;            /* print context  */
     h5tool_format_t  *outputformat = &h5tools_dataformat;
@@ -182,7 +182,7 @@ dump_attr_cb(hid_t oid, const char *attr_name, const H5A_info_t UNUSED *info, vo
  *-------------------------------------------------------------------------
  */
 static herr_t
-dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void UNUSED *op_data)
+dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR_UNUSED *op_data)
 {
     hid_t       obj;
     herr_t      ret = SUCCEED;
@@ -1269,8 +1269,9 @@ dump_fcontents(hid_t fid)
         unsigned u;
 
         for (u = 0; u < type_table->nobjs; u++) {
-            if (!type_table->objs[u].recorded)
+            if (!type_table->objs[u].recorded) {
                 PRINTSTREAM(rawoutstream, " %-10s /#"H5_PRINTF_HADDR_FMT"\n", "datatype", type_table->objs[u].objno);
+            }
         }
     }
 
@@ -1281,7 +1282,7 @@ dump_fcontents(hid_t fid)
 }
 
 static herr_t
-attr_search(hid_t oid, const char *attr_name, const H5A_info_t UNUSED *ainfo, void *_op_data)
+attr_search(hid_t oid, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ainfo, void *_op_data)
 {
     herr_t              ret = SUCCEED;
     int 				i;
@@ -1337,7 +1338,7 @@ attr_search(hid_t oid, const char *attr_name, const H5A_info_t UNUSED *ainfo, vo
 } /* end attr_search() */
 
 static herr_t
-obj_search(const char *path, const H5O_info_t *oi, const char UNUSED *already_visited, void *_op_data)
+obj_search(const char *path, const H5O_info_t *oi, const char H5_ATTR_UNUSED *already_visited, void *_op_data)
 {
 	trav_handle_udata_t  *handle_data = (trav_handle_udata_t*)_op_data;
     char *op_name = (char*)handle_data->op_name;
@@ -1429,7 +1430,7 @@ lnk_search(const char *path, const H5L_info_t *li, void *_op_data)
  *-------------------------------------------------------------------------
  */
 void
-handle_paths(hid_t fid, const char *path_name, void UNUSED * data, int UNUSED pe, const char UNUSED *display_name)
+handle_paths(hid_t fid, const char *path_name, void H5_ATTR_UNUSED * data, int H5_ATTR_UNUSED pe, const char H5_ATTR_UNUSED *display_name)
 {
     hid_t  gid = -1;
 
@@ -1492,7 +1493,7 @@ handle_paths(hid_t fid, const char *path_name, void UNUSED * data, int UNUSED pe
  *-------------------------------------------------------------------------
  */
 void
-handle_attributes(hid_t fid, const char *attr, void UNUSED * data, int UNUSED pe, const char UNUSED *display_name)
+handle_attributes(hid_t fid, const char *attr, void H5_ATTR_UNUSED * data, int H5_ATTR_UNUSED pe, const char H5_ATTR_UNUSED *display_name)
 {
     hid_t  oid = -1;
     hid_t  attr_id = -1;
@@ -1803,7 +1804,7 @@ handle_datasets(hid_t fid, const char *dset, void *data, int pe, const char *dis
  *-------------------------------------------------------------------------
  */
 void
-handle_groups(hid_t fid, const char *group, void UNUSED *data, int pe, const char *display_name)
+handle_groups(hid_t fid, const char *group, void H5_ATTR_UNUSED *data, int pe, const char *display_name)
 {
     hid_t       gid;
     const char  *real_name = display_name ? display_name : group;
@@ -1853,7 +1854,7 @@ handle_groups(hid_t fid, const char *group, void UNUSED *data, int pe, const cha
  *-------------------------------------------------------------------------
  */
 void
-handle_links(hid_t fid, const char *links, void UNUSED * data, int UNUSED pe, const char UNUSED *display_name)
+handle_links(hid_t fid, const char *links, void H5_ATTR_UNUSED * data, int H5_ATTR_UNUSED pe, const char H5_ATTR_UNUSED *display_name)
 {
     H5L_info_t linfo;
 
@@ -1874,8 +1875,9 @@ handle_links(hid_t fid, const char *links, void UNUSED * data, int UNUSED pe, co
             begin_obj(h5tools_dump_header_format->softlinkbegin, links, h5tools_dump_header_format->softlinkblockbegin);
             PRINTVALSTREAM(rawoutstream, "\n");
             indentation(COL);
-            if(H5Lget_val(fid, links, buf, linfo.u.val_size, H5P_DEFAULT) >= 0)
+            if(H5Lget_val(fid, links, buf, linfo.u.val_size, H5P_DEFAULT) >= 0) {
                 PRINTSTREAM(rawoutstream, "LINKTARGET \"%s\"\n", buf);
+            }
             else {
                 error_msg("h5dump error: unable to get link value for \"%s\"\n", links);
                 h5tools_setstatus(EXIT_FAILURE);
@@ -1948,7 +1950,7 @@ handle_links(hid_t fid, const char *links, void UNUSED * data, int UNUSED pe, co
  *-------------------------------------------------------------------------
  */
 void
-handle_datatypes(hid_t fid, const char *type, void UNUSED * data, int pe, const char *display_name)
+handle_datatypes(hid_t fid, const char *type, void H5_ATTR_UNUSED * data, int pe, const char *display_name)
 {
     hid_t       type_id;
     const char  *real_name = display_name ? display_name : type;
diff --git a/tools/h5dump/h5dump_ddl.h b/tools/h5dump/h5dump_ddl.h
index c4f4638..6cd9181 100644
--- a/tools/h5dump/h5dump_ddl.h
+++ b/tools/h5dump/h5dump_ddl.h
@@ -36,10 +36,10 @@ herr_t    dump_attr_cb(hid_t loc_id, const char *attr_name, const H5A_info_t *in
 
 void handle_paths(hid_t fid, const char *path_name, void *data, int pe, const char *display_name);
 void handle_datasets(hid_t fid, const char *dset, void *data, int pe, const char *display_name);
-void handle_attributes(hid_t fid, const char *attr, void UNUSED * data, int UNUSED pe, const char UNUSED *display_name);
-void handle_groups(hid_t fid, const char *group, void UNUSED *data, int pe, const char *display_name);
-void handle_links(hid_t fid, const char *links, void UNUSED * data, int UNUSED pe, const char UNUSED *display_name);
-void handle_datatypes(hid_t fid, const char *type, void UNUSED * data, int pe, const char *display_name);
+void handle_attributes(hid_t fid, const char *attr, void H5_ATTR_UNUSED * data, int H5_ATTR_UNUSED pe, const char H5_ATTR_UNUSED *display_name);
+void handle_groups(hid_t fid, const char *group, void H5_ATTR_UNUSED *data, int pe, const char *display_name);
+void handle_links(hid_t fid, const char *links, void H5_ATTR_UNUSED * data, int H5_ATTR_UNUSED pe, const char H5_ATTR_UNUSED *display_name);
+void handle_datatypes(hid_t fid, const char *type, void H5_ATTR_UNUSED * data, int pe, const char *display_name);
 
 #ifdef __cplusplus
 }
diff --git a/tools/h5dump/h5dump_defines.h b/tools/h5dump/h5dump_defines.h
index 5f2df43..f1c4451 100644
--- a/tools/h5dump/h5dump_defines.h
+++ b/tools/h5dump/h5dump_defines.h
@@ -23,23 +23,26 @@
 #define COL             3
 
 /* Macros for displaying objects */
-#define begin_obj(obj,name,begin)                               \
-    do {              \
-        if ((name))                                             \
+#define begin_obj(obj,name,begin)                                                \
+    do {                                                                         \
+        if ((name)) {                                                            \
             PRINTSTREAM(rawoutstream, "%s \"%s\" %s", (obj), (name), (begin));   \
-        else                                                    \
-            PRINTSTREAM(rawoutstream, "%s %s", (obj), (begin));      \
+        } else {                                                                 \
+            PRINTSTREAM(rawoutstream, "%s %s", (obj), (begin));                  \
+        }                                                                        \
     } while(0);
 
-#define end_obj(obj,end)                                        \
-    do {              \
-        if(HDstrlen(end)) {                                     \
-            PRINTSTREAM(rawoutstream, "%s", end);                                  \
-            if(HDstrlen(obj))                                   \
-                PRINTVALSTREAM(rawoutstream, " ");                                    \
-        }                                                       \
-        if(HDstrlen(obj))                                       \
-            PRINTSTREAM(rawoutstream, "%s", obj);                                  \
+#define end_obj(obj,end)                               \
+    do {                                               \
+        if(HDstrlen(end)) {                            \
+            PRINTSTREAM(rawoutstream, "%s", end);      \
+            if(HDstrlen(obj)) {                        \
+                PRINTVALSTREAM(rawoutstream, " ");     \
+            }                                          \
+        }                                              \
+        if(HDstrlen(obj)) {                            \
+            PRINTSTREAM(rawoutstream, "%s", obj);      \
+        }                                              \
     } while(0);
 
 
diff --git a/tools/h5dump/h5dump_xml.c b/tools/h5dump/h5dump_xml.c
index 64667cb..353a0c3 100644
--- a/tools/h5dump/h5dump_xml.c
+++ b/tools/h5dump/h5dump_xml.c
@@ -141,7 +141,7 @@ static char            *xml_escape_the_name(const char *);
  *-------------------------------------------------------------------------
  */
 static herr_t
-xml_dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void UNUSED *op_data)
+xml_dump_all_cb(hid_t group, const char *name, const H5L_info_t *linfo, void H5_ATTR_UNUSED *op_data)
 {
     hid_t       obj;
     herr_t      ret = SUCCEED;
@@ -1854,7 +1854,7 @@ xml_dump_dataspace(hid_t space)
  *-------------------------------------------------------------------------
  */
 void
-xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNUSED pindex)
+xml_dump_data(hid_t obj_id, int obj_data, struct subset_t H5_ATTR_UNUSED * sset, int H5_ATTR_UNUSED pindex)
 {
     hid_t               space = -1;
     hid_t               type = -1;
@@ -2051,8 +2051,8 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNU
  *-------------------------------------------------------------------------
  */
 herr_t
-xml_dump_attr(hid_t attr, const char *attr_name, const H5A_info_t UNUSED *info,
-    void UNUSED * op_data)
+xml_dump_attr(hid_t attr, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *info,
+    void H5_ATTR_UNUSED * op_data)
 {
     hid_t             attr_id = -1;
     hid_t             type = -1;
@@ -3753,7 +3753,7 @@ xml_dump_fill_value(hid_t dcpl, hid_t type)
  *-------------------------------------------------------------------------
  */
 void
-xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED * sset)
+xml_dump_dataset(hid_t did, const char *name, struct subset_t H5_ATTR_UNUSED * sset)
 {
     hid_t               type;
     hid_t               space;
diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c
index 012dbe0..785b1e6 100644
--- a/tools/h5dump/h5dumpgentest.c
+++ b/tools/h5dump/h5dumpgentest.c
@@ -105,6 +105,11 @@
 #define FILE73  "tscalarintsize.h5"
 #define FILE74  "tscalarattrintsize.h5"
 #define FILE75  "tscalarstring.h5"
+#define FILE76  "tcmpdintarray.h5"
+#define FILE77  "tcmpdints.h5"
+#define FILE78  "tscalarintattrsize.h5"
+#define FILE79  "tintsattrs.h5"
+#define FILE80  "tbitnopaque.h5"
 
 /*-------------------------------------------------------------------------
  * prototypes
@@ -123,13 +128,13 @@ write_dset( hid_t loc_id, int rank, hsize_t *dims, const char *dset_name,
 
 /* a filter operation callback function */
 static size_t
-myfilter(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-        const unsigned int UNUSED *cd_values, size_t nbytes,
-        size_t UNUSED *buf_size, void UNUSED **buf);
+myfilter(unsigned int H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+        const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
+        size_t H5_ATTR_UNUSED *buf_size, void H5_ATTR_UNUSED **buf);
 
 /* a "set local" callback     */
 static herr_t
-set_local_myfilter(hid_t dcpl_id, hid_t tid, hid_t UNUSED sid);
+set_local_myfilter(hid_t dcpl_id, hid_t tid, hid_t H5_ATTR_UNUSED sid);
 
 #define MYFILTER_ID 405
 
@@ -146,8 +151,8 @@ const H5Z_class2_t H5Z_MYFILTER[1] = {{
 
 
 /* A UD link traversal function.  Shouldn't actually be called. */
-static hid_t UD_traverse(UNUSED const char * link_name, UNUSED hid_t cur_group,
-        UNUSED const void * udata, UNUSED size_t udata_size, UNUSED hid_t lapl_id)
+static hid_t UD_traverse(H5_ATTR_UNUSED const char * link_name, H5_ATTR_UNUSED hid_t cur_group,
+        H5_ATTR_UNUSED const void * udata, H5_ATTR_UNUSED size_t udata_size, H5_ATTR_UNUSED hid_t lapl_id)
 {
     return -1;
 }
@@ -295,7 +300,7 @@ typedef struct s1_t {
 /* Name of dataset to create in datafile   */
 #define F71_DATASETNAME   "CompoundAttrIntSize"
 
-/* "FILE73" macros and for FILE69 */
+/* "FILE73" macros and for FILE69 and FILE78 */
 #define F73_ARRAY_RANK  2
 #define F73_XDIM        8
 #define F73_DATASETU08        "DU08BITS"
@@ -312,6 +317,32 @@ typedef struct s1_t {
 #define F73_YDIM64      64
 #define F73_DUMMYDBL        "DummyDBL"
 
+/* "FILE76 and FILE77 */
+/* Name of dataset to create in datafile   */
+#define F76_DATASETNAME   "CompoundIntArray"
+#define F76_LENGTH      4
+#define F76_RANK        1
+#define F76_ARRAY_RANK  1
+#define F76_DATASETU08        "DU08BITS"
+#define F76_DATASETS08        "DS08BITS"
+#define F76_DIM8       8
+#define F76_DATASETU16       "DU16BITS"
+#define F76_DATASETS16       "DS16BITS"
+#define F76_DIM16      16
+#define F76_DATASETU32       "DU32BITS"
+#define F76_DATASETS32       "DS32BITS"
+#define F76_DIM32      32
+#define F76_DATASETU64       "DU64BITS"
+#define F76_DATASETS64       "DS64BITS"
+#define F76_DIM64      64
+#define F76_DUMMYDBL        "DummyDBL"
+/* Name of dataset to create in datafile   */
+#define F77_DATASETNAME1   "CompoundInts"
+#define F77_DATASETNAME2   "CompoundRInts"
+#define F77_LENGTH      64
+
+#define F80_DIM32      32
+
 static void
 gent_group(void)
 {
@@ -5586,9 +5617,9 @@ static void gent_filters(void)
  *-------------------------------------------------------------------------
  */
 static size_t
-myfilter(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-        const unsigned int UNUSED *cd_values, size_t nbytes,
-        size_t UNUSED *buf_size, void UNUSED **buf)
+myfilter(unsigned int H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+        const unsigned int H5_ATTR_UNUSED *cd_values, size_t nbytes,
+        size_t H5_ATTR_UNUSED *buf_size, void H5_ATTR_UNUSED **buf)
 {
     return nbytes;
 }
@@ -5603,7 +5634,7 @@ myfilter(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
  */
 
 static herr_t
-set_local_myfilter(hid_t dcpl_id, hid_t UNUSED tid, hid_t UNUSED sid)
+set_local_myfilter(hid_t dcpl_id, hid_t H5_ATTR_UNUSED tid, hid_t H5_ATTR_UNUSED sid)
 {
     unsigned flags;                        /* Filter flags */
     size_t   cd_nelmts = 0;                /* Number of filter parameters */
@@ -8527,6 +8558,1131 @@ gent_string_scalars(void)
     H5Fclose(fid);
 }
 
+static void gent_compound_int_array(void) {
+    hid_t fid, dataset, space;
+    hsize_t dims[1];
+    uint8_t  valu8bits;
+    uint16_t valu16bits;
+    uint32_t valu32bits;
+    uint64_t valu64bits;
+    int8_t  val8bits;
+    int16_t val16bits;
+    int32_t val32bits;
+    int64_t val64bits;
+    hsize_t    array_dim8[]={F76_DIM8}; /* Array dimensions         */
+    hsize_t    array_dim16[]={F76_DIM16}; /* Array dimensions         */
+    hsize_t    array_dim32[]={F76_DIM32}; /* Array dimensions         */
+    hsize_t    array_dim64[]={F76_DIM64}; /* Array dimensions         */
+    hid_t      arrayu8_tid;                 /* Array datatype handle    */
+    hid_t      arrayu16_tid;                /* Array datatype handle    */
+    hid_t      arrayu32_tid;                /* Array datatype handle    */
+    hid_t      arrayu64_tid;                /* Array datatype handle    */
+    hid_t      array8_tid;                 /* Array datatype handle    */
+    hid_t      array16_tid;                /* Array datatype handle    */
+    hid_t      array32_tid;                /* Array datatype handle    */
+    hid_t      array64_tid;                /* Array datatype handle    */
+    hid_t      arraydbl_tid;                /* Array datatype handle    */
+    /* Structure and array for compound types                             */
+    typedef struct Cmpd1Struct {
+            uint8_t  dsetu8[F76_DIM8];
+            uint16_t dsetu16[F76_DIM16];
+            uint32_t dsetu32[F76_DIM32];
+            uint64_t dsetu64[F76_DIM64];
+            int8_t  dset8[F76_DIM8];
+            int16_t dset16[F76_DIM16];
+            int32_t dset32[F76_DIM32];
+            int64_t dset64[F76_DIM64];
+            double  dsetdbl[F76_DIM8];
+    } Cmpd1Struct;
+    Cmpd1Struct Cmpd1[F76_LENGTH];
+
+    hid_t Cmpd1Structid; /* File datatype identifier */
+    herr_t status; /* Error checking variable */
+    hsize_t dim[] = { F76_LENGTH }; /* Dataspace dimensions     */
+
+    int m, n; /* Array init loop vars     */
+
+    /* Initialize the data in the arrays/datastructure                */
+    for (m = 0; m < F76_LENGTH; m++) {
+
+        /* Array of 8 bits unsigned int */
+        dims[0] = F76_DIM8;
+
+        valu8bits = (uint8_t) ~0u;  /* all 1s */
+        for(n = 0; n < dims[0]; n++){
+        	Cmpd1[m].dsetu8[n] = valu8bits;
+            valu8bits <<= 1;
+        }
+
+        /* Array of 16 bits unsigned int */
+        dims[0] = F76_DIM16;
+
+        valu16bits = (uint16_t) ~0u;  /* all 1s */
+        for(n = 0; n < dims[0]; n++){
+        	Cmpd1[m].dsetu16[n] = valu16bits;
+            valu16bits <<= 1;
+        }
+
+        /* Array of 32 bits unsigned int */
+        dims[0] = F76_DIM32;
+
+        valu32bits = (uint32_t) ~0u;  /* all 1s */
+        for(n = 0; n < dims[0]; n++){
+        	Cmpd1[m].dsetu32[n] = valu32bits;
+            valu32bits <<= 1;
+        }
+
+        /* Array of 64 bits unsigned int */
+        dims[0] = F76_DIM64;
+
+        valu64bits = (uint64_t) ~0Lu;  /* all 1s */
+        for(n = 0; n < dims[0]; n++){
+        	Cmpd1[m].dsetu64[n] = valu64bits;
+            valu64bits <<= 1;
+        }
+
+        /* Array of 8 bits signed int */
+        dims[0] = F76_DIM8;
+
+        val8bits = (int8_t) ~0;  /* all 1s */
+        for(n = 0; n < dims[0]; n++){
+        	Cmpd1[m].dset8[n] = val8bits;
+            val8bits <<= 1;
+        }
+
+        /* Array of 16 bits signed int */
+        dims[0] = F76_DIM16;
+
+        val16bits = (int16_t) ~0;  /* all 1s */
+        for(n = 0; n < dims[0]; n++){
+        	Cmpd1[m].dset16[n] = val16bits;
+            val16bits <<= 1;
+        }
+
+        /* Array of 32 bits signed int */
+        dims[0] = F76_DIM32;
+
+        val32bits = (int32_t) ~0;  /* all 1s */
+        for(n = 0; n < dims[0]; n++){
+        	Cmpd1[m].dset32[n] = val32bits;
+            val32bits <<= 1;
+        }
+
+        /* Array of 64 bits signed int */
+        dims[0] = F76_DIM64;
+
+        val64bits = (int64_t) ~0L;  /* all 1s */
+        for(n = 0; n < dims[0]; n++){
+        	Cmpd1[m].dset64[n] = val64bits;
+            val64bits <<= 1;
+        }
+
+        /* Double Dummy set for failure tests */
+        dims[0] = F76_DIM8;
+
+        for(n = 0; n < dims[0]; n++)
+           	Cmpd1[m].dsetdbl[n] = 0.0001F + n;
+    }
+
+    /* Create the array data type for the 8 bits signed int array             */
+    array8_tid = H5Tarray_create2(H5T_NATIVE_SCHAR, F76_ARRAY_RANK, array_dim8);
+    HDassert(array8_tid >= 0);
+
+    /* Create the array data type for the 16 bits signed int array             */
+    array16_tid = H5Tarray_create2(H5T_NATIVE_SHORT, F76_ARRAY_RANK, array_dim16);
+    HDassert(array16_tid >= 0);
+
+    /* Create the array data type for the 32 bits signed int array             */
+    array32_tid = H5Tarray_create2(H5T_NATIVE_INT, F76_ARRAY_RANK, array_dim32);
+    HDassert(array32_tid >= 0);
+
+    /* Create the array data type for the 64 bits signed int array             */
+    array64_tid = H5Tarray_create2(H5T_NATIVE_LONG, F76_ARRAY_RANK, array_dim64);
+    HDassert(array64_tid >= 0);
+
+    /* Create the array data type for the 8 bits signed int array             */
+    arrayu8_tid = H5Tarray_create2(H5T_NATIVE_UCHAR, F76_ARRAY_RANK, array_dim8);
+    HDassert(arrayu8_tid >= 0);
+
+    /* Create the array data type for the 16 bits signed int array             */
+    arrayu16_tid = H5Tarray_create2(H5T_NATIVE_USHORT, F76_ARRAY_RANK, array_dim16);
+    HDassert(arrayu16_tid >= 0);
+
+    /* Create the array data type for the 32 bits signed int array             */
+    arrayu32_tid = H5Tarray_create2(H5T_NATIVE_UINT, F76_ARRAY_RANK, array_dim32);
+    HDassert(arrayu32_tid >= 0);
+
+    /* Create the array data type for the 64 bits signed int array             */
+    arrayu64_tid = H5Tarray_create2(H5T_NATIVE_ULONG, F76_ARRAY_RANK, array_dim64);
+    HDassert(arrayu64_tid >= 0);
+
+    /* Create the array data type for the 32 bits double array             */
+    arraydbl_tid = H5Tarray_create2(H5T_NATIVE_DOUBLE, F76_ARRAY_RANK, array_dim8);
+    HDassert(arraydbl_tid >= 0);
+
+    /* Create the dataspace                                           */
+    space = H5Screate_simple(F76_RANK, dim, NULL);
+    HDassert(space >= 0);
+
+    /* Create the file                                                */
+    fid = H5Fcreate(FILE76, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+    HDassert(fid >= 0);
+
+    /* Create the memory data type                                    */
+    Cmpd1Structid = H5Tcreate(H5T_COMPOUND, sizeof(Cmpd1Struct));
+    HDassert(Cmpd1Structid >= 0);
+
+    /* Insert the arrays and variables into the structure             */
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETU08, HOFFSET(Cmpd1Struct, dsetu8), arrayu8_tid);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETU16, HOFFSET(Cmpd1Struct, dsetu16), arrayu16_tid);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETU32, HOFFSET(Cmpd1Struct, dsetu32), arrayu32_tid);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETU64, HOFFSET(Cmpd1Struct, dsetu64), arrayu64_tid);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETS08, HOFFSET(Cmpd1Struct, dset8), array8_tid);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETS16, HOFFSET(Cmpd1Struct, dset16), array16_tid);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETS32, HOFFSET(Cmpd1Struct, dset32), array32_tid);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETS64, HOFFSET(Cmpd1Struct, dset64), array64_tid);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DUMMYDBL, HOFFSET(Cmpd1Struct, dsetdbl), arraydbl_tid);
+    HDassert(status >= 0);
+
+    /* Create the dataset                                             */
+    dataset = H5Dcreate2(fid, F76_DATASETNAME, Cmpd1Structid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    /* Write data to the dataset                                      */
+    status = H5Dwrite(dataset, Cmpd1Structid, H5S_ALL, H5S_ALL, H5P_DEFAULT, Cmpd1);
+    HDassert(status >= 0);
+
+    /* Release resources                                              */
+    status = H5Tclose(Cmpd1Structid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(arrayu8_tid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(arrayu16_tid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(arrayu32_tid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(arrayu64_tid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(array8_tid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(array16_tid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(array32_tid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(array64_tid);
+    HDassert(status >= 0);
+
+    status = H5Tclose(arraydbl_tid);
+    HDassert(status >= 0);
+
+    status = H5Sclose(space);
+    HDassert(status >= 0);
+
+    status = H5Dclose(dataset);
+    HDassert(status >= 0);
+
+    status = H5Fclose(fid);
+    HDassert(status >= 0);
+}
+
+static void gent_compound_ints(void) {
+    hid_t fid, dataset, space;
+    uint8_t  valu8bits = (uint8_t) ~0u;  /* all 1s */
+    uint16_t valu16bits = (uint16_t) ~0u;  /* all 1s */
+    uint32_t valu32bits = (uint32_t) ~0u;  /* all 1s */
+    uint64_t valu64bits = (uint64_t) ~0Lu;  /* all 1s */
+    int8_t  val8bits = (int8_t) ~0;  /* all 1s */
+    int16_t val16bits = (int16_t) ~0;  /* all 1s */
+    int32_t val32bits = (int32_t) ~0;  /* all 1s */
+    int64_t val64bits = (int64_t) ~0L;  /* all 1s */
+    /* Structure and array for compound types                             */
+    typedef struct Cmpd1Struct {
+            uint8_t  dsetu8;
+            uint16_t dsetu16;
+            uint32_t dsetu32;
+            uint64_t dsetu64;
+            int8_t  dset8;
+            int16_t dset16;
+            int32_t dset32;
+            int64_t dset64;
+            double  dsetdbl;
+    } Cmpd1Struct;
+    Cmpd1Struct Cmpd1[F77_LENGTH];
+
+    typedef struct Cmpd2Struct {
+            uint64_t dsetu64;
+            uint32_t dsetu32;
+            uint16_t dsetu16;
+            uint8_t  dsetu8;
+            int64_t dset64;
+            int32_t dset32;
+            int16_t dset16;
+            int8_t  dset8;
+            double  dsetdbl;
+    } Cmpd2Struct;
+    Cmpd2Struct Cmpd2[F77_LENGTH];
+
+    hid_t Cmpd1Structid; /* File datatype identifier */
+    hid_t Cmpd2Structid; /* File datatype identifier */
+    herr_t status; /* Error checking variable */
+    hsize_t dim[] = { F77_LENGTH }; /* Dataspace dimensions     */
+
+    int m; /* Array init loop vars     */
+
+    /* Initialize the data in the arrays/datastructure                */
+    for (m = 0; m < F77_LENGTH; m++) {
+
+        /* Array of 8 bits unsigned int */
+    	if((m % F76_DIM8) == 0)
+    		valu8bits = (uint8_t) ~0u;  /* all 1s */
+       	Cmpd1[m].dsetu8 = valu8bits;
+       	Cmpd2[m].dsetu8 = valu8bits;
+        valu8bits <<= 1;
+
+        /* Array of 16 bits unsigned int */
+    	if((m % F76_DIM16) == 0)
+            valu16bits = (uint16_t) ~0u;  /* all 1s */
+		Cmpd1[m].dsetu16 = valu16bits;
+		Cmpd2[m].dsetu16 = valu16bits;
+		valu16bits <<= 1;
+
+        /* Array of 32 bits unsigned int */
+    	if((m % F76_DIM32) == 0)
+            valu32bits = (uint32_t) ~0u;  /* all 1s */
+		Cmpd1[m].dsetu32 = valu32bits;
+		Cmpd2[m].dsetu32 = valu32bits;
+		valu32bits <<= 1;
+
+        /* Array of 64 bits unsigned int */
+    	if((m % F76_DIM64) == 0)
+            valu64bits = (uint64_t) ~0Lu;  /* all 1s */
+		Cmpd1[m].dsetu64 = valu64bits;
+		Cmpd2[m].dsetu64 = valu64bits;
+		valu64bits <<= 1;
+
+        /* Array of 8 bits signed int */
+    	if((m % F76_DIM8) == 0)
+            val8bits = (int8_t) ~0;  /* all 1s */
+		Cmpd1[m].dset8 = val8bits;
+		Cmpd2[m].dset8 = val8bits;
+		val8bits <<= 1;
+
+        /* Array of 16 bits signed int */
+    	if((m % F76_DIM16) == 0)
+            val16bits = (int16_t) ~0;  /* all 1s */
+		Cmpd1[m].dset16 = val16bits;
+		Cmpd2[m].dset16 = val16bits;
+		val16bits <<= 1;
+
+        /* Array of 32 bits signed int */
+    	if((m % F76_DIM32) == 0)
+            val32bits = (int32_t) ~0;  /* all 1s */
+		Cmpd1[m].dset32 = val32bits;
+		Cmpd2[m].dset32 = val32bits;
+		val32bits <<= 1;
+
+        /* Array of 64 bits signed int */
+    	if((m % F76_DIM64) == 0)
+            val64bits = (int64_t) ~0L;  /* all 1s */
+		Cmpd1[m].dset64 = val64bits;
+		Cmpd2[m].dset64 = val64bits;
+		val64bits <<= 1;
+
+        /* Double Dummy set for failure tests */
+       	Cmpd1[m].dsetdbl = 0.0001F + m;
+       	Cmpd2[m].dsetdbl = 0.0001F + m;
+    }
+
+    /* Create the dataspace                                           */
+    space = H5Screate_simple(F76_RANK, dim, NULL);
+    HDassert(space >= 0);
+
+    /* Create the file                                                */
+    fid = H5Fcreate(FILE77, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+    HDassert(fid >= 0);
+
+    /* Create the memory data type                                    */
+    Cmpd1Structid = H5Tcreate(H5T_COMPOUND, sizeof(Cmpd1Struct));
+    HDassert(Cmpd1Structid >= 0);
+
+    /* Insert the arrays and variables into the structure             */
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETU08, HOFFSET(Cmpd1Struct, dsetu8), H5T_NATIVE_UCHAR);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETU16, HOFFSET(Cmpd1Struct, dsetu16), H5T_NATIVE_USHORT);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETU32, HOFFSET(Cmpd1Struct, dsetu32), H5T_NATIVE_UINT);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETU64, HOFFSET(Cmpd1Struct, dsetu64), H5T_NATIVE_ULONG);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETS08, HOFFSET(Cmpd1Struct, dset8), H5T_NATIVE_SCHAR);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETS16, HOFFSET(Cmpd1Struct, dset16), H5T_NATIVE_SHORT);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETS32, HOFFSET(Cmpd1Struct, dset32), H5T_NATIVE_INT);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DATASETS64, HOFFSET(Cmpd1Struct, dset64), H5T_NATIVE_LONG);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd1Structid, F76_DUMMYDBL, HOFFSET(Cmpd1Struct, dsetdbl), H5T_NATIVE_DOUBLE);
+    HDassert(status >= 0);
+
+    /* Create the dataset                                             */
+    dataset = H5Dcreate2(fid, F77_DATASETNAME1, Cmpd1Structid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    /* Write data to the dataset                                      */
+    status = H5Dwrite(dataset, Cmpd1Structid, H5S_ALL, H5S_ALL, H5P_DEFAULT, Cmpd1);
+    HDassert(status >= 0);
+
+    /* Release resources                                              */
+    status = H5Tclose(Cmpd1Structid);
+    HDassert(status >= 0);
+
+    status = H5Sclose(space);
+    HDassert(status >= 0);
+
+    status = H5Dclose(dataset);
+    HDassert(status >= 0);
+
+    /* Create the dataspace                                           */
+    space = H5Screate_simple(F76_RANK, dim, NULL);
+    HDassert(space >= 0);
+
+    /* Create the memory data type                                    */
+    Cmpd2Structid = H5Tcreate(H5T_COMPOUND, sizeof(Cmpd2Struct));
+    HDassert(Cmpd2Structid >= 0);
+
+    /* Insert the arrays and variables into the structure             */
+    status = H5Tinsert(Cmpd2Structid, F76_DATASETU64, HOFFSET(Cmpd2Struct, dsetu64), H5T_NATIVE_ULONG);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd2Structid, F76_DATASETU32, HOFFSET(Cmpd2Struct, dsetu32), H5T_NATIVE_UINT);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd2Structid, F76_DATASETU16, HOFFSET(Cmpd2Struct, dsetu16), H5T_NATIVE_USHORT);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd2Structid, F76_DATASETU08, HOFFSET(Cmpd2Struct, dsetu8), H5T_NATIVE_UCHAR);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd2Structid, F76_DATASETS64, HOFFSET(Cmpd2Struct, dset64), H5T_NATIVE_LONG);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd2Structid, F76_DATASETS32, HOFFSET(Cmpd2Struct, dset32), H5T_NATIVE_INT);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd2Structid, F76_DATASETS16, HOFFSET(Cmpd2Struct, dset16), H5T_NATIVE_SHORT);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd2Structid, F76_DATASETS08, HOFFSET(Cmpd2Struct, dset8), H5T_NATIVE_SCHAR);
+    HDassert(status >= 0);
+
+    status = H5Tinsert(Cmpd2Structid, F76_DUMMYDBL, HOFFSET(Cmpd2Struct, dsetdbl), H5T_NATIVE_DOUBLE);
+    HDassert(status >= 0);
+
+    /* Create the dataset                                             */
+    dataset = H5Dcreate2(fid, F77_DATASETNAME2, Cmpd2Structid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    /* Write data to the dataset                                      */
+    status = H5Dwrite(dataset, Cmpd2Structid, H5S_ALL, H5S_ALL, H5P_DEFAULT, Cmpd2);
+    HDassert(status >= 0);
+
+    /* Release resources                                              */
+    status = H5Tclose(Cmpd2Structid);
+    HDassert(status >= 0);
+
+    status = H5Sclose(space);
+    HDassert(status >= 0);
+
+    status = H5Dclose(dataset);
+    HDassert(status >= 0);
+
+    status = H5Fclose(fid);
+    HDassert(status >= 0);
+}
+
+/*-------------------------------------------------------------------------
+ * Function:    gent_intscalars
+ *
+ * Purpose:     Generate a file to be used in the h5dump scalar with attribute tests.
+ *   Four datasets of 1, 2, 4 and 8 bytes of unsigned int types are created.
+ *   Four more datasets of 1, 2, 4 and 8 bytes of signed int types are created.
+ *   Fill them with raw data such that no bit will be all zero in a dataset.
+ *   A dummy dataset of double type is created for failure test.
+ *-------------------------------------------------------------------------
+ */
+static void
+gent_intattrscalars(void)
+{
+    hid_t fid, attr, dataset, space, tid;
+    hsize_t dims[2];
+    uint8_t  dsetu8[F73_XDIM][F73_YDIM8],   valu8bits;
+    uint16_t dsetu16[F73_XDIM][F73_YDIM16], valu16bits;
+    uint32_t dsetu32[F73_XDIM][F73_YDIM32], valu32bits;
+    uint64_t dsetu64[F73_XDIM][F73_YDIM64], valu64bits;
+    int8_t  dset8[F73_XDIM][F73_YDIM8],   val8bits;
+    int16_t dset16[F73_XDIM][F73_YDIM16], val16bits;
+    int32_t dset32[F73_XDIM][F73_YDIM32], val32bits;
+    int64_t dset64[F73_XDIM][F73_YDIM64], val64bits;
+    double  dsetdbl[F73_XDIM][F73_YDIM8];
+    unsigned int i, j;
+
+    fid = H5Fcreate(FILE78, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+    /* Dataset of 8 bits unsigned int */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_STD_U8LE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DATASETU08, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    valu8bits = (uint8_t) ~0u;  /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dsetu8[i][0] = valu8bits;
+        for(j = 1; j < dims[1]; j++) {
+            dsetu8[i][j] = dsetu8[i][j-1] << 1;
+        }
+        valu8bits <<= 1;
+    }
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu8);
+    /* Attribute of 8 bits unsigned int */
+    attr = H5Acreate2(dataset, F73_DATASETU08, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dsetu8);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 16 bits unsigned int */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM16;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_STD_U16LE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DATASETU16, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    valu16bits = (uint16_t) ~0u;    /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dsetu16[i][0] = valu16bits;
+        for(j = 1; j < dims[1]; j++) {
+            dsetu16[i][j] = dsetu16[i][j-1] << 1;
+        }
+        valu16bits <<= 1;
+    }
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu16);
+    /* Attribute of 16 bits unsigned int */
+    attr = H5Acreate2(dataset, F73_DATASETU16, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dsetu16);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 32 bits unsigned int */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM32;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_STD_U32LE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DATASETU32, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    valu32bits = (uint32_t) ~0u;    /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dsetu32[i][0] = valu32bits;
+        for(j = 1; j < dims[1]; j++) {
+            dsetu32[i][j] = dsetu32[i][j-1] << 1;
+        }
+        valu32bits <<= 1;
+    }
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu32);
+    /* Attribute of 32 bits unsigned int */
+    attr = H5Acreate2(dataset, F73_DATASETU32, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dsetu32);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 64 bits unsigned int */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM64;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_STD_U64LE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DATASETU64, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    valu64bits = (uint64_t) ~0Lu;    /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dsetu64[i][0] = valu64bits;
+        for(j = 1; j < dims[1]; j++) {
+            dsetu64[i][j] = dsetu64[i][j-1] << 1;
+        }
+        valu64bits <<= 1;
+    }
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu64);
+    /* Attribute of 64 bits unsigned int */
+    attr = H5Acreate2(dataset, F73_DATASETU64, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dsetu64);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 8 bits signed int */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_STD_I8LE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DATASETS08, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    val8bits = (int8_t) ~0; /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dset8[i][0] = val8bits;
+        for(j = 1; j < dims[1]; j++) {
+            dset8[i][j] = dset8[i][j-1] << 1;
+        }
+        val8bits <<= 1;
+    }
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset8);
+    /* Attribute of 8 bits signed int */
+    attr = H5Acreate2(dataset, F73_DATASETS08, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dset8);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 16 bits signed int */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM16;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_STD_I16LE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DATASETS16, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    val16bits = (int16_t) ~0;   /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dset16[i][0] = val16bits;
+        for(j = 1; j < dims[1]; j++) {
+            dset16[i][j] = dset16[i][j-1] << 1;
+        }
+        val16bits <<= 1;
+    }
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset16);
+    /* Attribute of 16 bits signed int */
+    attr = H5Acreate2(dataset, F73_DATASETS16, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dset16);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 32 bits signed int */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM32;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_STD_I32LE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DATASETS32, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    val32bits = (int32_t) ~0;   /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dset32[i][0] = val32bits;
+        for(j = 1; j < dims[1]; j++) {
+            dset32[i][j] = dset32[i][j-1] << 1;
+        }
+        val32bits <<= 1;
+    }
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset32);
+    /* Attribute of 32 bits signed int */
+    attr = H5Acreate2(dataset, F73_DATASETS32, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dset32);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 64 bits signed int */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM64;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_STD_I64LE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DATASETS64, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    val64bits = (int64_t) ~0L;   /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dset64[i][0] = val64bits;
+        for(j = 1; j < dims[1]; j++) {
+            dset64[i][j] = dset64[i][j-1] << 1;
+        }
+        val64bits <<= 1;
+    }
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset64);
+    /* Attribute of 64 bits signed int */
+    attr = H5Acreate2(dataset, F73_DATASETS64, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dset64);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Double Dummy set for failure tests */
+    dims[0] = F73_XDIM; dims[1] = F73_YDIM8;
+    space = H5Screate(H5S_SCALAR);
+    tid = H5Tarray_create2(H5T_NATIVE_DOUBLE, F73_ARRAY_RANK, dims);
+    dataset = H5Dcreate2(fid, F73_DUMMYDBL, tid, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    for(i = 0; i < dims[0]; i++)
+        for(j = 0; j < dims[1]; j++)
+            dsetdbl[i][j] = 0.0001F * j + i;
+
+    H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl);
+    /* Attribute of double */
+    attr = H5Acreate2(dataset, F73_DUMMYDBL, tid, space, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, tid, dsetdbl);
+    H5Aclose(attr);
+    H5Sclose(space);
+    H5Dclose(dataset);
+    H5Fclose(fid);
+}
+
+/*-------------------------------------------------------------------------
+ * Function:    gent_packedbits
+ *
+ * Purpose:     Generate a file to be used in the h5dump packed bits tests.
+ *   Four datasets of 1, 2, 4 and 8 bytes of unsigned int types are created.
+ *   Four more datasets of 1, 2, 4 and 8 bytes of signed int types are created.
+ *   Fill them with raw data such that no bit will be all zero in a dataset.
+ *   A dummy dataset of double type is created for failure test.
+ * Created:  Albert Cheng, 2010/5/10.
+ * Modified: Allen Byrne, 2011/1/5 Use file to test Signed/Unsigned datatypes
+ *-------------------------------------------------------------------------
+ */
+static void
+gent_intsattrs(void)
+{
+    hid_t fid, attr, dataset, space, aspace;
+    hsize_t dims[2], adims[1];
+    uint8_t  dsetu8[F66_XDIM][F66_YDIM8],   asetu8[F66_XDIM*F66_YDIM8],   valu8bits;
+    uint16_t dsetu16[F66_XDIM][F66_YDIM16], asetu16[F66_XDIM*F66_YDIM16], valu16bits;
+    uint32_t dsetu32[F66_XDIM][F66_YDIM32], asetu32[F66_XDIM*F66_YDIM32], valu32bits;
+    uint64_t dsetu64[F66_XDIM][F66_YDIM64], asetu64[F66_XDIM*F66_YDIM64], valu64bits;
+    int8_t  dset8[F66_XDIM][F66_YDIM8],   aset8[F66_XDIM*F66_YDIM8],   val8bits;
+    int16_t dset16[F66_XDIM][F66_YDIM16], aset16[F66_XDIM*F66_YDIM16], val16bits;
+    int32_t dset32[F66_XDIM][F66_YDIM32], aset32[F66_XDIM*F66_YDIM32], val32bits;
+    int64_t dset64[F66_XDIM][F66_YDIM64], aset64[F66_XDIM*F66_YDIM64], val64bits;
+    double  dsetdbl[F66_XDIM][F66_YDIM8], asetdbl[F66_XDIM*F66_YDIM8];
+    unsigned int i, j;
+
+    fid = H5Fcreate(FILE79, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+    /* Dataset of 8 bits unsigned int */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM8;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DATASETU08, H5T_STD_U8LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    valu8bits = (uint8_t) ~0u;  /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dsetu8[i][0] = valu8bits;
+        asetu8[i*dims[1]] = dsetu8[i][0];
+        for(j = 1; j < dims[1]; j++) {
+            dsetu8[i][j] = dsetu8[i][j-1] << 1;
+            asetu8[i*dims[1]+j] = dsetu8[i][j];
+        }
+        valu8bits <<= 1;
+    }
+
+    H5Dwrite(dataset, H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu8);
+    /* Attribute of 8 bits unsigned int */
+    adims[0] = F66_XDIM * F66_YDIM8;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DATASETU08, H5T_STD_U8LE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_UINT8, asetu8);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 16 bits unsigned int */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM16;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DATASETU16, H5T_STD_U16LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    valu16bits = (uint16_t) ~0u;	/* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dsetu16[i][0] = valu16bits;
+        asetu16[i*dims[1]] = dsetu16[i][0];
+        for(j = 1; j < dims[1]; j++) {
+            dsetu16[i][j] = dsetu16[i][j-1] << 1;
+            asetu16[i*dims[1]+j] = dsetu16[i][j];
+        }
+        valu16bits <<= 1;
+    }
+
+    H5Dwrite(dataset, H5T_NATIVE_UINT16, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu16);
+    /* Attribute of 16 bits unsigned int */
+    adims[0] = F66_XDIM * F66_YDIM16;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DATASETU16, H5T_STD_U16LE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_UINT16, asetu16);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 32 bits unsigned int */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM32;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DATASETU32, H5T_STD_U32LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    valu32bits = (uint32_t) ~0u;	/* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dsetu32[i][0] = valu32bits;
+        asetu32[i*dims[1]] = dsetu32[i][0];
+        for(j = 1; j < dims[1]; j++) {
+            dsetu32[i][j] = dsetu32[i][j-1] << 1;
+            asetu32[i*dims[1]+j] = dsetu32[i][j];
+        }
+        valu32bits <<= 1;
+    }
+
+    H5Dwrite(dataset, H5T_NATIVE_UINT32, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu32);
+    /* Attribute of 32 bits unsigned int */
+    adims[0] = F66_XDIM * F66_YDIM32;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DATASETU32, H5T_STD_U32LE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_UINT32, asetu32);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 64 bits unsigned int */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM64;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DATASETU64, H5T_STD_U64LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    valu64bits = (uint64_t) ~0Lu;    /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dsetu64[i][0] = valu64bits;
+        asetu64[i*dims[1]] = dsetu64[i][0];
+        for(j = 1; j < dims[1]; j++) {
+            dsetu64[i][j] = dsetu64[i][j-1] << 1;
+            asetu64[i*dims[1]+j] = dsetu64[i][j];
+        }
+        valu64bits <<= 1;
+    }
+
+    H5Dwrite(dataset, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetu64);
+    /* Attribute of 64 bits unsigned int */
+    adims[0] = F66_XDIM * F66_YDIM64;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DATASETU64, H5T_STD_U64LE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_UINT64, asetu64);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 8 bits signed int */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM8;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DATASETS08, H5T_STD_I8LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    val8bits = (int8_t) ~0;	/* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dset8[i][0] = val8bits;
+        aset8[i*dims[1]] = dset8[i][0];
+        for(j = 1; j < dims[1]; j++) {
+            dset8[i][j] = dset8[i][j-1] << 1;
+            aset8[i*dims[1]+j] = dset8[i][j];
+        }
+        val8bits <<= 1;
+    }
+
+    H5Dwrite(dataset, H5T_NATIVE_INT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset8);
+    /* Attribute of 8 bits signed int */
+    adims[0] = F66_XDIM * F66_YDIM8;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DATASETS08, H5T_STD_I8LE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_INT8, aset8);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 16 bits signed int */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM16;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DATASETS16, H5T_STD_I16LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    val16bits = (int16_t) ~0;	/* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dset16[i][0] = val16bits;
+        aset16[i*dims[1]] = dset16[i][0];
+        for(j = 1; j < dims[1]; j++) {
+            dset16[i][j] = dset16[i][j-1] << 1;
+            aset16[i*dims[1]+j] = dset16[i][j];
+        }
+        val16bits <<= 1;
+    }
+
+    H5Dwrite(dataset, H5T_NATIVE_INT16, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset16);
+    /* Attribute of 16 bits signed int */
+    adims[0] = F66_XDIM * F66_YDIM16;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DATASETS16, H5T_STD_I16LE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_INT16, aset16);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 32 bits signed int */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM32;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DATASETS32, H5T_STD_I32LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    val32bits = (int32_t) ~0;	/* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dset32[i][0] = val32bits;
+        aset32[i*dims[1]] = dset32[i][0];
+        for(j = 1; j < dims[1]; j++) {
+            dset32[i][j] = dset32[i][j-1] << 1;
+            aset32[i*dims[1]+j] = dset32[i][j];
+        }
+        val32bits <<= 1;
+    }
+
+    H5Dwrite(dataset, H5T_NATIVE_INT32, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset32);
+    /* Attribute of 32 bits signed int */
+    adims[0] = F66_XDIM * F66_YDIM32;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DATASETS32, H5T_STD_I32LE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_INT32, aset32);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Dataset of 64 bits signed int */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM64;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DATASETS64, H5T_STD_I64LE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    val64bits = (int64_t) ~0L;   /* all 1s */
+    for(i = 0; i < dims[0]; i++){
+        dset64[i][0] = val64bits;
+        aset64[i*dims[1]] = dset64[i][0];
+        for(j = 1; j < dims[1]; j++) {
+            dset64[i][j] = dset64[i][j-1] << 1;
+            aset64[i*dims[1]+j] = dset64[i][j];
+        }
+        val64bits <<= 1;
+    }
+
+    H5Dwrite(dataset, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset64);
+    /* Attribute of 64 bits signed int */
+    adims[0] = F66_XDIM * F66_YDIM64;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DATASETS64, H5T_STD_I64LE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_INT64, aset64);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+
+    /* Double Dummy set for failure tests */
+    dims[0] = F66_XDIM; dims[1] = F66_YDIM8;
+    space = H5Screate_simple(2, dims, NULL);
+    dataset = H5Dcreate2(fid, F66_DUMMYDBL, H5T_IEEE_F64BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+    for(i = 0; i < dims[0]; i++)
+        for(j = 0; j < dims[1]; j++) {
+            dsetdbl[i][j] = 0.0001F * j + i;
+            asetdbl[i*dims[1]+j] = dsetdbl[i][j];
+        }
+
+    H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl);
+    /* Attribute of double */
+    adims[0] = F66_XDIM * F66_YDIM8;
+    aspace = H5Screate_simple(1, adims, NULL);
+    attr = H5Acreate2(dataset, F66_DUMMYDBL, H5T_IEEE_F64BE, aspace, H5P_DEFAULT, H5P_DEFAULT);
+    H5Awrite(attr, H5T_NATIVE_DOUBLE, asetdbl);
+    H5Aclose(attr);
+    H5Sclose(aspace);
+    H5Sclose(space);
+    H5Dclose(dataset);
+    H5Fclose(fid);
+}
+
+static void gent_bitnopaquefields(void)
+{
+    /* Compound datatype */
+    typedef struct s_t
+    {
+        unsigned char   a;
+        unsigned int    b;
+        unsigned long    c;
+        unsigned long long    d;
+    } s_t;
+    hid_t  file, grp=-1, type=-1, space=-1, dset=-1;
+    size_t  i;
+    hsize_t  nelmts = F80_DIM32;
+    unsigned char buf[F80_DIM32];    /* bitfield, opaque */
+    unsigned int buf2[F80_DIM32];    /* bitfield, opaque */
+    unsigned long buf3[F80_DIM32];    /* bitfield, opaque */
+    unsigned long long buf4[F80_DIM32];    /* bitfield, opaque */
+    s_t      buf5[F80_DIM32];        /* compound */
+
+    file = H5Fcreate(FILE80, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+    if ((grp = H5Gcreate2(file, "bittypetests", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+        /* bitfield_1 */
+        if ((type = H5Tcopy(H5T_STD_B8LE)) >= 0) {
+            if ((space = H5Screate_simple(1, &nelmts, NULL)) >= 0) {
+                if ((dset = H5Dcreate2(grp, "bitfield_1", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+                    for (i = 0; i < nelmts; i++) {
+                        buf[i] = (unsigned char)0xff ^ (unsigned char)i;
+                    }
+                    H5Dwrite(dset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf);
+                    H5Dclose(dset);
+                }
+                H5Sclose(space);
+            }
+            H5Tclose(type);
+        }
+
+        /* bitfield_2 */
+        if ((type = H5Tcopy(H5T_STD_B16LE)) >= 0) {
+            if ((space = H5Screate_simple(1, &nelmts, NULL)) >= 0) {
+                if ((dset = H5Dcreate2(grp, "bitfield_2", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+                    for (i = 0; i < nelmts; i++) {
+                        buf2[i] = (unsigned int)0xffff ^ (unsigned int)(i * 16);
+                    }
+                    H5Dwrite(dset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf2);
+                    H5Dclose(dset);
+                }
+                H5Sclose(space);
+            }
+            H5Tclose(type);
+        }
+
+        /* bitfield_3 */
+        if ((type = H5Tcopy(H5T_STD_B32LE)) >= 0) {
+            if ((space = H5Screate_simple(1, &nelmts, NULL)) >= 0) {
+                if ((dset = H5Dcreate2(grp, "bitfield_3", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+                    for (i = 0; i < nelmts; i++) {
+                        buf3[i] = (unsigned long)0xffffffff ^ (unsigned long)(i * 32);
+                    }
+                    H5Dwrite(dset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf3);
+                    H5Dclose(dset);
+                }
+                H5Sclose(space);
+            }
+            H5Tclose(type);
+        }
+
+        /* bitfield_4 */
+        if ((type = H5Tcopy(H5T_STD_B64LE)) >= 0) {
+            if ((space = H5Screate_simple(1, &nelmts, NULL)) >= 0) {
+                if ((dset = H5Dcreate2(grp, "bitfield_4", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+                    for (i = 0; i < nelmts; i++) {
+                        buf4[i] = (unsigned long long)0xffffffffffffffff ^ (unsigned long long)(i * 64);
+                    }
+                    H5Dwrite(dset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf4);
+                    H5Dclose(dset);
+                }
+                H5Sclose(space);
+            }
+            H5Tclose(type);
+        }
+
+        H5Gclose(grp);
+    }
+
+    if ((grp = H5Gcreate2(file, "opaquetypetests", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+        /* opaque_1 */
+        if ((type = H5Tcreate(H5T_OPAQUE, 1)) >= 0) {
+            if ((H5Tset_tag(type, "1-byte opaque type")) >= 0) {
+                if ((space = H5Screate_simple(1, &nelmts, NULL)) >= 0) {
+                    if ((dset = H5Dcreate2(grp, "opaque_1", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+                        for(i = 0; i < nelmts; i++)
+                            buf[i] = (unsigned char)0xff ^ (unsigned char)i;
+                        H5Dwrite(dset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf);
+                        H5Dclose(dset);
+                    }
+                    H5Sclose(space);
+                }
+            }
+            H5Tclose(type);
+        }
+
+        /* opaque_2 */
+        if ((type = H5Tcreate(H5T_OPAQUE, 2)) >= 0) {
+            if ((H5Tset_tag(type, "2-byte opaque type")) >= 0) {
+                if ((space = H5Screate_simple(1, &nelmts, NULL)) >= 0) {
+                    if ((dset = H5Dcreate2(grp, "opaque_2", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+                        for(i = 0; i < nelmts; i++)
+                            buf2[i] = (unsigned int)0xffff ^ (unsigned int)(i * 16);
+
+                        H5Dwrite(dset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf2);
+                        H5Dclose(dset);
+                    }
+                    H5Sclose(space);
+                }
+            }
+            H5Tclose(type);
+        }
+        H5Gclose(grp);
+    }
+
+    if ((grp = H5Gcreate2(file, "cmpdtypetests", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+        /* compound_1 */
+        if ((type = H5Tcreate(H5T_COMPOUND, sizeof(s_t))) >= 0) {
+            H5Tinsert(type, "a", HOFFSET(s_t, a), H5T_STD_B8LE);
+            H5Tinsert(type, "b", HOFFSET(s_t, b), H5T_STD_B16LE);
+            H5Tinsert(type, "c", HOFFSET(s_t, c), H5T_STD_B32LE);
+            H5Tinsert(type, "d", HOFFSET(s_t, d), H5T_STD_B64LE);
+            if ((space = H5Screate_simple(1, &nelmts, NULL)) >= 0) {
+                if ((dset = H5Dcreate2(grp, "compound_1", type, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) >= 0) {
+                    for(i = 0; i < nelmts; i++) {
+                        buf5[i].a = (unsigned char)0xff ^ (unsigned char)i;
+                        buf5[i].b = (unsigned int)0xffff ^ (unsigned int)(i * 16);
+                        buf5[i].c = (unsigned long)0xffffffff ^ (unsigned long)(i * 32);
+                        buf5[i].d = (unsigned long long)0xffffffffffffffff ^ (unsigned long long)(i * 64);
+                    }
+
+                    H5Dwrite(dset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf5);
+                    H5Dclose(dset);
+                }
+                H5Sclose(space);
+            }
+            H5Tclose(type);
+        }
+        H5Gclose(grp);
+    }
+
+    H5Fclose(file);
+}
+
+
 /*-------------------------------------------------------------------------
  * Function: main
  *
@@ -8611,6 +9767,11 @@ int main(void)
     gent_intscalars();
     gent_attr_intscalars();
     gent_string_scalars();
+    gent_compound_int_array();
+    gent_compound_ints();
+    gent_intattrscalars();
+    gent_intsattrs();
+    gent_bitnopaquefields();
 
     return 0;
 }
diff --git a/tools/h5dump/testh5dumppbits.sh.in b/tools/h5dump/testh5dumppbits.sh.in
index 6556ff5..4211c63 100644
--- a/tools/h5dump/testh5dumppbits.sh.in
+++ b/tools/h5dump/testh5dumppbits.sh.in
@@ -28,10 +28,10 @@ EXIT_FAILURE=1
 DUMPER=h5dump                     # The tool name
 DUMPER_BIN=`pwd`/$DUMPER          # The path of the tool binary
 
-H5DIFF=../h5diff/h5diff           # The h5diff tool name 
+H5DIFF=../h5diff/h5diff           # The h5diff tool name
 H5DIFF_BIN=`pwd`/$H5DIFF          # The path of the h5diff  tool binary
 
-H5IMPORT=../h5import/h5import     # The h5import tool name 
+H5IMPORT=../h5import/h5import     # The h5import tool name
 H5IMPORT_BIN=`pwd`/$H5IMPORT      # The path of the h5import  tool binary
 
 RM='rm -rf'
@@ -81,59 +81,59 @@ $SRC_H5DUMP_TESTFILES/tcompound.h5
 "
 
 LIST_OTHER_TEST_FILES="
-$SRC_H5DUMP_TESTFILES/tnofilename-with-packed-bits.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsArray.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsCompound.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsIncomplete.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsLengthExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsCharLengthExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsIntLengthExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsLongLengthExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsLengthPositive.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsMax.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsMaxExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsOffsetExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsCharOffsetExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsIntOffsetExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsLongOffsetExceeded.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsOffsetNegative.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsOverlapped.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSigned.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsigned.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedInt.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedInt.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLong.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLong.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLongLong.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLongLong.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedWhole.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedWhole.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedIntWhole.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedIntWhole.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLongWhole.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLongWhole.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLongLongWhole.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLongLongWhole.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLongLongWhole1.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLongLongWhole1.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLongLongWhole63.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLongLongWhole63.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSigned4.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsigned4.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedInt8.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedInt8.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLong16.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLong16.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLongLong32.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLongLong32.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSigned2.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsigned2.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedInt4.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedInt4.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLong8.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLong8.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsSignedLongLong16.ddl
-$SRC_H5DUMP_TESTFILES/tpbitsUnsignedLongLong16.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tnofilename-with-packed-bits.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsArray.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsCompound.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsIncomplete.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsLengthExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsCharLengthExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsIntLengthExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsLongLengthExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsLengthPositive.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsMax.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsMaxExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsOffsetExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsCharOffsetExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsIntOffsetExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsLongOffsetExceeded.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsOffsetNegative.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsOverlapped.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSigned.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsigned.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedInt.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedInt.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLong.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLong.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLongLong.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLongLong.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedWhole.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedWhole.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedIntWhole.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedIntWhole.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLongWhole.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLongWhole.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLongLongWhole.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLongLongWhole.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLongLongWhole1.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLongLongWhole1.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLongLongWhole63.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLongLongWhole63.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSigned4.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsigned4.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedInt8.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedInt8.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLong16.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLong16.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLongLong32.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLongLong32.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSigned2.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsigned2.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedInt4.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedInt4.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLong8.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLong8.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsSignedLongLong16.ddl
+$SRC_H5DUMP_TESTFILES/pbits/tpbitsUnsignedLongLong16.ddl
 "
 
 LIST_ERROR_TEST_FILES="
@@ -173,10 +173,10 @@ COPY_TESTFILES_TO_TESTDIR()
             INODE_SDIR=`$LS -i -d $SDIR | $AWK -F' ' '{print $1}'`
             INODE_DDIR=`$LS -i -d $TESTDIR | $AWK -F' ' '{print $1}'`
             if [ "$INODE_SDIR" != "$INODE_DDIR" ]; then
-    	        $CP -f $tstfile $TESTDIR
+              $CP -f $tstfile $TESTDIR
                 if [ $? -ne 0 ]; then
                     echo "Error: FAILED to copy $tstfile ."
-                
+
                     # Comment out this to CREATE expected file
                     exit $EXIT_FAILURE
                 fi
@@ -303,7 +303,7 @@ TOOLTEST2() {
      nerrors="`expr $nerrors + 1`"
      test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/    /'
     fi
-    
+
     # Clean up output file
     if test -z "$HDF5_NOCLEANUP"; then
      rm -f $actual $actualdata $actual_err
@@ -434,7 +434,7 @@ SKIP() {
    TESTING $DUMPER $@
     echo  " -SKIP-"
 }
-  
+
 # Print a line-line message left justified in a field of 70 characters
 #
 PRINT_H5DIFF() {
@@ -445,7 +445,7 @@ PRINT_H5DIFF() {
 
 # Call the h5diff tool
 #
-DIFFTEST() 
+DIFFTEST()
 {
     PRINT_H5DIFF  $@
     (
@@ -459,7 +459,7 @@ DIFFTEST()
     else
          echo " PASSED"
     fi
-        
+
 }
 
 # Print a line-line message left justified in a field of 70 characters
@@ -472,7 +472,7 @@ PRINT_H5IMPORT() {
 
 # Call the h5import tool
 #
-IMPORTTEST() 
+IMPORTTEST()
 {
     # remove the output hdf5 file if it exists
     hdf5_file="$TESTDIR/$5"
@@ -483,7 +483,7 @@ IMPORTTEST()
     PRINT_H5IMPORT  $@
     (
   cd $TESTDIR
-  $RUNSERIAL $H5IMPORT_BIN "$@" 
+  $RUNSERIAL $H5IMPORT_BIN "$@"
     )
     RET=$?
     if [ $RET != 0 ] ; then
@@ -492,7 +492,7 @@ IMPORTTEST()
     else
          echo " PASSED"
     fi
-        
+
 }
 
 
diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt
index bf1515e..b885a76 100644
--- a/tools/h5import/CMakeLists.txt
+++ b/tools/h5import/CMakeLists.txt
@@ -10,8 +10,8 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # Add the h5import executables
 # --------------------------------------------------------------------
 add_executable (h5import ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5import.c)
-TARGET_NAMING (h5import ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5import ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5import STATIC)
+TARGET_C_PROPERTIES (h5import STATIC " " " ")
 target_link_libraries (h5import  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 #set_target_properties (h5import PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT)
 set_target_properties (h5import PROPERTIES FOLDER tools)
@@ -23,8 +23,8 @@ if (BUILD_TESTING)
   # Add the h5import executables
   # --------------------------------------------------------------------
   add_executable (h5importtest ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5importtest.c)
-  TARGET_NAMING (h5importtest ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5importtest ${LIB_TYPE} " " " ")
+  TARGET_NAMING (h5importtest STATIC)
+  TARGET_C_PROPERTIES (h5importtest STATIC " " " ")
   target_link_libraries (h5importtest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
   set_target_properties (h5importtest PROPERTIES FOLDER tools)
 
@@ -47,8 +47,5 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5import
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
diff --git a/tools/h5jam/CMakeLists.txt b/tools/h5jam/CMakeLists.txt
index 4498132..c01f8f7 100644
--- a/tools/h5jam/CMakeLists.txt
+++ b/tools/h5jam/CMakeLists.txt
@@ -10,26 +10,26 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # Add the h5jam executables
 # --------------------------------------------------------------------
 add_executable (h5jam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jam.c)
-TARGET_NAMING (h5jam ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5jam ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5jam STATIC)
+TARGET_C_PROPERTIES (h5jam STATIC " " " ")
 target_link_libraries (h5jam  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5jam PROPERTIES FOLDER tools)
 
 add_executable (getub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/getub.c)
-TARGET_NAMING (getub ${LIB_TYPE})
-TARGET_C_PROPERTIES (getub ${LIB_TYPE} " " " ")
+TARGET_NAMING (getub STATIC)
+TARGET_C_PROPERTIES (getub STATIC " " " ")
 target_link_libraries (getub  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (getub PROPERTIES FOLDER tools)
 
 add_executable (tellub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/tellub.c)
-TARGET_NAMING (tellub ${LIB_TYPE})
-TARGET_C_PROPERTIES (tellub ${LIB_TYPE} " " " ")
+TARGET_NAMING (tellub STATIC)
+TARGET_C_PROPERTIES (tellub STATIC " " " ")
 target_link_libraries (tellub  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (tellub PROPERTIES FOLDER tools)
 
 add_executable (h5unjam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5unjam.c)
-TARGET_NAMING (h5unjam ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5unjam ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5unjam STATIC)
+TARGET_C_PROPERTIES (h5unjam STATIC " " " ")
 target_link_libraries (h5unjam  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5unjam PROPERTIES FOLDER tools)
 
@@ -44,15 +44,15 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   # Add the h5jam test executables
   # --------------------------------------------------------------------
-  if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  if (HDF5_BUILD_GENERATORS)
     add_executable (h5jamgentest ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jamgentest.c)
-    TARGET_NAMING (h5jamgentest ${LIB_TYPE})
-    TARGET_C_PROPERTIES (testhdf5 ${LIB_TYPE} " " " ")
+    TARGET_NAMING (h5jamgentest STATIC)
+    TARGET_C_PROPERTIES (testhdf5 STATIC " " " ")
     target_link_libraries (h5jamgentest ${HDF5_LIB_TARGET})
     set_target_properties (h5jamgentest PROPERTIES FOLDER generator/tools)
     
     #add_test (NAME h5jamgentest COMMAND $<TARGET_FILE:h5jamgentest>)
-  endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  endif (HDF5_BUILD_GENERATORS)
 
   include (CMakeTests.cmake)
 
@@ -73,8 +73,5 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5jam h5unjam
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
diff --git a/tools/h5jam/h5jamgentest.c b/tools/h5jam/h5jamgentest.c
index 5a93c13..5f24566 100644
--- a/tools/h5jam/h5jamgentest.c
+++ b/tools/h5jam/h5jamgentest.c
@@ -96,8 +96,8 @@ typedef struct s1_t {
 #define ARRAY3_DIM2 3
 
 /* A UD link traversal function.  Shouldn't actually be called. */
-static hid_t UD_traverse(const char UNUSED * link_name, hid_t UNUSED cur_group,
-    const void UNUSED * udata, size_t UNUSED udata_size, hid_t UNUSED lapl_id)
+static hid_t UD_traverse(const char H5_ATTR_UNUSED * link_name, hid_t H5_ATTR_UNUSED cur_group,
+    const void H5_ATTR_UNUSED * udata, size_t H5_ATTR_UNUSED udata_size, hid_t H5_ATTR_UNUSED lapl_id)
 {
     return -1;
 }
diff --git a/tools/h5jam/testh5jam.sh.in b/tools/h5jam/testh5jam.sh.in
index 8e4aca7..1664d6b 100644
--- a/tools/h5jam/testh5jam.sh.in
+++ b/tools/h5jam/testh5jam.sh.in
@@ -509,10 +509,10 @@ TOOLTEST_OUTPUT() {
 	    # Create the expect file if it doesn't yet exist.
         echo " CREATED"
         cp $actual $expect
-	    rm -f $actual $actual_err
+	    rm -f $actual $actual_sav $actual_err $actual_err_sav
     elif $CMP $expect $actual; then
         echo " PASSED"
-	    rm -f $actual $actual_err
+	    rm -f $actual $actual_sav $actual_err $actual_err_sav
     else
         echo "*FAILED*"
 	    echo "    Expected result differs from actual result"
diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt
index 984b36b..4e96db2 100644
--- a/tools/h5ls/CMakeLists.txt
+++ b/tools/h5ls/CMakeLists.txt
@@ -10,8 +10,8 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # Add the h5ls executable
 #-----------------------------------------------------------------------------
 add_executable (h5ls ${HDF5_TOOLS_H5LS_SOURCE_DIR}/h5ls.c)
-TARGET_NAMING (h5ls ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5ls ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5ls STATIC)
+TARGET_C_PROPERTIES (h5ls STATIC " " " ")
 target_link_libraries (h5ls  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5ls PROPERTIES FOLDER tools)
 
@@ -40,8 +40,5 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5ls
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c
index 4b8a50b..708e9de 100644
--- a/tools/h5ls/h5ls.c
+++ b/tools/h5ls/h5ls.c
@@ -45,11 +45,7 @@ static h5tool_format_t         ls_dataformat = {
         "", /*fmt_raw */
         "%d", /*fmt_int */
         "%u", /*fmt_uint */
-#ifdef H5_VMS
-        "%hd", /*fmt_schar */
-#else
         "%hhd", /*fmt_schar */
-#endif
         "%u", /*fmt_uchar */
         "%d", /*fmt_short */
         "%u", /*fmt_ushort */
@@ -159,6 +155,8 @@ static struct dispatch_t {
 }
 
 static void print_type(h5tools_str_t *buffer, hid_t type, int ind);
+static hbool_t print_int_type(h5tools_str_t *buffer, hid_t type, int ind);
+static hbool_t print_float_type(h5tools_str_t *buffer, hid_t type, int ind);
 static herr_t visit_obj(hid_t file, const char *oname, iter_t *iter);
 
 

@@ -298,7 +296,7 @@ print_string(h5tools_str_t *buffer, const char *s, hbool_t escape_spaces)
                 if (escape_spaces) {
                     if (buffer) h5tools_str_append(buffer, "\\ ");
                     nprint += 2;
-                } 
+                }
                 else {
                     if (buffer) h5tools_str_append(buffer, " ");
                     nprint++;
@@ -308,7 +306,7 @@ print_string(h5tools_str_t *buffer, const char *s, hbool_t escape_spaces)
                 if (isprint((int)*s)) {
                     if (buffer) h5tools_str_append(buffer, "%c", *s);
                     nprint++;
-                } 
+                }
                 else {
                     if (buffer) h5tools_str_append(buffer, "\\%03o", *((const unsigned char*)s));
                     nprint += 4;
@@ -389,102 +387,106 @@ print_obj_name(h5tools_str_t *buffer, const iter_t *iter, const char *oname,
  *-------------------------------------------------------------------------
  */
 static hbool_t
-print_native_type(h5tools_str_t *buffer, hid_t type, int UNUSED ind)
+print_native_type(h5tools_str_t *buffer, hid_t type, int H5_ATTR_UNUSED ind)
 {
-    if (H5Tequal(type, H5T_NATIVE_SCHAR)==TRUE) {
-        h5tools_str_append(buffer, "native signed char");
-    } else if (H5Tequal(type, H5T_NATIVE_UCHAR)==TRUE) {
-        h5tools_str_append(buffer, "native unsigned char");
-    } else if (H5Tequal(type, H5T_NATIVE_INT)==TRUE) {
-        h5tools_str_append(buffer, "native int");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT)==TRUE) {
-        h5tools_str_append(buffer, "native unsigned int");
-    } else if (H5Tequal(type, H5T_NATIVE_SHORT)==TRUE) {
-        h5tools_str_append(buffer, "native short");
-    } else if (H5Tequal(type, H5T_NATIVE_USHORT)==TRUE) {
-        h5tools_str_append(buffer, "native unsigned short");
-    } else if (H5Tequal(type, H5T_NATIVE_LONG)==TRUE) {
-        h5tools_str_append(buffer, "native long");
-    } else if (H5Tequal(type, H5T_NATIVE_ULONG)==TRUE) {
-        h5tools_str_append(buffer, "native unsigned long");
-    } else if (H5Tequal(type, H5T_NATIVE_LLONG)==TRUE) {
-        h5tools_str_append(buffer, "native long long");
-    } else if (H5Tequal(type, H5T_NATIVE_ULLONG)==TRUE) {
-        h5tools_str_append(buffer, "native unsigned long long");
-    } else if (H5Tequal(type, H5T_NATIVE_FLOAT)==TRUE) {
-        h5tools_str_append(buffer, "native float");
-    } else if (H5Tequal(type, H5T_NATIVE_DOUBLE)==TRUE) {
-        h5tools_str_append(buffer, "native double");
+    if(!simple_output_g) {
+        if (H5Tequal(type, H5T_NATIVE_SCHAR)==TRUE) {
+            h5tools_str_append(buffer, "native signed char");
+        } else if (H5Tequal(type, H5T_NATIVE_UCHAR)==TRUE) {
+            h5tools_str_append(buffer, "native unsigned char");
+        } else if (H5Tequal(type, H5T_NATIVE_INT)==TRUE) {
+            h5tools_str_append(buffer, "native int");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT)==TRUE) {
+            h5tools_str_append(buffer, "native unsigned int");
+        } else if (H5Tequal(type, H5T_NATIVE_SHORT)==TRUE) {
+            h5tools_str_append(buffer, "native short");
+        } else if (H5Tequal(type, H5T_NATIVE_USHORT)==TRUE) {
+            h5tools_str_append(buffer, "native unsigned short");
+        } else if (H5Tequal(type, H5T_NATIVE_LONG)==TRUE) {
+            h5tools_str_append(buffer, "native long");
+        } else if (H5Tequal(type, H5T_NATIVE_ULONG)==TRUE) {
+            h5tools_str_append(buffer, "native unsigned long");
+        } else if (H5Tequal(type, H5T_NATIVE_LLONG)==TRUE) {
+            h5tools_str_append(buffer, "native long long");
+        } else if (H5Tequal(type, H5T_NATIVE_ULLONG)==TRUE) {
+            h5tools_str_append(buffer, "native unsigned long long");
+        } else if (H5Tequal(type, H5T_NATIVE_FLOAT)==TRUE) {
+            h5tools_str_append(buffer, "native float");
+        } else if (H5Tequal(type, H5T_NATIVE_DOUBLE)==TRUE) {
+            h5tools_str_append(buffer, "native double");
 #if H5_SIZEOF_LONG_DOUBLE !=0
-    } else if (H5Tequal(type, H5T_NATIVE_LDOUBLE)==TRUE) {
-        h5tools_str_append(buffer, "native long double");
+        } else if (H5Tequal(type, H5T_NATIVE_LDOUBLE)==TRUE) {
+            h5tools_str_append(buffer, "native long double");
 #endif
-    } else if (H5Tequal(type, H5T_NATIVE_INT8)==TRUE) {
-        h5tools_str_append(buffer, "native int8_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT8)==TRUE) {
-        h5tools_str_append(buffer, "native uint8_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT16)==TRUE) {
-        h5tools_str_append(buffer, "native int16_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT16)==TRUE) {
-        h5tools_str_append(buffer, "native uint16_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT32)==TRUE) {
-        h5tools_str_append(buffer, "native int32_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT32)==TRUE) {
-        h5tools_str_append(buffer, "native uint32_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT64)==TRUE) {
-        h5tools_str_append(buffer, "native int64_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT64)==TRUE) {
-        h5tools_str_append(buffer, "native uint64_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT_LEAST8)==TRUE) {
-        h5tools_str_append(buffer, "native int_least8_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST8)==TRUE) {
-        h5tools_str_append(buffer, "native uint_least8_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT_LEAST16)==TRUE) {
-        h5tools_str_append(buffer, "native int_least16_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST16)==TRUE) {
-        h5tools_str_append(buffer, "native uint_least16_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT_LEAST32)==TRUE) {
-        h5tools_str_append(buffer, "native int_least32_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST32)==TRUE) {
-        h5tools_str_append(buffer, "native uint_least32_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT_LEAST64)==TRUE) {
-        h5tools_str_append(buffer, "native int_least64_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST64)==TRUE) {
-        h5tools_str_append(buffer, "native uint_least64_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT_FAST8)==TRUE) {
-        h5tools_str_append(buffer, "native int_fast8_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT_FAST8)==TRUE) {
-        h5tools_str_append(buffer, "native uint_fast8_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT_FAST16)==TRUE) {
-        h5tools_str_append(buffer, "native int_fast16_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT_FAST16)==TRUE) {
-        h5tools_str_append(buffer, "native uint_fast16_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT_FAST32)==TRUE) {
-        h5tools_str_append(buffer, "native int_fast32_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT_FAST32)==TRUE) {
-        h5tools_str_append(buffer, "native uint_fast32_t");
-    } else if (H5Tequal(type, H5T_NATIVE_INT_FAST64)==TRUE) {
-        h5tools_str_append(buffer, "native int_fast64_t");
-    } else if (H5Tequal(type, H5T_NATIVE_UINT_FAST64)==TRUE) {
-        h5tools_str_append(buffer, "native uint_fast64_t");
-    } else if (H5Tequal(type, H5T_NATIVE_B8)==TRUE) {
-        h5tools_str_append(buffer, "native 8-bit field");
-    } else if (H5Tequal(type, H5T_NATIVE_B16)==TRUE) {
-        h5tools_str_append(buffer, "native 16-bit field");
-    } else if (H5Tequal(type, H5T_NATIVE_B32)==TRUE) {
-        h5tools_str_append(buffer, "native 32-bit field");
-    } else if (H5Tequal(type, H5T_NATIVE_B64)==TRUE) {
-        h5tools_str_append(buffer, "native 64-bit field");
-    } else if (H5Tequal(type, H5T_NATIVE_HSIZE)==TRUE) {
-        h5tools_str_append(buffer, "native hsize_t");
-    } else if (H5Tequal(type, H5T_NATIVE_HSSIZE)==TRUE) {
-        h5tools_str_append(buffer, "native hssize_t");
-    } else if (H5Tequal(type, H5T_NATIVE_HERR)==TRUE) {
-        h5tools_str_append(buffer, "native herr_t");
-    } else if (H5Tequal(type, H5T_NATIVE_HBOOL)==TRUE) {
-        h5tools_str_append(buffer, "native hbool_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT8)==TRUE) {
+            h5tools_str_append(buffer, "native int8_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT8)==TRUE) {
+            h5tools_str_append(buffer, "native uint8_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT16)==TRUE) {
+            h5tools_str_append(buffer, "native int16_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT16)==TRUE) {
+            h5tools_str_append(buffer, "native uint16_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT32)==TRUE) {
+            h5tools_str_append(buffer, "native int32_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT32)==TRUE) {
+            h5tools_str_append(buffer, "native uint32_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT64)==TRUE) {
+            h5tools_str_append(buffer, "native int64_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT64)==TRUE) {
+            h5tools_str_append(buffer, "native uint64_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT_LEAST8)==TRUE) {
+            h5tools_str_append(buffer, "native int_least8_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST8)==TRUE) {
+            h5tools_str_append(buffer, "native uint_least8_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT_LEAST16)==TRUE) {
+            h5tools_str_append(buffer, "native int_least16_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST16)==TRUE) {
+            h5tools_str_append(buffer, "native uint_least16_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT_LEAST32)==TRUE) {
+            h5tools_str_append(buffer, "native int_least32_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST32)==TRUE) {
+            h5tools_str_append(buffer, "native uint_least32_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT_LEAST64)==TRUE) {
+            h5tools_str_append(buffer, "native int_least64_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT_LEAST64)==TRUE) {
+            h5tools_str_append(buffer, "native uint_least64_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT_FAST8)==TRUE) {
+            h5tools_str_append(buffer, "native int_fast8_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT_FAST8)==TRUE) {
+            h5tools_str_append(buffer, "native uint_fast8_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT_FAST16)==TRUE) {
+            h5tools_str_append(buffer, "native int_fast16_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT_FAST16)==TRUE) {
+            h5tools_str_append(buffer, "native uint_fast16_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT_FAST32)==TRUE) {
+            h5tools_str_append(buffer, "native int_fast32_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT_FAST32)==TRUE) {
+            h5tools_str_append(buffer, "native uint_fast32_t");
+        } else if (H5Tequal(type, H5T_NATIVE_INT_FAST64)==TRUE) {
+            h5tools_str_append(buffer, "native int_fast64_t");
+        } else if (H5Tequal(type, H5T_NATIVE_UINT_FAST64)==TRUE) {
+            h5tools_str_append(buffer, "native uint_fast64_t");
+        } else if (H5Tequal(type, H5T_NATIVE_B8)==TRUE) {
+            h5tools_str_append(buffer, "native 8-bit field");
+        } else if (H5Tequal(type, H5T_NATIVE_B16)==TRUE) {
+            h5tools_str_append(buffer, "native 16-bit field");
+        } else if (H5Tequal(type, H5T_NATIVE_B32)==TRUE) {
+            h5tools_str_append(buffer, "native 32-bit field");
+        } else if (H5Tequal(type, H5T_NATIVE_B64)==TRUE) {
+            h5tools_str_append(buffer, "native 64-bit field");
+        } else if (H5Tequal(type, H5T_NATIVE_HSIZE)==TRUE) {
+            h5tools_str_append(buffer, "native hsize_t");
+        } else if (H5Tequal(type, H5T_NATIVE_HSSIZE)==TRUE) {
+            h5tools_str_append(buffer, "native hssize_t");
+        } else if (H5Tequal(type, H5T_NATIVE_HERR)==TRUE) {
+            h5tools_str_append(buffer, "native herr_t");
+        } else if (H5Tequal(type, H5T_NATIVE_HBOOL)==TRUE) {
+            h5tools_str_append(buffer, "native hbool_t");
+        } else {
+            return print_int_type(buffer, type, ind);
+        }
     } else {
-        return FALSE;
+        return print_int_type(buffer, type, ind);
     }
     return TRUE;
 }
@@ -507,22 +509,22 @@ print_native_type(h5tools_str_t *buffer, hid_t type, int UNUSED ind)
  *-------------------------------------------------------------------------
  */
 static hbool_t
-print_ieee_type(h5tools_str_t *buffer, hid_t type, int UNUSED ind)
+print_ieee_type(h5tools_str_t *buffer, hid_t type, int H5_ATTR_UNUSED ind)
 {
     if (H5Tequal(type, H5T_IEEE_F32BE)==TRUE) {
         h5tools_str_append(buffer, "IEEE 32-bit big-endian float");
-    } 
+    }
     else if (H5Tequal(type, H5T_IEEE_F32LE)==TRUE) {
         h5tools_str_append(buffer, "IEEE 32-bit little-endian float");
-    } 
+    }
     else if (H5Tequal(type, H5T_IEEE_F64BE)==TRUE) {
         h5tools_str_append(buffer, "IEEE 64-bit big-endian float");
-    } 
+    }
     else if (H5Tequal(type, H5T_IEEE_F64LE)==TRUE) {
         h5tools_str_append(buffer, "IEEE 64-bit little-endian float");
-    } 
+    }
     else {
-        return FALSE;
+        return print_float_type(buffer, type, ind);
     }
     return TRUE;
 }
@@ -654,17 +656,17 @@ print_int_type(h5tools_str_t *buffer, hid_t type, int ind)
         order = H5Tget_order(type);
         if (H5T_ORDER_LE==order) {
             order_s = " little-endian";
-        } 
+        }
         else if (H5T_ORDER_BE==order) {
             order_s = " big-endian";
-        } 
+        }
         else if (H5T_ORDER_VAX==order) {
             order_s = " mixed-endian";
-        } 
+        }
         else {
             order_s = " unknown-byte-order";
         }
-    } 
+    }
     else {
         order_s = "";
     }
@@ -673,14 +675,14 @@ print_int_type(h5tools_str_t *buffer, hid_t type, int ind)
     if ((sign=H5Tget_sign(type))>=0) {
         if (H5T_SGN_NONE==sign) {
             sign_s = " unsigned";
-        } 
+        }
         else if (H5T_SGN_2==sign) {
             sign_s = "";
-        } 
+        }
         else {
             sign_s = " unknown-sign";
         }
-    } 
+    }
     else {
         sign_s = " unknown-sign";
     }
@@ -731,17 +733,17 @@ print_float_type(h5tools_str_t *buffer, hid_t type, int ind)
         order = H5Tget_order(type);
         if (H5T_ORDER_LE==order) {
             order_s = " little-endian";
-        } 
+        }
         else if (H5T_ORDER_BE==order) {
             order_s = " big-endian";
-        } 
+        }
         else if (H5T_ORDER_VAX==order) {
             order_s = " mixed-endian";
-        } 
+        }
         else {
             order_s = " unknown-byte-order";
         }
-    } 
+    }
     else {
         order_s = "";
     }
@@ -953,13 +955,13 @@ print_enum_type(h5tools_str_t *buffer, hid_t type, int ind)
                 h5tools_str_append(buffer, "0x");
                 for(j = 0; j < dst_size; j++)
                     h5tools_str_append(buffer, "%02x", value[i*dst_size+j]);
-            } 
+            }
             else if(H5T_SGN_NONE == H5Tget_sign(native)) {
                 /*On SGI Altix(cobalt), wrong values were printed out with "value+i*dst_size"
                  *strangely, unless use another pointer "copy".*/
                 copy = value + i * dst_size;
                 h5tools_str_append(buffer, HSIZE_T_FORMAT, *((unsigned long long*)((void*)copy)));
-            } 
+            }
             else {
                 /*On SGI Altix(cobalt), wrong values were printed out with "value+i*dst_size"
                  *strangely, unless use another pointer "copy".*/
@@ -1003,7 +1005,7 @@ print_enum_type(h5tools_str_t *buffer, hid_t type, int ind)
  *-------------------------------------------------------------------------
  */
 static hbool_t
-print_string_type(h5tools_str_t *buffer, hid_t type, int UNUSED ind)
+print_string_type(h5tools_str_t *buffer, hid_t type, int H5_ATTR_UNUSED ind)
 {
     H5T_str_t  pad;
     const char  *pad_s=NULL;
@@ -1078,7 +1080,7 @@ print_string_type(h5tools_str_t *buffer, hid_t type, int UNUSED ind)
 
     if (H5Tis_variable_str(type)) {
         h5tools_str_append(buffer, "variable-length");
-    } 
+    }
     else {
         h5tools_str_append(buffer, "%lu-byte", (unsigned long)H5Tget_size(type));
     }
@@ -1106,16 +1108,16 @@ print_string_type(h5tools_str_t *buffer, hid_t type, int UNUSED ind)
  *-------------------------------------------------------------------------
  */
 static hbool_t
-print_reference_type(h5tools_str_t *buffer, hid_t type, int UNUSED ind)
+print_reference_type(h5tools_str_t *buffer, hid_t type, int H5_ATTR_UNUSED ind)
 {
     if (H5T_REFERENCE!=H5Tget_class(type)) return FALSE;
 
     if (H5Tequal(type, H5T_STD_REF_OBJ)==TRUE) {
         h5tools_str_append(buffer, "object reference");
-    } 
+    }
     else if (H5Tequal(type, H5T_STD_REF_DSETREG)==TRUE) {
         h5tools_str_append(buffer, "dataset region reference");
-    } 
+    }
     else {
         h5tools_str_append(buffer, "%lu-byte unknown reference",
                 (unsigned long)H5Tget_size(type));
@@ -1224,7 +1226,7 @@ print_array_type(h5tools_str_t *buffer, hid_t type, int ind)
         h5tools_str_append(buffer, "]");
 
         HDfree(dims);
-    } 
+    }
     else
         h5tools_str_append(buffer, " [SCALAR]\n", rawoutstream);
 
@@ -1328,10 +1330,8 @@ print_type(h5tools_str_t *buffer, hid_t type, int ind)
     } /* end if */
 
     /* Print the type */
-    if((!simple_output_g && print_native_type(buffer, type, ind)) ||
+    if(print_native_type(buffer, type, ind) ||
             print_ieee_type(buffer, type, ind) ||
-            print_int_type(buffer, type, ind) ||
-            print_float_type(buffer, type, ind) ||
             print_cmpd_type(buffer, type, ind) ||
             print_enum_type(buffer, type, ind) ||
             print_string_type(buffer, type, ind) ||
@@ -1375,7 +1375,7 @@ dump_dataset_values(hid_t dset)
     h5tools_context_t   ctx;             /* print context  */
     h5tool_format_t     outputformat;
     h5tool_format_t    *info = &ls_dataformat;
-    
+
     hid_t  f_type = H5Dget_type(dset);
     size_t  size = H5Tget_size(f_type);
 
@@ -1406,7 +1406,7 @@ dump_dataset_values(hid_t dset)
         outputformat.elmt_suf1 = " ";
         outputformat.str_locale = ESCAPE_HTML;
 
-    } 
+    }
     else {
         if (no_line_wrap_g) {
             outputformat.line_per_line = 1;
@@ -1426,7 +1426,7 @@ dump_dataset_values(hid_t dset)
         outputformat.cmpd_pre = NULL;
         outputformat.cmpd_suf = NULL;
         outputformat.cmpd_sep = NULL;
-        
+
         outputformat.vlen_sep = NULL;
         outputformat.vlen_pre = NULL;
         outputformat.vlen_suf = NULL;
@@ -1443,7 +1443,7 @@ dump_dataset_values(hid_t dset)
         /* Print all data in hexadecimal format if the `-x' or `--hexdump'
          * command line switch was given. */
         outputformat.raw = TRUE;
-    } 
+    }
     else if (string_g && 1==size && H5T_INTEGER==H5Tget_class(f_type)) {
         /* Print 1-byte integer data as an ASCI character string instead of
          * integers if the `-s' or `--string' command-line option was given. */
@@ -1473,7 +1473,7 @@ dump_dataset_values(hid_t dset)
     H5Tclose(f_type);
 
     h5tools_str_close(&buffer);
-    
+
     PRINTVALSTREAM(rawoutstream, "\n");
 }
 
@@ -1495,8 +1495,8 @@ dump_dataset_values(hid_t dset)
  *-------------------------------------------------------------------------
  */
 static herr_t
-list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo,
-    void UNUSED *op_data)
+list_attr(hid_t obj, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ainfo,
+    void H5_ATTR_UNUSED *op_data)
 {
     hid_t               attr = -1;
     hid_t               space = -1;
@@ -1521,7 +1521,7 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo,
 
     h5tools_str_reset(&buffer);
     h5tools_str_append(&buffer, "    Attribute: ");
-    
+
     print_string(&buffer, attr_name, TRUE);
 
     if((attr = H5Aopen(obj, attr_name, H5P_DEFAULT))) {
@@ -1580,7 +1580,7 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo,
             outputformat.line_cont = "                ";
             outputformat.str_repeat = 8;
 
-        } 
+        }
         else {
             h5tools_str_reset(&buffer);
             h5tools_str_append(&buffer, "        Data:\n");
@@ -1611,7 +1611,7 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo,
         outputformat.cmpd_pre = NULL;
         outputformat.cmpd_suf = NULL;
         outputformat.cmpd_sep = NULL;
-        
+
         outputformat.vlen_sep = NULL;
         outputformat.vlen_pre = NULL;
         outputformat.vlen_suf = NULL;
@@ -1655,7 +1655,7 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t UNUSED *ainfo,
         H5Sclose(space);
         H5Tclose(type);
         H5Aclose(attr);
-    } 
+    }
     h5tools_str_close(&buffer);
 
     PRINTVALSTREAM(rawoutstream, "\n");
@@ -1712,7 +1712,7 @@ dataset_list1(hid_t dset)
         h5tools_str_append(&buffer, "%s"HSIZE_T_FORMAT, i?", ":"", cur_size[i]);
         if (max_size[i]==H5S_UNLIMITED) {
             h5tools_str_append(&buffer, "/%s", "Inf");
-        } 
+        }
         else if (max_size[i]!=cur_size[i] || verbose_g>0) {
             h5tools_str_append(&buffer, "/"HSIZE_T_FORMAT, max_size[i]);
         }
@@ -1747,7 +1747,7 @@ dataset_list1(hid_t dset)
  *-------------------------------------------------------------------------
  */
 static herr_t
-dataset_list2(hid_t dset, const char UNUSED *name)
+dataset_list2(hid_t dset, const char H5_ATTR_UNUSED *name)
 {
     hid_t       dcpl;           /* dataset creation property list */
     hid_t       type;           /* data type of dataset */
@@ -1759,6 +1759,7 @@ dataset_list2(hid_t dset, const char UNUSED *name)
     size_t      cd_nelmts;      /* filter client number of values */
     size_t      cd_num;         /* filter client data counter */
     char        f_name[256];    /* filter/file name */
+    char        dset_name[256];    /* filter/file name */
     char        s[64];          /* temporary string buffer */
     off_t       f_offset;       /* offset in external file */
     hsize_t     f_size;         /* bytes used in external file */
@@ -1768,6 +1769,7 @@ dataset_list2(hid_t dset, const char UNUSED *name)
     double      utilization;    /* percent utilization of storage */
     H5T_class_t tclass;         /* datatype class identifier */
     int         i;
+    H5D_layout_t     stl;
     hsize_t             curr_pos = 0;        /* total data element position   */
     h5tools_str_t       buffer;          /* string into which to render   */
     h5tools_context_t   ctx;             /* print context  */
@@ -1783,20 +1785,71 @@ dataset_list2(hid_t dset, const char UNUSED *name)
         space = H5Dget_space(dset);
         type = H5Dget_type(dset);
 
-        /* Print information about chunked storage */
-        if (H5D_CHUNKED==H5Pget_layout(dcpl)) {
-            hsize_t     chsize[64];     /* chunk size in elements */
-
-            ndims = H5Pget_chunk(dcpl, (int)NELMTS(chsize), chsize/*out*/);
-            h5tools_str_append(&buffer, "    %-10s {", "Chunks:");
-            total = H5Tget_size(type);
-            for (i=0; i<ndims; i++) {
-                h5tools_str_append(&buffer, "%s"HSIZE_T_FORMAT, i?", ":"", chsize[i]);
-                total *= chsize[i];
-            }
-            h5tools_str_append(&buffer, "} "HSIZE_T_FORMAT" bytes\n", total);
+        stl = H5Pget_layout(dcpl);
+        switch (stl) {
+            case H5D_CHUNKED:
+                {
+                    hsize_t     chsize[64];     /* chunk size in elements */
+
+                    ndims = H5Pget_chunk(dcpl, (int)NELMTS(chsize), chsize/*out*/);
+                    h5tools_str_append(&buffer, "    %-10s {", "Chunks:");
+                    total = H5Tget_size(type);
+                    for (i=0; i<ndims; i++) {
+                        h5tools_str_append(&buffer, "%s"HSIZE_T_FORMAT, i?", ":"", chsize[i]);
+                        total *= chsize[i];
+                    }
+                    h5tools_str_append(&buffer, "} "HSIZE_T_FORMAT" bytes\n", total);
+                }
+                break;
+            case H5D_COMPACT:
+                break;
+            case H5D_CONTIGUOUS:
+                /* Print information about external storage */
+                if((nf = H5Pget_external_count(dcpl)) > 0) {
+                    for(i = 0, max_len = 0; i < nf; i++) {
+                        if(H5Pget_external(dcpl, (unsigned)i, sizeof(f_name), f_name, NULL, NULL) < 0)
+                            continue;
+                        n = print_string(NULL, f_name, TRUE);
+                        max_len = MAX(max_len, n);
+                    } /* end for */
+                    h5tools_str_append(&buffer, "    %-10s %d external file%s\n",
+                            "Extern:", nf, 1==nf?"":"s");
+                    h5tools_str_append(&buffer, "        %4s %10s %10s %10s %s\n",
+                            "ID", "DSet-Addr", "File-Addr", "Bytes", "File");
+                    h5tools_str_append(&buffer, "        %4s %10s %10s %10s ",
+                            "----", "----------", "----------", "----------");
+                    for (i=0; i<max_len; i++) h5tools_str_append(&buffer, "-");
+                    h5tools_str_append(&buffer, "\n");
+                    for (i=0, total=0; i<nf; i++) {
+                        if (H5Pget_external(dcpl, (unsigned)i, sizeof(f_name), f_name, &f_offset, &f_size)<0) {
+                            h5tools_str_append(&buffer,
+                                    "        #%03d %10"H5_PRINTF_LL_WIDTH"u %10s %10s ***ERROR*** %s\n",
+                                    i, total, "", "",
+                                    i+1<nf?"Following addresses are incorrect":"");
+                        }
+                        else if (H5S_UNLIMITED==f_size) {
+                            h5tools_str_append(&buffer, "        #%03d %10"H5_PRINTF_LL_WIDTH"u %10"H5_PRINTF_LL_WIDTH"u %10s ",
+                                    i, total, (hsize_t)f_offset, "INF");
+                            print_string(&buffer, f_name, TRUE);
+                        }
+                        else {
+                            h5tools_str_append(&buffer, "        #%03d %10"H5_PRINTF_LL_WIDTH"u %10"H5_PRINTF_LL_WIDTH"u %10"H5_PRINTF_LL_WIDTH"u ",
+                                    i, total, (hsize_t)f_offset, f_size);
+                            print_string(&buffer, f_name, TRUE);
+                        }
+                        h5tools_str_append(&buffer, "\n");
+                        total += f_size;
+                    }
+                    h5tools_str_append(&buffer, "        %4s %10s %10s %10s ",
+                            "----", "----------", "----------", "----------");
+                    for (i=0; i<max_len; i++)
+                        h5tools_str_append(&buffer, "-");
+                    h5tools_str_append(&buffer, "\n");
+                } /* end if */
+                break;
+            default:
+                break;
         }
-
         /* Print total raw storage size */
         total = (hsize_t)H5Sget_simple_extent_npoints(space) * H5Tget_size(type);
         used = H5Dget_storage_size(dset);
@@ -1840,49 +1893,6 @@ dataset_list2(hid_t dset, const char UNUSED *name)
 
         h5tools_str_append(&buffer, "\n");
 
-        /* Print information about external strorage */
-        if((nf = H5Pget_external_count(dcpl)) > 0) {
-            for(i = 0, max_len = 0; i < nf; i++) {
-                if(H5Pget_external(dcpl, (unsigned)i, sizeof(f_name), f_name, NULL, NULL) < 0)
-                    continue;
-                n = print_string(NULL, f_name, TRUE);
-                max_len = MAX(max_len, n);
-            } /* end for */
-            h5tools_str_append(&buffer, "    %-10s %d external file%s\n",
-                    "Extern:", nf, 1==nf?"":"s");
-            h5tools_str_append(&buffer, "        %4s %10s %10s %10s %s\n",
-                    "ID", "DSet-Addr", "File-Addr", "Bytes", "File");
-            h5tools_str_append(&buffer, "        %4s %10s %10s %10s ",
-                    "----", "----------", "----------", "----------");
-            for (i=0; i<max_len; i++) h5tools_str_append(&buffer, "-");
-            h5tools_str_append(&buffer, "\n");
-            for (i=0, total=0; i<nf; i++) {
-                if (H5Pget_external(dcpl, (unsigned)i, sizeof(f_name), f_name, &f_offset, &f_size)<0) {
-                    h5tools_str_append(&buffer, 
-                            "        #%03d %10"HSIZE_T_FORMAT"u %10s %10s ***ERROR*** %s\n",
-                            i, total, "", "",
-                            i+1<nf?"Following addresses are incorrect":"");
-                } 
-                else if (H5S_UNLIMITED==f_size) {
-                    h5tools_str_append(&buffer, "        #%03d %10"HSIZE_T_FORMAT"u %10"HSIZE_T_FORMAT"u %10s ",
-                            i, total, (hsize_t)f_offset, "INF");
-                    print_string(&buffer, f_name, TRUE);
-                } 
-                else {
-                    h5tools_str_append(&buffer, "        #%03d %10"HSIZE_T_FORMAT"u %10"HSIZE_T_FORMAT"u %10"HSIZE_T_FORMAT"u ",
-                            i, total, (hsize_t)f_offset, f_size);
-                    print_string(&buffer, f_name, TRUE);
-                }
-                h5tools_str_append(&buffer, "\n");
-                total += f_size;
-            }
-            h5tools_str_append(&buffer, "        %4s %10s %10s %10s ",
-                    "----", "----------", "----------", "----------");
-            for (i=0; i<max_len; i++)
-                h5tools_str_append(&buffer, "-");
-            h5tools_str_append(&buffer, "\n");
-        } /* end if */
-
         /* Print information about raw data filters */
         if((nf = H5Pget_nfilters(dcpl)) > 0) {
             for(i = 0; i < nf; i++) {
@@ -1944,7 +1954,7 @@ dataset_list2(hid_t dset, const char UNUSED *name)
  *-------------------------------------------------------------------------
  */
 static herr_t
-datatype_list2(hid_t type, const char UNUSED *name)
+datatype_list2(hid_t type, const char H5_ATTR_UNUSED *name)
 {
     if (verbose_g>0) {
         hsize_t             curr_pos = 0;        /* total data element position   */
@@ -2189,7 +2199,7 @@ list_lnk(const char *name, const H5L_info_t *linfo, void *_iter)
                 h5tools_str_append(&buffer, " ");
 
                 /* Check if we have already seen this softlink */
-                if(symlink_is_visited(iter->symlink_list, linfo->type, NULL, buf)) 
+                if(symlink_is_visited(iter->symlink_list, linfo->type, NULL, buf))
                 {
                     h5tools_str_append(&buffer, "{Already Visited}\n");
                     h5tools_render_element(rawoutstream, info, &ctx, &buffer, &curr_pos, (size_t)info->line_ncols, (hsize_t)0, (hsize_t)0);
@@ -2198,7 +2208,7 @@ list_lnk(const char *name, const H5L_info_t *linfo, void *_iter)
                 h5tools_render_element(rawoutstream, info, &ctx, &buffer, &curr_pos, (size_t)info->line_ncols, (hsize_t)0, (hsize_t)0);
 
                 /* Add this link to the list of seen softlinks */
-                if(symlink_visit_add(iter->symlink_list, linfo->type, NULL, buf) < 0) 
+                if(symlink_visit_add(iter->symlink_list, linfo->type, NULL, buf) < 0)
                     goto done;
 
                 /* Adjust user data to specify that we are operating on the
@@ -2210,7 +2220,7 @@ list_lnk(const char *name, const H5L_info_t *linfo, void *_iter)
                 if(!recursive_g)
                     grp_literal_g = TRUE;
                 /* Recurse through the soft link */
-                if(visit_obj(iter->fid, name, iter) < 0) 
+                if(visit_obj(iter->fid, name, iter) < 0)
                 {
                     grp_literal_g = orig_grp_literal;
                     goto done;
@@ -2243,7 +2253,7 @@ list_lnk(const char *name, const H5L_info_t *linfo, void *_iter)
             else if (no_dangling_link_g && ret == 0)
                 iter->symlink_list->dangle_link = TRUE;
 
-            if(H5Lunpack_elink_val(buf, linfo->u.val_size, NULL, &filename, &path) < 0) 
+            if(H5Lunpack_elink_val(buf, linfo->u.val_size, NULL, &filename, &path) < 0)
                 goto done;
 
             h5tools_str_append(&buffer, "External Link {");
@@ -2264,7 +2274,7 @@ list_lnk(const char *name, const H5L_info_t *linfo, void *_iter)
                 h5tools_str_append(&buffer, " ");
 
                 /* Check if we have already seen this elink */
-                if(symlink_is_visited(iter->symlink_list, linfo->type, filename, path)) 
+                if(symlink_is_visited(iter->symlink_list, linfo->type, filename, path))
                 {
                     h5tools_str_append(&buffer, "{Already Visited}\n");
                     h5tools_render_element(rawoutstream, info, &ctx, &buffer, &curr_pos, (size_t)info->line_ncols, (hsize_t)0, (hsize_t)0);
@@ -2273,7 +2283,7 @@ list_lnk(const char *name, const H5L_info_t *linfo, void *_iter)
                 h5tools_render_element(rawoutstream, info, &ctx, &buffer, &curr_pos, (size_t)info->line_ncols, (hsize_t)0, (hsize_t)0);
 
                 /* Add this link to the list of seen elinks */
-                if(symlink_visit_add(iter->symlink_list, linfo->type, filename, path) < 0) 
+                if(symlink_visit_add(iter->symlink_list, linfo->type, filename, path) < 0)
                 {
                     goto done;
                 }
@@ -2323,7 +2333,7 @@ done:
  *
  * Purpose: Begins iteration on an object
  *
- * Return: 
+ * Return:
  *  Success: 0
  *  Failure: -1
  *
@@ -2482,7 +2492,7 @@ get_width(void)
  *
  * Purpose: check if command line arguments are valid
  *
- * Return: 
+ * Return:
  *  Success: TRUE (1)
  *  Failure: FALSE (0)
  *
@@ -2490,19 +2500,19 @@ get_width(void)
  *  Jonathan Kim  (06/15/2010)
  *
  *-------------------------------------------------------------------------*/
-static hbool_t 
+static hbool_t
 is_valid_args(void)
 {
     hbool_t ret = TRUE;
 
-    if(recursive_g && grp_literal_g) 
+    if(recursive_g && grp_literal_g)
     {
         HDfprintf(rawerrorstream, "Error: 'recursive' option not compatible with 'group info' option!\n\n");
         ret = FALSE;
         goto out;
     }
 
-    if(no_dangling_link_g && !follow_symlink_g) 
+    if(no_dangling_link_g && !follow_symlink_g)
     {
         HDfprintf(rawerrorstream, "Error: --no-dangling-links must be used along with --follow-symlinks option!\n\n");
         ret = FALSE;
@@ -2784,8 +2794,9 @@ main(int argc, const char *argv[])
             file = h5tools_fopen(fname, H5F_ACC_RDONLY, H5P_DEFAULT, preferred_driver, drivername, sizeof drivername);
 
             if(file >= 0) {
-                if(verbose_g)
+                if(verbose_g) {
                     PRINTSTREAM(rawoutstream, "Opened \"%s\" with %s driver.\n", fname, drivername);
+                }
                 break; /*success*/
             } /* end if */
 
@@ -2880,7 +2891,7 @@ main(int argc, const char *argv[])
         if(x)
             HDfree(oname);
 
-        for(u=0; u < symlink_list.nused; u++) 
+        for(u=0; u < symlink_list.nused; u++)
         {
             if (symlink_list.objs[u].type == H5L_TYPE_EXTERNAL)
                 HDfree(symlink_list.objs[u].file);
@@ -2888,7 +2899,7 @@ main(int argc, const char *argv[])
             HDfree(symlink_list.objs[u].path);
         }
         HDfree(symlink_list.objs);
-        
+
         /* if no-dangling-links option specified and dangling link found */
         if (no_dangling_link_g && iter.symlink_list->dangle_link)
             err_exit = 1;
diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt
index 42d9f3d..bfc1713 100644
--- a/tools/h5repack/CMakeLists.txt
+++ b/tools/h5repack/CMakeLists.txt
@@ -21,8 +21,8 @@ set (REPACK_COMMON_SRCS
 )
 
 add_executable (h5repack ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repack_main.c)
-TARGET_NAMING (h5repack ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5repack ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5repack STATIC)
+TARGET_C_PROPERTIES (h5repack STATIC " " " ")
 target_link_libraries (h5repack  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5repack PROPERTIES FOLDER tools)
 
@@ -33,54 +33,50 @@ if (BUILD_TESTING)
   # Add h5Repack test executables
   # --------------------------------------------------------------------
   add_executable (testh5repack_detect_szip ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testh5repack_detect_szip.c)
-  TARGET_NAMING (testh5repack_detect_szip ${LIB_TYPE})
-  TARGET_C_PROPERTIES (testh5repack_detect_szip ${LIB_TYPE} " " " ")
+  TARGET_NAMING (testh5repack_detect_szip STATIC)
+  TARGET_C_PROPERTIES (testh5repack_detect_szip STATIC " " " ")
   target_link_libraries (testh5repack_detect_szip ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (testh5repack_detect_szip PROPERTIES FOLDER tools)
 
   add_executable (h5repacktest ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repacktst.c)
-  TARGET_NAMING (h5repacktest ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5repacktest ${LIB_TYPE} " " " ")
+  TARGET_NAMING (h5repacktest STATIC)
+  TARGET_C_PROPERTIES (h5repacktest STATIC " " " ")
   target_link_libraries (h5repacktest  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (h5repacktest PROPERTIES FOLDER tools)
 
   #-----------------------------------------------------------------------------
   # If plugin library tests can be tested
   #-----------------------------------------------------------------------------
-  if (BUILD_SHARED_LIBS)
-    set (HDF5_TOOL_PLUGIN_LIB_CORENAME         "dynlibadd")
-    set (HDF5_TOOL_PLUGIN_LIB_NAME             "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_TOOL_PLUGIN_LIB_CORENAME}")
-    set (HDF5_TOOL_PLUGIN_LIB_TARGET           ${HDF5_TOOL_PLUGIN_LIB_CORENAME})
-    add_definitions (${HDF_EXTRA_C_FLAGS})
-    INCLUDE_DIRECTORIES (${HDF5_SRC_DIR})
+  set (HDF5_TOOL_PLUGIN_LIB_CORENAME         "dynlibadd")
+  set (HDF5_TOOL_PLUGIN_LIB_NAME             "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_TOOL_PLUGIN_LIB_CORENAME}")
+  set (HDF5_TOOL_PLUGIN_LIB_TARGET           ${HDF5_TOOL_PLUGIN_LIB_CORENAME})
+  add_definitions (${HDF_EXTRA_C_FLAGS})
+  INCLUDE_DIRECTORIES (${HDF5_SRC_DIR})
 
-    add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED dynlib_rpk.c)
-    TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED " " " ")
-    target_link_libraries (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
-    H5_SET_LIB_OPTIONS (
-        ${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TOOL_PLUGIN_LIB_NAME}
-        SHARED
-        HDF5_TOOL_PLUGIN_LIB_NAME_RELEASE
-        HDF5_TOOL_PLUGIN_LIB_NAME_DEBUG
-    )
+  add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED dynlib_rpk.c)
+  TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED " " " ")
+  target_link_libraries (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
+  H5_SET_LIB_OPTIONS (
+      ${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TOOL_PLUGIN_LIB_NAME}
+      SHARED ${HDF5_PACKAGE_SOVERSION}
+  )
 
-    # make plugins dir
-    file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/plugins")
-    #-----------------------------------------------------------------------------
-    # Copy plugin library to a plugins folder
-    #-----------------------------------------------------------------------------
-    add_custom_command (
-        TARGET     ${HDF5_TOOL_PLUGIN_LIB_TARGET}
-        POST_BUILD
-        COMMAND    ${CMAKE_COMMAND}
-        ARGS       -E copy_if_different 
+  # make plugins dir
+  file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/plugins")
+  #-----------------------------------------------------------------------------
+  # Copy plugin library to a plugins folder
+  #-----------------------------------------------------------------------------
+  add_custom_command (
+      TARGET     ${HDF5_TOOL_PLUGIN_LIB_TARGET}
+      POST_BUILD
+      COMMAND    ${CMAKE_COMMAND}
+      ARGS       -E copy_if_different
           "$<TARGET_FILE:${HDF5_TOOL_PLUGIN_LIB_TARGET}>"
           "${CMAKE_BINARY_DIR}/plugins/$<TARGET_FILE_NAME:${HDF5_TOOL_PLUGIN_LIB_TARGET}>"
-    )
-  endif (BUILD_SHARED_LIBS)
+  )
 
   include (CMakeTests.cmake)
-  
+
 endif (BUILD_TESTING)
 
 ##############################################################################
@@ -98,8 +94,5 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5repack
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
diff --git a/tools/h5repack/CMakeTests.cmake b/tools/h5repack/CMakeTests.cmake
index 3391c3f..dee97ed 100644
--- a/tools/h5repack/CMakeTests.cmake
+++ b/tools/h5repack/CMakeTests.cmake
@@ -341,7 +341,7 @@
   ENDMACRO (ADD_H5_TEST_META)
 
   MACRO (ADD_H5_UD_TEST testname resultcode resultfile)
-    if (HDF5_BUILD_TOOLS AND NOT HDF5_ENABLE_USING_MEMCHECKER)
+    if (NOT HDF5_ENABLE_USING_MEMCHECKER)
       # Remove any output file left over from previous test run
       add_test (
           NAME H5REPACK_UD-${testname}-clearall-objects
@@ -382,7 +382,7 @@
               -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
       )
       set_tests_properties (H5REPACK_UD-h5dump-${testname} PROPERTIES DEPENDS "H5REPACK_UD-${testname}")
-    endif (HDF5_BUILD_TOOLS AND NOT HDF5_ENABLE_USING_MEMCHECKER)
+    endif (NOT HDF5_ENABLE_USING_MEMCHECKER)
   ENDMACRO (ADD_H5_UD_TEST)
 
 ##############################################################################
@@ -992,16 +992,8 @@
 ##############################################################################
 ###    P L U G I N  T E S T S
 ##############################################################################
-if (BUILD_SHARED_LIBS)
   ADD_H5_UD_TEST (plugin_test 0 h5repack_layout.h5 -v -f UD=257,1,9)
   ADD_H5_UD_TEST (plugin_none 0 h5repack_layout.UD.h5 -v -f NONE)
-else (BUILD_SHARED_LIBS)
-  message (STATUS " **** Plugins libraries must be built as shared libraries **** ")
-  add_test (
-      NAME H5REPACK-plugin
-      COMMAND ${CMAKE_COMMAND} -E echo "SKIP H5PLUGIN TESTING"
-  )
-endif (BUILD_SHARED_LIBS)
 
   if (HDF5_TEST_VFD)
     # Run test with different Virtual File Driver
diff --git a/tools/h5repack/h5repack_copy.c b/tools/h5repack/h5repack_copy.c
index a25e789..1963750 100644
--- a/tools/h5repack/h5repack_copy.c
+++ b/tools/h5repack/h5repack_copy.c
@@ -66,7 +66,7 @@ static void print_user_block(const char *filename, hid_t fid);
 static herr_t walk_error_callback(unsigned n, const H5E_error2_t *err_desc, void *udata);
 
 /* get the major number from the error stack. */
-static herr_t walk_error_callback(UNUSED unsigned n, const H5E_error2_t *err_desc, void *udata) {
+static herr_t walk_error_callback(H5_ATTR_UNUSED unsigned n, const H5E_error2_t *err_desc, void *udata) {
 	if (err_desc)
 		*((int *) udata) = err_desc->maj_num;
 
diff --git a/tools/h5repack/h5repack_main.c b/tools/h5repack/h5repack_main.c
index 2d896f7..f3fd469 100644
--- a/tools/h5repack/h5repack_main.c
+++ b/tools/h5repack/h5repack_main.c
@@ -21,7 +21,7 @@
 #define PROGRAMNAME "h5repack"
 
 static int parse_command_line(int argc, const char **argv, pack_opt_t* options);
-static void leave(int ret) NORETURN;
+static void leave(int ret) H5_ATTR_NORETURN;
 
 
 /* module-scoped variables */
diff --git a/tools/h5repack/h5repack_parse.c b/tools/h5repack/h5repack_parse.c
index 8a297a7..1d71c13 100644
--- a/tools/h5repack/h5repack_parse.c
+++ b/tools/h5repack/h5repack_parse.c
@@ -47,473 +47,473 @@
 
 
 obj_list_t* parse_filter(const char *str,
-                         int *n_objs,
-                         filter_info_t *filt,
-                         pack_opt_t *options,
-                         int *is_glb)
+        int *n_objs,
+        filter_info_t *filt,
+        pack_opt_t *options,
+        int *is_glb)
 {
-	unsigned    i, u;
-	char        c;
-	size_t      len=HDstrlen(str);
-	int         j, m, n, k, l, p, r, q, end_obj=-1, no_param=0;
-	char        sobj[MAX_NC_NAME];
-	char        scomp[10];
-	char        stype[5];
-	char        smask[3];
-	obj_list_t* obj_list=NULL;
-	unsigned    pixels_per_block;
-
-
-	/* initialize compression  info */
-	HDmemset(filt,0,sizeof(filter_info_t));
-	*is_glb = 0;
-
-	/* check for the end of object list and number of objects */
-	for ( i = 0, n = 0; i < len; i++)
-	{
-		c = str[i];
-		if ( c==':' )
-		{
-			end_obj=i;
-		}
-		if ( c==',' )
-		{
-			n++;
-		}
-	}
-
-	if (end_obj==-1) /* missing : */
-	{
-		/* apply to all objects */
-		options->all_filter=1;
-		*is_glb = 1;
-	}
-
-	n++;
-	obj_list = (obj_list_t*) HDmalloc(n*sizeof(obj_list_t));
-	if (obj_list==NULL)
-	{
-		error_msg("could not allocate object list\n");
-		return NULL;
-	}
-	*n_objs=n;
-
-	/* get object list */
-	for ( j = 0, k = 0, n = 0; j < end_obj; j++, k++)
-	{
-		c = str[j];
-		sobj[k] = c;
-		if ( c==',' || j==end_obj-1)
-		{
-			if ( c==',') sobj[k]='\0'; else sobj[k+1]='\0';
-			HDstrcpy(obj_list[n].obj,sobj);
-			HDmemset(sobj,0,sizeof(sobj));
-			n++;
-			k=-1;
-		}
-	}
-	/* nothing after : */
-	if (end_obj+1==(int)len)
-	{
-		if (obj_list) HDfree(obj_list);
-		error_msg("input Error: Invalid compression type in <%s>\n",str);
-		HDexit(EXIT_FAILURE);
-	}
-
-
-	/* get filter additional parameters */
-	m=0;
-	for ( i=end_obj+1, k=0, j=0; i<len; i++,k++)
-	{
-		c = str[i];
-		scomp[k]=c;
-		if ( c=='=' || i==len-1)
-		{
-			if ( c=='=') /*one more parameter */
-			{
-				scomp[k]='\0';     /*cut space */
-
-				/*-------------------------------------------------------------------------
-				 * H5Z_FILTER_SZIP
-				 * szip has the format SZIP=<pixels per block,coding>
-				 * pixels per block is a even number in 2-32 and coding method is 'EC' or 'NN'
-				 * example SZIP=8,NN
-				 *-------------------------------------------------------------------------
-				 */
-				if (HDstrcmp(scomp,"SZIP")==0)
-				{
-					l=-1; /* mask index check */
-					for ( m=0,u=i+1; u<len; u++,m++)
-					{
-						if (str[u]==',')
-						{
-							stype[m]='\0'; /* end digit of szip */
-							l=0;  /* start EC or NN search */
-							u++;  /* skip ',' */
-						}
-						c = str[u];
-						if (!isdigit(c) && l==-1)
-						{
-							if (obj_list) HDfree(obj_list);
-							error_msg("compression parameter not digit in <%s>\n",str);
-							HDexit(EXIT_FAILURE);
-						}
-						if (l==-1)
-							stype[m]=c;
-						else
-						{
-							smask[l]=c;
-							l++;
-							if (l==2)
-							{
-								smask[l]='\0';
-								i=len-1; /* end */
-								(*n_objs)--; /* we counted an extra ',' */
-								if (HDstrcmp(smask,"NN")==0)
-									filt->cd_values[j++]=H5_SZIP_NN_OPTION_MASK;
-								else if (HDstrcmp(smask,"EC")==0)
-									filt->cd_values[j++]=H5_SZIP_EC_OPTION_MASK;
-								else
-								{
-									error_msg("szip mask must be 'NN' or 'EC' \n");
-									HDexit(EXIT_FAILURE);
-								}
-
-
-							}
-						}
-
-					}  /* u */
-				} /*if */
-
-				/*-------------------------------------------------------------------------
-				 * H5Z_FILTER_SCALEOFFSET
-				 * scaleoffset has the format SOFF=<scale_factor,scale_type>
-				 * scale_type can be
-				 *   integer datatype, H5Z_SO_INT (IN)
-				 *   float datatype using D-scaling method, H5Z_SO_FLOAT_DSCALE  (DS)
-				 *   float datatype using E-scaling method, H5Z_SO_FLOAT_ESCALE  (ES) , not yet implemented
-				 * for integer datatypes, scale_factor denotes Minimum Bits
-				 * for float datatypes, scale_factor denotes decimal scale factor
-				 *  examples
-				 *  SOFF=31,IN
-				 *  SOFF=3,DF
-				 *-------------------------------------------------------------------------
-				 */
-
-				else if (HDstrcmp(scomp,"SOFF")==0)
-				{
-					l=-1; /* mask index check */
-					for ( m=0,u=i+1; u<len; u++,m++)
-					{
-						if (str[u]==',')
-						{
-							stype[m]='\0'; /* end digit */
-							l=0;  /* start 'IN' , 'DS', or 'ES' search */
-							u++;  /* skip ',' */
-						}
-						c = str[u];
-						if (!isdigit(c) && l==-1)
-						{
-							if (obj_list) HDfree(obj_list);
-							error_msg("compression parameter is not a digit in <%s>\n",str);
-							HDexit(EXIT_FAILURE);
-						}
-						if (l==-1)
-							stype[m]=c;
-						else
-						{
-							smask[l]=c;
-							l++;
-							if (l==2)
-							{
-								smask[l]='\0';
-								i=len-1; /* end */
-								(*n_objs)--; /* we counted an extra ',' */
-								if (HDstrcmp(smask,"IN")==0)
-									filt->cd_values[j++]=H5Z_SO_INT;
-								else if (HDstrcmp(smask,"DS")==H5Z_SO_FLOAT_DSCALE)
-									filt->cd_values[j++]=H5Z_SO_FLOAT_DSCALE;
-								else
-								{
-									error_msg("scale type must be 'IN' or 'DS' \n");
-									HDexit(EXIT_FAILURE);
-								}
-
-							}
-						}
-
-					}  /* u */
-				} /*if */
-				/*-------------------------------------------------------------------------
-				 * User Defined
-				 *   has the format UD=<filter_number,cd_value_count,value_1[,value_2,...,value_N]>
-				 *  BZIP2 example
-				 *  UD=307,1,9
-				 *-------------------------------------------------------------------------
-				 */
-
-				else if (HDstrcmp(scomp,"UD")==0)
-				{
-					l=-1; /* filter number index check */
-					p=-1; /* CD_VAL count check */
-					r=-1; /* CD_VAL check */
-					for ( m=0,q=0,u=i+1; u<len; u++,m++,q++)
-					{
-						if (str[u]==',')
-						{
-							stype[q]='\0'; /* end digit */
-							if (l==-1)
-							{
-								filt->filtn=atoi(stype);
-								l=0;
-							}
-							else if (p==-1)
-							{
-								filt->cd_nelmts=atoi(stype);
-								p=0;
-							}
-							else
-								r=0;
-							q=0;
-							u++;  /* skip ',' */
-						}
-						c = str[u];
-						if (!isdigit(c) && l==-1)
-						{
-							if (obj_list) HDfree(obj_list);
-							error_msg("filter number parameter is not a digit in <%s>\n",str);
-							HDexit(EXIT_FAILURE);
-						}
-						stype[q]=c;
-						if (l==0 && p==0)
-						{
-							if (r==0)
-								filt->cd_values[j++]=atoi(stype);
-						}
-
-					}  /* u */
-
-					stype[q]='\0';
-				} /*if */
-
-
-				/*-------------------------------------------------------------------------
-				 * all other filters
-				 *-------------------------------------------------------------------------
-				 */
-
-				else
-				{
-					/* here we could have 1 or 2 digits  */
-					for ( m=0,u=i+1; u<len; u++,m++)
-					{
-						c = str[u];
-						if (!isdigit(c)){
-							if (obj_list) HDfree(obj_list);
-							error_msg("compression parameter is not a digit in <%s>\n",str);
-							HDexit(EXIT_FAILURE);
-						}
-						stype[m]=c;
-					} /* u */
-
-					stype[m]='\0';
-				} /*if */
-
-
-
-				filt->cd_values[j++]=atoi(stype);
-				i+=m; /* jump */
-			}
-			else if (i==len-1)
-			{ /*no more parameters */
-				scomp[k+1]='\0';
-				no_param=1;
-			}
-
-			/*-------------------------------------------------------------------------
-			 * translate from string to filter symbol
-			 *-------------------------------------------------------------------------
-			 */
-
-			/*-------------------------------------------------------------------------
-			 * H5Z_FILTER_NONE
-			 *-------------------------------------------------------------------------
-			 */
-			if (HDstrcmp(scomp,"NONE")==0)
-			{
-				filt->filtn=H5Z_FILTER_NONE;
-				filt->cd_nelmts = 0;
-			}
-
-			/*-------------------------------------------------------------------------
-			 * H5Z_FILTER_DEFLATE
-			 *-------------------------------------------------------------------------
-			 */
-			else if (HDstrcmp(scomp,"GZIP")==0)
-			{
-				filt->filtn=H5Z_FILTER_DEFLATE;
-				filt->cd_nelmts = 1;
-				if (no_param)
-				{ /*no more parameters, GZIP must have parameter */
-					if (obj_list) HDfree(obj_list);
-					error_msg("missing compression parameter in <%s>\n",str);
-					HDexit(EXIT_FAILURE);
-				}
-			}
-
-			/*-------------------------------------------------------------------------
-			 * H5Z_FILTER_SZIP
-			 *-------------------------------------------------------------------------
-			 */
-			else if (HDstrcmp(scomp,"SZIP")==0)
-			{
-				filt->filtn=H5Z_FILTER_SZIP;
-				filt->cd_nelmts = 2;
-				if (no_param)
-				{ /*no more parameters, SZIP must have parameter */
-					if (obj_list) HDfree(obj_list);
-					error_msg("missing compression parameter in <%s>\n",str);
-					HDexit(EXIT_FAILURE);
-				}
-			}
-
-			/*-------------------------------------------------------------------------
-			 * H5Z_FILTER_SHUFFLE
-			 *-------------------------------------------------------------------------
-			 */
-			else if (HDstrcmp(scomp,"SHUF")==0)
-			{
-				filt->filtn=H5Z_FILTER_SHUFFLE;
-				filt->cd_nelmts = 0;
-				if (m>0)
-				{ /*shuffle does not have parameter */
-					if (obj_list) HDfree(obj_list);
-					error_msg("extra parameter in SHUF <%s>\n",str);
-					HDexit(EXIT_FAILURE);
-				}
-			}
-			/*-------------------------------------------------------------------------
-			 * H5Z_FILTER_FLETCHER32
-			 *-------------------------------------------------------------------------
-			 */
-			else if (HDstrcmp(scomp,"FLET")==0)
-			{
-				filt->filtn=H5Z_FILTER_FLETCHER32;
-				filt->cd_nelmts = 0;
-				if (m>0)
-				{ /*shuffle does not have parameter */
-					if (obj_list) HDfree(obj_list);
-					error_msg("extra parameter in FLET <%s>\n",str);
-					HDexit(EXIT_FAILURE);
-				}
-			}
-			/*-------------------------------------------------------------------------
-			 * H5Z_FILTER_NBIT
-			 *-------------------------------------------------------------------------
-			 */
-			else if (HDstrcmp(scomp,"NBIT")==0)
-			{
-				filt->filtn=H5Z_FILTER_NBIT;
-				filt->cd_nelmts = 0;
-				if (m>0)
-				{ /*nbit does not have parameter */
-					if (obj_list) HDfree(obj_list);
-					error_msg("extra parameter in NBIT <%s>\n",str);
-					HDexit(EXIT_FAILURE);
-				}
-			}
-			/*-------------------------------------------------------------------------
-			 * H5Z_FILTER_SCALEOFFSET
-			 *-------------------------------------------------------------------------
-			 */
-			else if (HDstrcmp(scomp,"SOFF")==0)
-			{
-				filt->filtn=H5Z_FILTER_SCALEOFFSET;
-				filt->cd_nelmts = 2;
-				if (no_param)
-				{ /*no more parameters, SOFF must have parameter */
-					if (obj_list) HDfree(obj_list);
-					error_msg("missing compression parameter in <%s>\n",str);
-					HDexit(EXIT_FAILURE);
-				}
-			}
-			/*-------------------------------------------------------------------------
-			 * User Defined Filter
-			 *-------------------------------------------------------------------------
-			 */
-			else if (HDstrcmp(scomp,"UD")==0)
-			{
-				if (filt->cd_nelmts != j)
-				{ /* parameters does not match count */
-					if (obj_list) HDfree(obj_list);
-					error_msg("incorrect number of compression parameters in <%s>\n",str);
-					HDexit(EXIT_FAILURE);
-				}
-			}
-			else {
-				if (obj_list) HDfree(obj_list);
-				error_msg("invalid filter type in <%s>\n",str);
-				HDexit(EXIT_FAILURE);
-			}
-		}
-	} /*i*/
-
-	/*-------------------------------------------------------------------------
-	 * check valid parameters
-	 *-------------------------------------------------------------------------
-	 */
-
-	switch (filt->filtn)
-	{
-
-	/*-------------------------------------------------------------------------
-	 * H5Z_FILTER_DEFLATE
-	 *-------------------------------------------------------------------------
-	 */
-
-	case H5Z_FILTER_DEFLATE:
-		if (filt->cd_values[0]>9 )
-		{
-			if (obj_list) HDfree(obj_list);
-			error_msg("invalid compression parameter in <%s>\n",str);
-			HDexit(EXIT_FAILURE);
-		}
-		break;
-
-		/*-------------------------------------------------------------------------
-		 * H5Z_FILTER_SZIP
-		 *-------------------------------------------------------------------------
-		 */
-
-	case H5Z_FILTER_SZIP:
-		pixels_per_block=filt->cd_values[0];
-		if ((pixels_per_block%2)==1)
-		{
-			if (obj_list) HDfree(obj_list);
-			error_msg("pixels_per_block is not even in <%s>\n",str);
-			HDexit(EXIT_FAILURE);
-		}
-		if (pixels_per_block>H5_SZIP_MAX_PIXELS_PER_BLOCK)
-		{
-			if (obj_list) HDfree(obj_list);
-			error_msg("pixels_per_block is too large in <%s>\n",str);
-			HDexit(EXIT_FAILURE);
-		}
-		if ( (HDstrcmp(smask,"NN")!=0) && (HDstrcmp(smask,"EC")!=0) )
-		{
-			if (obj_list) HDfree(obj_list);
-			error_msg("szip mask must be 'NN' or 'EC' \n");
-			HDexit(EXIT_FAILURE);
-		}
-		break;
-	default:
-		break;
-
-
-	};
-
-	return obj_list;
+    unsigned    i, u;
+    char        c;
+    size_t      len=HDstrlen(str);
+    int         j, m, n, k, l, p, r, q, end_obj=-1, no_param=0;
+    char        sobj[MAX_NC_NAME];
+    char        scomp[10];
+    char        stype[6];
+    char        smask[3];
+    obj_list_t* obj_list=NULL;
+    unsigned    pixels_per_block;
+
+
+    /* initialize compression  info */
+    HDmemset(filt,0,sizeof(filter_info_t));
+    *is_glb = 0;
+
+    /* check for the end of object list and number of objects */
+    for ( i = 0, n = 0; i < len; i++)
+    {
+        c = str[i];
+        if ( c==':' )
+        {
+            end_obj=i;
+        }
+        if ( c==',' )
+        {
+            n++;
+        }
+    }
+
+    if (end_obj==-1) /* missing : */
+    {
+        /* apply to all objects */
+        options->all_filter=1;
+        *is_glb = 1;
+    }
+
+    n++;
+    obj_list = (obj_list_t*) HDmalloc(n*sizeof(obj_list_t));
+    if (obj_list==NULL)
+    {
+        error_msg("could not allocate object list\n");
+        return NULL;
+    }
+    *n_objs=n;
+
+    /* get object list */
+    for ( j = 0, k = 0, n = 0; j < end_obj; j++, k++)
+    {
+        c = str[j];
+        sobj[k] = c;
+        if ( c==',' || j==end_obj-1)
+        {
+            if ( c==',') sobj[k]='\0'; else sobj[k+1]='\0';
+            HDstrcpy(obj_list[n].obj,sobj);
+            HDmemset(sobj,0,sizeof(sobj));
+            n++;
+            k=-1;
+        }
+    }
+    /* nothing after : */
+    if (end_obj+1==(int)len)
+    {
+        if (obj_list) HDfree(obj_list);
+        error_msg("input Error: Invalid compression type in <%s>\n",str);
+        HDexit(EXIT_FAILURE);
+    }
+
+
+    /* get filter additional parameters */
+    m=0;
+    for ( i=end_obj+1, k=0, j=0; i<len; i++,k++)
+    {
+        c = str[i];
+        scomp[k]=c;
+        if ( c=='=' || i==len-1)
+        {
+            if ( c=='=') /*one more parameter */
+            {
+                scomp[k]='\0';     /*cut space */
+
+                /*-------------------------------------------------------------------------
+                 * H5Z_FILTER_SZIP
+                 * szip has the format SZIP=<pixels per block,coding>
+                 * pixels per block is a even number in 2-32 and coding method is 'EC' or 'NN'
+                 * example SZIP=8,NN
+                 *-------------------------------------------------------------------------
+                 */
+                if (HDstrcmp(scomp,"SZIP")==0)
+                {
+                    l=-1; /* mask index check */
+                    for ( m=0,u=i+1; u<len; u++,m++)
+                    {
+                        if (str[u]==',')
+                        {
+                            stype[m]='\0'; /* end digit of szip */
+                            l=0;  /* start EC or NN search */
+                            u++;  /* skip ',' */
+                        }
+                        c = str[u];
+                        if (!isdigit(c) && l==-1)
+                        {
+                            if (obj_list) HDfree(obj_list);
+                            error_msg("compression parameter not digit in <%s>\n",str);
+                            HDexit(EXIT_FAILURE);
+                        }
+                        if (l==-1)
+                            stype[m]=c;
+                        else
+                        {
+                            smask[l]=c;
+                            l++;
+                            if (l==2)
+                            {
+                                smask[l]='\0';
+                                i=len-1; /* end */
+                                (*n_objs)--; /* we counted an extra ',' */
+                                if (HDstrcmp(smask,"NN")==0)
+                                    filt->cd_values[j++]=H5_SZIP_NN_OPTION_MASK;
+                                else if (HDstrcmp(smask,"EC")==0)
+                                    filt->cd_values[j++]=H5_SZIP_EC_OPTION_MASK;
+                                else
+                                {
+                                    error_msg("szip mask must be 'NN' or 'EC' \n");
+                                    HDexit(EXIT_FAILURE);
+                                }
+
+
+                            }
+                        }
+
+                    }  /* u */
+                } /*if */
+
+                /*-------------------------------------------------------------------------
+                 * H5Z_FILTER_SCALEOFFSET
+                 * scaleoffset has the format SOFF=<scale_factor,scale_type>
+                 * scale_type can be
+                 *   integer datatype, H5Z_SO_INT (IN)
+                 *   float datatype using D-scaling method, H5Z_SO_FLOAT_DSCALE  (DS)
+                 *   float datatype using E-scaling method, H5Z_SO_FLOAT_ESCALE  (ES) , not yet implemented
+                 * for integer datatypes, scale_factor denotes Minimum Bits
+                 * for float datatypes, scale_factor denotes decimal scale factor
+                 *  examples
+                 *  SOFF=31,IN
+                 *  SOFF=3,DF
+                 *-------------------------------------------------------------------------
+                 */
+
+                else if (HDstrcmp(scomp,"SOFF")==0)
+                {
+                    l=-1; /* mask index check */
+                    for ( m=0,u=i+1; u<len; u++,m++)
+                    {
+                        if (str[u]==',')
+                        {
+                            stype[m]='\0'; /* end digit */
+                            l=0;  /* start 'IN' , 'DS', or 'ES' search */
+                            u++;  /* skip ',' */
+                        }
+                        c = str[u];
+                        if (!isdigit(c) && l==-1)
+                        {
+                            if (obj_list) HDfree(obj_list);
+                            error_msg("compression parameter is not a digit in <%s>\n",str);
+                            HDexit(EXIT_FAILURE);
+                        }
+                        if (l==-1)
+                            stype[m]=c;
+                        else
+                        {
+                            smask[l]=c;
+                            l++;
+                            if (l==2)
+                            {
+                                smask[l]='\0';
+                                i=len-1; /* end */
+                                (*n_objs)--; /* we counted an extra ',' */
+                                if (HDstrcmp(smask,"IN")==0)
+                                    filt->cd_values[j++]=H5Z_SO_INT;
+                                else if (HDstrcmp(smask,"DS")==H5Z_SO_FLOAT_DSCALE)
+                                    filt->cd_values[j++]=H5Z_SO_FLOAT_DSCALE;
+                                else
+                                {
+                                    error_msg("scale type must be 'IN' or 'DS' \n");
+                                    HDexit(EXIT_FAILURE);
+                                }
+
+                            }
+                        }
+
+                    }  /* u */
+                } /*if */
+                /*-------------------------------------------------------------------------
+                 * User Defined
+                 *   has the format UD=<filter_number,cd_value_count,value_1[,value_2,...,value_N]>
+                 *  BZIP2 example
+                 *  UD=307,1,9
+                 *-------------------------------------------------------------------------
+                 */
+
+                else if (HDstrcmp(scomp,"UD")==0)
+                {
+                    l=-1; /* filter number index check */
+                    p=-1; /* CD_VAL count check */
+                    r=-1; /* CD_VAL check */
+                    for ( m=0,q=0,u=i+1; u<len; u++,m++,q++)
+                    {
+                        if (str[u]==',')
+                        {
+                            stype[q]='\0'; /* end digit */
+                            if (l==-1)
+                            {
+                                filt->filtn=atoi(stype);
+                                l=0;
+                            }
+                            else if (p==-1)
+                            {
+                                filt->cd_nelmts=atoi(stype);
+                                p=0;
+                            }
+                            else
+                                r=0;
+                            q=0;
+                            u++;  /* skip ',' */
+                        }
+                        c = str[u];
+                        if (!isdigit(c) && l==-1)
+                        {
+                            if (obj_list) HDfree(obj_list);
+                            error_msg("filter number parameter is not a digit in <%s>\n",str);
+                            HDexit(EXIT_FAILURE);
+                        }
+                        stype[q]=c;
+                        if (l==0 && p==0)
+                        {
+                            if (r==0)
+                                filt->cd_values[j++]=atoi(stype);
+                        }
+
+                    }  /* u */
+
+                    stype[q]='\0';
+                } /*if */
+
+
+                /*-------------------------------------------------------------------------
+                 * all other filters
+                 *-------------------------------------------------------------------------
+                 */
+
+                else
+                {
+                    /* here we could have 1 or 2 digits  */
+                    for ( m=0,u=i+1; u<len; u++,m++)
+                    {
+                        c = str[u];
+                        if (!isdigit(c)){
+                            if (obj_list) HDfree(obj_list);
+                            error_msg("compression parameter is not a digit in <%s>\n",str);
+                            HDexit(EXIT_FAILURE);
+                        }
+                        stype[m]=c;
+                    } /* u */
+
+                    stype[m]='\0';
+                } /*if */
+
+
+
+                filt->cd_values[j++]=atoi(stype);
+                i+=m; /* jump */
+            }
+            else if (i==len-1)
+            { /*no more parameters */
+                scomp[k+1]='\0';
+                no_param=1;
+            }
+
+            /*-------------------------------------------------------------------------
+             * translate from string to filter symbol
+             *-------------------------------------------------------------------------
+             */
+
+            /*-------------------------------------------------------------------------
+             * H5Z_FILTER_NONE
+             *-------------------------------------------------------------------------
+             */
+            if (HDstrcmp(scomp,"NONE")==0)
+            {
+                filt->filtn=H5Z_FILTER_NONE;
+                filt->cd_nelmts = 0;
+            }
+
+            /*-------------------------------------------------------------------------
+             * H5Z_FILTER_DEFLATE
+             *-------------------------------------------------------------------------
+             */
+            else if (HDstrcmp(scomp,"GZIP")==0)
+            {
+                filt->filtn=H5Z_FILTER_DEFLATE;
+                filt->cd_nelmts = 1;
+                if (no_param)
+                { /*no more parameters, GZIP must have parameter */
+                    if (obj_list) HDfree(obj_list);
+                    error_msg("missing compression parameter in <%s>\n",str);
+                    HDexit(EXIT_FAILURE);
+                }
+            }
+
+            /*-------------------------------------------------------------------------
+             * H5Z_FILTER_SZIP
+             *-------------------------------------------------------------------------
+             */
+            else if (HDstrcmp(scomp,"SZIP")==0)
+            {
+                filt->filtn=H5Z_FILTER_SZIP;
+                filt->cd_nelmts = 2;
+                if (no_param)
+                { /*no more parameters, SZIP must have parameter */
+                    if (obj_list) HDfree(obj_list);
+                    error_msg("missing compression parameter in <%s>\n",str);
+                    HDexit(EXIT_FAILURE);
+                }
+            }
+
+            /*-------------------------------------------------------------------------
+             * H5Z_FILTER_SHUFFLE
+             *-------------------------------------------------------------------------
+             */
+            else if (HDstrcmp(scomp,"SHUF")==0)
+            {
+                filt->filtn=H5Z_FILTER_SHUFFLE;
+                filt->cd_nelmts = 0;
+                if (m>0)
+                { /*shuffle does not have parameter */
+                    if (obj_list) HDfree(obj_list);
+                    error_msg("extra parameter in SHUF <%s>\n",str);
+                    HDexit(EXIT_FAILURE);
+                }
+            }
+            /*-------------------------------------------------------------------------
+             * H5Z_FILTER_FLETCHER32
+             *-------------------------------------------------------------------------
+             */
+            else if (HDstrcmp(scomp,"FLET")==0)
+            {
+                filt->filtn=H5Z_FILTER_FLETCHER32;
+                filt->cd_nelmts = 0;
+                if (m>0)
+                { /*shuffle does not have parameter */
+                    if (obj_list) HDfree(obj_list);
+                    error_msg("extra parameter in FLET <%s>\n",str);
+                    HDexit(EXIT_FAILURE);
+                }
+            }
+            /*-------------------------------------------------------------------------
+             * H5Z_FILTER_NBIT
+             *-------------------------------------------------------------------------
+             */
+            else if (HDstrcmp(scomp,"NBIT")==0)
+            {
+                filt->filtn=H5Z_FILTER_NBIT;
+                filt->cd_nelmts = 0;
+                if (m>0)
+                { /*nbit does not have parameter */
+                    if (obj_list) HDfree(obj_list);
+                    error_msg("extra parameter in NBIT <%s>\n",str);
+                    HDexit(EXIT_FAILURE);
+                }
+            }
+            /*-------------------------------------------------------------------------
+             * H5Z_FILTER_SCALEOFFSET
+             *-------------------------------------------------------------------------
+             */
+            else if (HDstrcmp(scomp,"SOFF")==0)
+            {
+                filt->filtn=H5Z_FILTER_SCALEOFFSET;
+                filt->cd_nelmts = 2;
+                if (no_param)
+                { /*no more parameters, SOFF must have parameter */
+                    if (obj_list) HDfree(obj_list);
+                    error_msg("missing compression parameter in <%s>\n",str);
+                    HDexit(EXIT_FAILURE);
+                }
+            }
+            /*-------------------------------------------------------------------------
+             * User Defined Filter
+             *-------------------------------------------------------------------------
+             */
+            else if (HDstrcmp(scomp,"UD")==0)
+            {
+                if (filt->cd_nelmts != j)
+                { /* parameters does not match count */
+                    if (obj_list) HDfree(obj_list);
+                    error_msg("incorrect number of compression parameters in <%s>\n",str);
+                    HDexit(EXIT_FAILURE);
+                }
+            }
+            else {
+                if (obj_list) HDfree(obj_list);
+                error_msg("invalid filter type in <%s>\n",str);
+                HDexit(EXIT_FAILURE);
+            }
+        }
+    } /*i*/
+
+    /*-------------------------------------------------------------------------
+     * check valid parameters
+     *-------------------------------------------------------------------------
+     */
+
+    switch (filt->filtn)
+    {
+
+    /*-------------------------------------------------------------------------
+     * H5Z_FILTER_DEFLATE
+     *-------------------------------------------------------------------------
+     */
+
+    case H5Z_FILTER_DEFLATE:
+        if (filt->cd_values[0]>9 )
+        {
+            if (obj_list) HDfree(obj_list);
+            error_msg("invalid compression parameter in <%s>\n",str);
+            HDexit(EXIT_FAILURE);
+        }
+        break;
+
+        /*-------------------------------------------------------------------------
+         * H5Z_FILTER_SZIP
+         *-------------------------------------------------------------------------
+         */
+
+    case H5Z_FILTER_SZIP:
+        pixels_per_block=filt->cd_values[0];
+        if ((pixels_per_block%2)==1)
+        {
+            if (obj_list) HDfree(obj_list);
+            error_msg("pixels_per_block is not even in <%s>\n",str);
+            HDexit(EXIT_FAILURE);
+        }
+        if (pixels_per_block>H5_SZIP_MAX_PIXELS_PER_BLOCK)
+        {
+            if (obj_list) HDfree(obj_list);
+            error_msg("pixels_per_block is too large in <%s>\n",str);
+            HDexit(EXIT_FAILURE);
+        }
+        if ( (HDstrcmp(smask,"NN")!=0) && (HDstrcmp(smask,"EC")!=0) )
+        {
+            if (obj_list) HDfree(obj_list);
+            error_msg("szip mask must be 'NN' or 'EC' \n");
+            HDexit(EXIT_FAILURE);
+        }
+        break;
+    default:
+        break;
+
+
+    };
+
+    return obj_list;
 }
 
 
@@ -540,9 +540,9 @@ obj_list_t* parse_filter(const char *str,
  *-------------------------------------------------------------------------
  */
 obj_list_t* parse_layout(const char *str,
-                         int *n_objs,
-                         pack_info_t *pack,    /* info about layout needed */
-                         pack_opt_t *options)
+        int *n_objs,
+        pack_info_t *pack,    /* info about layout needed */
+        pack_opt_t *options)
 {
     obj_list_t* obj_list=NULL;
     unsigned    i;
@@ -636,10 +636,10 @@ obj_list_t* parse_layout(const char *str,
     if ( pack->layout==H5D_CHUNKED )
     {
 
-    /*-------------------------------------------------------------------------
-    * get chunk info
-    *-------------------------------------------------------------------------
-        */
+        /*-------------------------------------------------------------------------
+         * get chunk info
+         *-------------------------------------------------------------------------
+         */
         k=0;
 
         if (j>(int)len)
@@ -656,11 +656,11 @@ obj_list_t* parse_layout(const char *str,
             k++; /*increment sdim index */
 
             if (!isdigit(c) && c!='x'
-                && c!='N' && c!='O' && c!='N' && c!='E'
-                ){
+                    && c!='N' && c!='O' && c!='N' && c!='E'
+            ){
                 if (obj_list) HDfree(obj_list);
                 error_msg("in parse layout, <%s> Not a valid character in <%s>\n",
-                    sdim,str);
+                        sdim,str);
                 HDexit(EXIT_FAILURE);
             }
 
@@ -673,7 +673,7 @@ obj_list_t* parse_layout(const char *str,
                     if (pack->chunk.chunk_lengths[c_index]==0) {
                         if (obj_list) HDfree(obj_list);
                         error_msg("in parse layout, <%s> conversion to number in <%s>\n",
-                            sdim,str);
+                                sdim,str);
                         HDexit(EXIT_FAILURE);
                     }
                     c_index++;
@@ -691,7 +691,7 @@ obj_list_t* parse_layout(const char *str,
                         if (pack->chunk.chunk_lengths[c_index]==0){
                             if (obj_list) HDfree(obj_list);
                             error_msg("in parse layout, <%s> conversion to number in <%s>\n",
-                                sdim,str);
+                                    sdim,str);
                             HDexit(EXIT_FAILURE);
                         }
                         pack->chunk.rank=c_index+1;
diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt
index 5230693..71c4741 100644
--- a/tools/h5stat/CMakeLists.txt
+++ b/tools/h5stat/CMakeLists.txt
@@ -10,8 +10,8 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # Add the h5stat executables
 # --------------------------------------------------------------------
 add_executable (h5stat ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat.c)
-TARGET_NAMING (h5stat ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5stat ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5stat STATIC)
+TARGET_C_PROPERTIES (h5stat STATIC " " " ")
 target_link_libraries (h5stat  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5stat PROPERTIES FOLDER tools)
 
@@ -21,7 +21,7 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   # Add the h5stat test executables
   # --------------------------------------------------------------------
-  if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  if (HDF5_BUILD_GENERATORS)
     add_executable (h5stat_gentest ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat_gentest.c)
     TARGET_NAMING (h5stat_gentest STATIC)
     TARGET_C_PROPERTIES (h5stat_gentest STATIC " " " ")
@@ -29,7 +29,7 @@ if (BUILD_TESTING)
     set_target_properties (h5stat_gentest PROPERTIES FOLDER generator/tools)
     
     #add_test (NAME h5stat_gentest COMMAND $<TARGET_FILE:h5stat_gentest>)
-  endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  endif (HDF5_BUILD_GENERATORS)
 
   include (CMakeTests.cmake)
 endif (BUILD_TESTING)
@@ -49,8 +49,5 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5stat
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
diff --git a/tools/h5stat/h5stat.c b/tools/h5stat/h5stat.c
index a3a0d13..4cdb816 100644
--- a/tools/h5stat/h5stat.c
+++ b/tools/h5stat/h5stat.c
@@ -717,7 +717,7 @@ obj_stats(const char *path, const H5O_info_t *oi, const char *already_visited,
  *-------------------------------------------------------------------------
  */
 static herr_t
-lnk_stats(const char UNUSED *path, const H5L_info_t *li, void *_iter)
+lnk_stats(const char H5_ATTR_UNUSED *path, const H5L_info_t *li, void *_iter)
 {
     iter_t *iter = (iter_t *)_iter;
 
diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt
index dbd72cd..ce1ad34 100644
--- a/tools/lib/CMakeLists.txt
+++ b/tools/lib/CMakeLists.txt
@@ -37,21 +37,33 @@ set (H5_TOOLS_LIB_HDRS
     ${HDF5_TOOLS_LIB_SOURCE_DIR}/h5diff.h
 )
 
-add_library (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB_HDRS})
-TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} " " " ")
+add_library (${HDF5_TOOLS_LIB_TARGET} STATIC ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB_HDRS})
+TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} STATIC " " " ")
 target_link_libraries (${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (
-    ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME}
-    ${LIB_TYPE}
-    HDF5_TOOLS_LIB_NAME_RELEASE
-    HDF5_TOOLS_LIB_NAME_DEBUG
-)
-#set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES COMPILE_DEFINITIONS H5DIFF_DEBUG)
-set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES 
+H5_SET_LIB_OPTIONS (${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME} STATIC)
+set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES
     FOLDER libraries/tools
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
+#set_property (TARGET ${HDF5_TOOLS_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS H5DIFF_DEBUG)
+set (install_targets ${HDF5_TOOLS_LIB_TARGET})
+
+if (BUILD_SHARED_LIBS)
+  add_library (${HDF5_TOOLS_LIBSH_TARGET} SHARED ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB_HDRS})
+  TARGET_C_PROPERTIES (${HDF5_TOOLS_LIBSH_TARGET} SHARED " " " ")
+  target_link_libraries (${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+  set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIBSH_TARGET}")
+  H5_SET_LIB_OPTIONS (${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_TOOLS_LIB_NAME} SHARED ${HDF5_TOOLS_PACKAGE_SOVERSION})
+  set_target_properties (${HDF5_TOOLS_LIBSH_TARGET} PROPERTIES
+      FOLDER libraries/tools
+      COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
+      INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+      INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
+  )
+  #set_property (TARGET ${HDF5_TOOLS_LIBSH_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS H5DIFF_DEBUG)
+  set (install_targets ${install_targets} ${HDF5_TOOLS_LIBSH_TARGET})
+endif (BUILD_SHARED_LIBS)
 
 ##############################################################################
 ##############################################################################
@@ -60,7 +72,7 @@ set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES
 ##############################################################################
 
 #-----------------------------------------------------------------------------
-# Add file(s) to CMake Install 
+# Add file(s) to CMake Install
 #-----------------------------------------------------------------------------
 install (
     FILES
@@ -76,16 +88,17 @@ install (
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_TOOLS_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} toolslibraries)
+    INSTALL_TARGET_PDB (${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} toolslibraries)
   endif (BUILD_SHARED_LIBS)
-  
+
   install (
       TARGETS
-          ${HDF5_TOOLS_LIB_TARGET}
+          ${install_targets}
       EXPORT
           ${HDF5_EXPORTED_TARGETS}
       LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT toolslibraries
       ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT toolslibraries
       RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolslibraries
+      FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT toolslibraries
   )
 endif (HDF5_EXPORTED_TARGETS)
diff --git a/tools/lib/h5diff_array.c b/tools/lib/h5diff_array.c
index d71bc2c..1ee9054 100644
--- a/tools/lib/h5diff_array.c
+++ b/tools/lib/h5diff_array.c
@@ -6046,28 +6046,6 @@ my_isnan(dtype_t type, void *val)
         }
     }
 
-#ifdef H5_VMS
-    /* For "float" and "double" on OpenVMS/Alpha, NaN is
-    * actually a valid value of maximal value.*/
-    if(!retval)
-    {
-        if (FLT_FLOAT==type)
-        {
-            float x;
-
-            HDmemcpy(&x, val, sizeof(float));
-            retval = (x==FLT_MAX || x==-FLT_MAX);
-        } else if (FLT_DOUBLE==type) {
-            double x;
-
-            HDmemcpy(&x, val, sizeof(double));
-            retval = (x==DBL_MAX || x==-DBL_MAX);
-        } else
-        {
-            return FALSE;
-        }
-    }
-#endif /*H5_VMS*/
 
     return retval;
 }
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c
index a7b0e5e..1284924 100644
--- a/tools/lib/h5tools.c
+++ b/tools/lib/h5tools.c
@@ -54,9 +54,6 @@ unsigned long long packed_data_mask;  /* mask in which packed bits to display */
 
 /* module-scoped variables */
 static int  h5tools_init_g;     /* if h5tools lib has been initialized */
-#ifdef H5_HAVE_PARALLEL
-static int  h5tools_mpi_init_g; /* if MPI_Init() has been called */
-#endif /* H5_HAVE_PARALLEL */
 
 /* Names of VFDs */
 static const char *drivernames[]={
@@ -516,11 +513,14 @@ h5tools_get_fapl(hid_t fapl, const char *driver, unsigned *drivernum)
     }
 #ifdef H5_HAVE_PARALLEL
     else if(!HDstrcmp(driver, drivernames[MPIO_IDX])) {
+        int mpi_initialized, mpi_finalized;
+
         /* MPI-I/O Driver */
-        /* check if MPI has been initialized. */
-        if(!h5tools_mpi_init_g)
-            MPI_Initialized(&h5tools_mpi_init_g);
-        if(h5tools_mpi_init_g) {
+        /* check if MPI is available. */
+        MPI_Initialized(&mpi_initialized);
+        MPI_Finalized(&mpi_finalized);
+
+        if(mpi_initialized && !mpi_finalized) {
             if(H5Pset_fapl_mpio(new_fapl, MPI_COMM_WORLD, MPI_INFO_NULL) < 0)
                 goto error;
             if(drivernum)
diff --git a/tools/lib/h5tools.h b/tools/lib/h5tools.h
index d6c3720..5c08f33 100644
--- a/tools/lib/h5tools.h
+++ b/tools/lib/h5tools.h
@@ -37,10 +37,10 @@
 #define H5TOOLS_DUMP_MAX_RANK     H5S_MAX_RANK
 
 /* Stream macros */
-#define FLUSHSTREAM(S)           if(S != NULL) HDfflush(S)
-#define PRINTSTREAM(S, F, ...)   if(S != NULL) HDfprintf(S, F, __VA_ARGS__)
-#define PRINTVALSTREAM(S, V)   if(S != NULL) HDfprintf(S, V)
-#define PUTSTREAM(X,S)          if(S != NULL) HDfputs(X, S);
+#define FLUSHSTREAM(S)           {if(S != NULL) HDfflush(S);}
+#define PRINTSTREAM(S, F, ...)   {if(S != NULL) HDfprintf(S, F, __VA_ARGS__);}
+#define PRINTVALSTREAM(S, V)   {if(S != NULL) HDfprintf(S, V);}
+#define PUTSTREAM(X,S)          {if(S != NULL) HDfputs(X, S);}
 
 /*
  * Strings for output - these were duplicated from the h5dump.h
diff --git a/tools/lib/h5tools_dump.c b/tools/lib/h5tools_dump.c
index 5ab066e..a05d5ce 100644
--- a/tools/lib/h5tools_dump.c
+++ b/tools/lib/h5tools_dump.c
@@ -36,11 +36,7 @@ h5tool_format_t h5tools_dataformat = {
 "", /*fmt_raw */
 "%d", /*fmt_int */
 "%u", /*fmt_uint */
-#ifdef H5_VMS
-"%hd", /*fmt_schar */
-#else
 "%hhd", /*fmt_schar */
-#endif
 "%u", /*fmt_uchar */
 "%d", /*fmt_short */
 "%u", /*fmt_ushort */
diff --git a/tools/lib/h5tools_ref.c b/tools/lib/h5tools_ref.c
index caf71df..3a4183b 100644
--- a/tools/lib/h5tools_ref.c
+++ b/tools/lib/h5tools_ref.c
@@ -61,7 +61,7 @@ static int ref_path_table_put(const char *, haddr_t objno);
  *-------------------------------------------------------------------------
  */
 static herr_t
-free_ref_path_info(void *item, void UNUSED *key, void UNUSED *operator_data/*in,out*/)
+free_ref_path_info(void *item, void H5_ATTR_UNUSED *key, void H5_ATTR_UNUSED *operator_data/*in,out*/)
 {
     ref_path_node_t *node = (ref_path_node_t *)item;
 
@@ -85,7 +85,7 @@ free_ref_path_info(void *item, void UNUSED *key, void UNUSED *operator_data/*in,
  */
 static herr_t
 init_ref_path_cb(const char *obj_name, const H5O_info_t *oinfo,
-    const char *already_seen, void UNUSED *_udata)
+    const char *already_seen, void H5_ATTR_UNUSED *_udata)
 {
     /* Check if the object is already in the path table */
     if(NULL == already_seen) {
diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c
index 22518d6..1142424 100644
--- a/tools/lib/h5tools_str.c
+++ b/tools/lib/h5tools_str.c
@@ -48,6 +48,7 @@
 static char    *h5tools_escape(char *s, size_t size);
 static hbool_t  h5tools_str_is_zero(const void *_mem, size_t size);
 static void     h5tools_print_char(h5tools_str_t *str, const h5tool_format_t *info, char ch);
+void            h5tools_str_indent(h5tools_str_t *str, const h5tool_format_t *info, h5tools_context_t *ctx);
 
 /*-------------------------------------------------------------------------
  * Function:    h5tools_str_close
@@ -144,16 +145,16 @@ h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...)
         nchars = HDvsnprintf(str->s + str->len, avail, fmt, ap);
         HDva_end(ap);
 
-        /* Note: HDvsnprintf() behaves differently on Windows as Unix, when 
-         * buffer is smaller than source string. On Unix, this function 
-         * returns length of the source string and copy string upto the 
-         * buffer size with NULL at the end of the buffer. However on 
-         * Windows with the same condition, this function returns -1 and 
+        /* Note: HDvsnprintf() behaves differently on Windows as Unix, when
+         * buffer is smaller than source string. On Unix, this function
+         * returns length of the source string and copy string upto the
+         * buffer size with NULL at the end of the buffer. However on
+         * Windows with the same condition, this function returns -1 and
          * doesn't add NULL at the end of the buffer.
          * Because of this different return results, the strlen of the new string
          * is used to handle when HDvsnprintf() returns -1 on Windows due
          * to lack of buffer size, so try one more time after realloc more
-         * buffer size before return NULL. 
+         * buffer size before return NULL.
          */
         if (nchars < 0) {
             /* failure, such as bad format */
@@ -277,7 +278,7 @@ h5tools_str_fmt(h5tools_str_t *str/*in,out*/, size_t start, const char *fmt)
     if (HDstrchr(fmt, '%')) {
         size_t n = sizeof(_temp);
         if (str->len - start + 1 > n) {
-            n = str->len - start + 1; 
+            n = str->len - start + 1;
             temp = (char*)HDmalloc(n);
             HDassert(temp);
         }
@@ -665,12 +666,12 @@ h5tools_str_indent(h5tools_str_t *str, const h5tool_format_t *info,
  *
  *  PVN, 28 March 2006
  *  added H5T_NATIVE_LDOUBLE case
- * 
+ *
  *  Raymond Lu, 2011-09-01
  *  CLANG compiler complained about the line (about 800):
  *    tempint = (tempint >> packed_data_offset) & packed_data_mask;
- *  The right shift may cause undefined behavior if PACKED_DATA_OFFSET is 
- *  32-bit or more. For every kind of native integers, I changed the code 
+ *  The right shift may cause undefined behavior if PACKED_DATA_OFFSET is
+ *  32-bit or more. For every kind of native integers, I changed the code
  *  to make it zero if PACKED_DATA_OFFSET is greater than or equal to the
  *  size of integer.
  *-------------------------------------------------------------------------
@@ -859,11 +860,7 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
                             else
                                 tempchar = (tempchar >> packed_data_offset) & packed_data_mask;
                         }
-    #ifdef H5_VMS
-                        h5tools_str_append(str, OPT(info->fmt_schar, "%hd"), tempchar);
-    #else
                         h5tools_str_append(str, OPT(info->fmt_schar, "%hhd"), tempchar);
-    #endif
                     }
                 } /* end if (sizeof(char) == nsize) */
                 else if (sizeof(int) == nsize) {
@@ -1371,14 +1368,14 @@ h5tools_str_is_zero(const void *_mem, size_t size)
  *
  * Purpose:     replace all occurrences of substring.
  *
- * Return:      char * 
+ * Return:      char *
  *
  * Programmer:  Peter Cao
  *              March 8, 2012
  *
  * Notes:
- *   Applications need to call free() to free the memoery allocated for 
- *   the return string 
+ *   Applications need to call free() to free the memoery allocated for
+ *   the return string
  *
  *-------------------------------------------------------------------------
  */
@@ -1411,6 +1408,6 @@ h5tools_str_replace ( const char *string, const char *substr, const char *replac
         head = newstr + (tok - oldstr) + HDstrlen( replacement );
         HDfree (oldstr);
     }
-	
+
     return newstr;
 }
diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c
index fc8cf1d..572090b 100644
--- a/tools/lib/h5tools_utils.c
+++ b/tools/lib/h5tools_utils.c
@@ -482,10 +482,11 @@ dump_table(char* tablename, table_t *table)
     unsigned u;
 
     PRINTSTREAM(rawoutstream,"%s: # of entries = %d\n", tablename,table->nobjs);
-    for (u = 0; u < table->nobjs; u++)
+    for (u = 0; u < table->nobjs; u++) {
         PRINTSTREAM(rawoutstream,"%a %s %d %d\n", table->objs[u].objno,
            table->objs[u].objname,
            table->objs[u].displayed, table->objs[u].recorded);
+    }
 }
 
 

diff --git a/tools/lib/h5trav.c b/tools/lib/h5trav.c
index 90e6d3d..86e60c3 100644
--- a/tools/lib/h5trav.c
+++ b/tools/lib/h5trav.c
@@ -404,7 +404,7 @@ trav_fileinfo_add(trav_info_t *info, hid_t loc_id)
  */
 int
 trav_info_visit_obj(const char *path, const H5O_info_t *oinfo,
-    const char UNUSED *already_visited, void *udata)
+    const char H5_ATTR_UNUSED *already_visited, void *udata)
 {
     size_t idx;
     trav_info_t *info_p;
@@ -628,7 +628,7 @@ trav_table_visit_obj(const char *path, const H5O_info_t *oinfo,
  *-------------------------------------------------------------------------
  */
 static int
-trav_table_visit_lnk(const char *path, const H5L_info_t UNUSED *linfo, void *udata)
+trav_table_visit_lnk(const char *path, const H5L_info_t H5_ATTR_UNUSED *linfo, void *udata)
 {
     /* Add the link to the 'table' struct */
     trav_table_add((trav_table_t *)udata, path, NULL);
@@ -901,9 +901,9 @@ void trav_table_free( trav_table_t *table )
 static herr_t
 trav_attr(hid_t
 #ifndef H5TRAV_PRINT_SPACE
-UNUSED
+H5_ATTR_UNUSED
 #endif /* H5TRAV_PRINT_SPACE */
-obj, const char *attr_name, const H5A_info_t UNUSED *ainfo, void *_op_data)
+obj, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ainfo, void *_op_data)
 {
     trav_path_op_data_t *op_data = (trav_path_op_data_t *)_op_data;
     const char          *buf = op_data->path;
diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt
index e0f94d0..d53cdc8 100644
--- a/tools/misc/CMakeLists.txt
+++ b/tools/misc/CMakeLists.txt
@@ -11,20 +11,20 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # --------------------------------------------------------------------
 #-- Misc Executables
 add_executable (h5debug ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5debug.c)
-TARGET_NAMING (h5debug ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5debug ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5debug STATIC)
+TARGET_C_PROPERTIES (h5debug STATIC " " " ")
 target_link_libraries (h5debug ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (h5debug PROPERTIES FOLDER tools)
 
 add_executable (h5repart ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart.c)
-TARGET_NAMING (h5repart ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5repart ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5repart STATIC)
+TARGET_C_PROPERTIES (h5repart STATIC " " " ")
 target_link_libraries (h5repart ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (h5repart PROPERTIES FOLDER tools)
 
 add_executable (h5mkgrp ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5mkgrp.c)
-TARGET_NAMING (h5mkgrp ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5mkgrp ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5mkgrp STATIC)
+TARGET_C_PROPERTIES (h5mkgrp STATIC " " " ")
 target_link_libraries (h5mkgrp  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5mkgrp PROPERTIES FOLDER tools)
 
@@ -45,18 +45,18 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   # Add the misc test executables
   # --------------------------------------------------------------------
-  if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  if (HDF5_BUILD_GENERATORS)
     add_executable (h5repart_gentest ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart_gentest.c)
     TARGET_NAMING (h5repart_gentest STATIC)
     TARGET_C_PROPERTIES (h5repart_gentest STATIC " " " ")
     target_link_libraries (h5repart_gentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
     set_target_properties (h5repart_gentest PROPERTIES FOLDER generator/tools)
     #add_test (NAME h5repart_gentest COMMAND $<TARGET_FILE:h5repart_gentest>)
-  endif (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
+  endif (HDF5_BUILD_GENERATORS)
 
   add_executable (h5repart_test ${HDF5_TOOLS_MISC_SOURCE_DIR}/repart_test.c)
-  TARGET_NAMING (h5repart_test ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5repart_test ${LIB_TYPE} " " " ")
+  TARGET_NAMING (h5repart_test STATIC)
+  TARGET_C_PROPERTIES (h5repart_test STATIC " " " ")
   target_link_libraries (h5repart_test ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
   set_target_properties (h5repart_test PROPERTIES FOLDER tools)
 
@@ -80,8 +80,5 @@ endif (BUILD_TESTING)
 install (
     TARGETS
         h5debug h5repart h5mkgrp
-    RUNTIME DESTINATION
-        ${HDF5_INSTALL_BIN_DIR}
-    COMPONENT
-        toolsapplications
+    RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolsapplications
 )
diff --git a/tools/perform/CMakeLists.txt b/tools/perform/CMakeLists.txt
index 17b40fa..3a60a84 100644
--- a/tools/perform/CMakeLists.txt
+++ b/tools/perform/CMakeLists.txt
@@ -21,8 +21,8 @@ set (h5perf_serial_SRCS
     ${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c
 )
 add_executable (h5perf_serial ${h5perf_serial_SRCS})
-TARGET_NAMING (h5perf_serial ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5perf_serial ${LIB_TYPE} " " " ")
+TARGET_NAMING (h5perf_serial STATIC)
+TARGET_C_PROPERTIES (h5perf_serial STATIC " " " ")
 target_link_libraries (h5perf_serial ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (h5perf_serial PROPERTIES FOLDER perform)
 
@@ -33,8 +33,8 @@ if (HDF5_BUILD_PERFORM_STANDALONE)
       ${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c
   )
   add_executable (h5perf_serial_alone ${h5perf_serial_alone_SRCS})
-  TARGET_NAMING (h5perf_serial_alone ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5perf_serial_alone ${LIB_TYPE} " " " ")
+  TARGET_NAMING (h5perf_serial_alone STATIC)
+  TARGET_C_PROPERTIES (h5perf_serial_alone STATIC " " " ")
   target_link_libraries (h5perf_serial_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
   set_target_properties (h5perf_serial_alone PROPERTIES FOLDER perform)
   set_property (TARGET h5perf_serial_alone 
@@ -47,8 +47,8 @@ set (chunk_SRCS
     ${HDF5_PERFORM_SOURCE_DIR}/chunk.c
 )
 ADD_EXECUTABLE(chunk ${chunk_SRCS})
-TARGET_NAMING (chunk ${LIB_TYPE})
-TARGET_C_PROPERTIES (chunk ${LIB_TYPE} " " " ")
+TARGET_NAMING (chunk STATIC)
+TARGET_C_PROPERTIES (chunk STATIC " " " ")
 TARGET_LINK_LIBRARIES(chunk ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (chunk PROPERTIES FOLDER perform)
 
@@ -57,8 +57,8 @@ set (iopipe_SRCS
     ${HDF5_PERFORM_SOURCE_DIR}/iopipe.c
 )
 add_executable (iopipe ${iopipe_SRCS})
-TARGET_NAMING (iopipe ${LIB_TYPE})
-TARGET_C_PROPERTIES (iopipe ${LIB_TYPE} " " " ")
+TARGET_NAMING (iopipe STATIC)
+TARGET_C_PROPERTIES (iopipe STATIC " " " ")
 target_link_libraries (iopipe ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (iopipe PROPERTIES FOLDER perform)
 
@@ -67,8 +67,8 @@ set (overhead_SRCS
     ${HDF5_PERFORM_SOURCE_DIR}/overhead.c
 )
 add_executable (overhead ${overhead_SRCS})
-TARGET_NAMING (overhead ${LIB_TYPE})
-TARGET_C_PROPERTIES (overhead ${LIB_TYPE} " " " ")
+TARGET_NAMING (overhead STATIC)
+TARGET_C_PROPERTIES (overhead STATIC " " " ")
 target_link_libraries (overhead ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (overhead PROPERTIES FOLDER perform)
 
@@ -78,8 +78,8 @@ if (BUILD_TESTING)
       ${HDF5_PERFORM_SOURCE_DIR}/perf_meta.c
   )
   add_executable (perf_meta ${perf_meta_SRCS})
-  TARGET_NAMING (perf_meta ${LIB_TYPE})
-  TARGET_C_PROPERTIES (perf_meta ${LIB_TYPE} " " " ")
+  TARGET_NAMING (perf_meta STATIC)
+  TARGET_C_PROPERTIES (perf_meta STATIC " " " ")
   target_link_libraries (perf_meta ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (perf_meta PROPERTIES FOLDER perform)
 endif (BUILD_TESTING)
@@ -89,8 +89,8 @@ set (zip_perf_SRCS
     ${HDF5_PERFORM_SOURCE_DIR}/zip_perf.c
 )
 add_executable (zip_perf ${zip_perf_SRCS})
-TARGET_NAMING (zip_perf ${LIB_TYPE})
-TARGET_C_PROPERTIES (zip_perf ${LIB_TYPE} " " " ")
+TARGET_NAMING (zip_perf STATIC)
+TARGET_C_PROPERTIES (zip_perf STATIC " " " ")
 target_link_libraries (zip_perf ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (zip_perf PROPERTIES FOLDER perform)
 
@@ -101,8 +101,8 @@ if (H5_HAVE_PARALLEL AND BUILD_TESTING)
       ${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c
   )
   add_executable (h5perf ${h5perf_SRCS})
-  TARGET_NAMING (h5perf ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5perf ${LIB_TYPE} " " " ")
+  TARGET_NAMING (h5perf STATIC)
+  TARGET_C_PROPERTIES (h5perf STATIC " " " ")
   target_link_libraries (h5perf ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (h5perf PROPERTIES FOLDER perform)
 
@@ -113,8 +113,8 @@ if (H5_HAVE_PARALLEL AND BUILD_TESTING)
         ${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c
     )
     add_executable (h5perf_alone ${h5perf_alone_SRCS})
-    TARGET_NAMING (h5perf_alone ${LIB_TYPE})
-    TARGET_C_PROPERTIES (h5perf_alone ${LIB_TYPE} " " " ")
+    TARGET_NAMING (h5perf_alone STATIC)
+    TARGET_C_PROPERTIES (h5perf_alone STATIC " " " ")
     target_link_libraries (h5perf_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
     set_target_properties (h5perf_alone PROPERTIES FOLDER perform)
     set_property (TARGET h5perf_alone 
diff --git a/tools/perform/chunk.c b/tools/perform/chunk.c
index 6825a4c..74bcc46 100644
--- a/tools/perform/chunk.c
+++ b/tools/perform/chunk.c
@@ -33,13 +33,13 @@
 #   include <string.h>
 #endif
 
-
-#if !defined(H5_HAVE_ATTRIBUTE) || defined __cplusplus
+/* Solaris Studio defines attribute, but for the attributes we need */
+#if !defined(H5_HAVE_ATTRIBUTE) || defined __cplusplus || defined(__SUNPRO_C)
 #   undef __attribute__
 #   define __attribute__(X) /*void*/
-#   define UNUSED /*void*/
+#   define H5_ATTR_UNUSED /*void*/
 #else
-#   define UNUSED __attribute__((unused))
+#   define H5_ATTR_UNUSED __attribute__((unused))
 #endif
 
 #define FILE_NAME	"chunk.h5"
@@ -78,7 +78,7 @@ static hid_t	fapl_g = -1;
 
 /* Local function prototypes */
 static size_t
-counter (unsigned UNUSED flags, size_t cd_nelmts,
+counter (unsigned H5_ATTR_UNUSED flags, size_t cd_nelmts,
 	 const unsigned *cd_values, size_t nbytes,
 	 size_t *buf_size, void **buf);
 
@@ -111,9 +111,9 @@ const H5Z_class2_t H5Z_COUNTER[1] = {{
  *-------------------------------------------------------------------------
  */
 static size_t
-counter (unsigned UNUSED flags, size_t UNUSED cd_nelmts,
-	 const unsigned UNUSED *cd_values, size_t nbytes,
-	 size_t UNUSED *buf_size, void UNUSED **buf)
+counter (unsigned H5_ATTR_UNUSED flags, size_t H5_ATTR_UNUSED cd_nelmts,
+	 const unsigned H5_ATTR_UNUSED *cd_values, size_t nbytes,
+	 size_t H5_ATTR_UNUSED *buf_size, void H5_ATTR_UNUSED **buf)
 {
     nio_g += nbytes;
     return nbytes;
diff --git a/tools/perform/overhead.c b/tools/perform/overhead.c
index 046668f..0288ffa 100644
--- a/tools/perform/overhead.c
+++ b/tools/perform/overhead.c
@@ -46,12 +46,13 @@
 #   include <io.h>
 #endif
 
-#ifndef H5_HAVE_ATTRIBUTE
+/* Solaris Studio defines attribute, but for the attributes we need */
+#if !defined(H5_HAVE_ATTRIBUTE) || defined __cplusplus || defined(__SUNPRO_C)
 #   undef __attribute__
 #   define __attribute__(X) /*void*/
-#   define UNUSED /*void*/
+#   define H5_ATTR_UNUSED /*void*/
 #else
-#   define UNUSED __attribute__((unused))
+#   define H5_ATTR_UNUSED __attribute__((unused))
 #endif
 
 #define FILE_NAME_1  "overhead.h5"
@@ -163,7 +164,7 @@ cleanup (void)
  *-------------------------------------------------------------------------
  */
 static herr_t
-display_error_cb (hid_t estack, void UNUSED *client_data)
+display_error_cb (hid_t estack, void H5_ATTR_UNUSED *client_data)
 {
     puts ("*FAILED*");
     H5Eprint2(estack, stdout);
diff --git a/tools/perform/perf.c b/tools/perform/perf.c
index 1bd33b6..afd13c0 100644
--- a/tools/perform/perf.c
+++ b/tools/perform/perf.c
@@ -473,7 +473,7 @@ parse_args(int argc, char **argv)
 #else /* H5_HAVE_PARALLEL */
 /* dummy program since H5_HAVE_PARALLEL is not configured in */
 int
-main(int UNUSED argc, char UNUSED **argv)
+main(int H5_ATTR_UNUSED argc, char H5_ATTR_UNUSED **argv)
 {
     printf("No parallel performance because parallel is not configured in\n");
     return(0);
diff --git a/tools/perform/sio_standalone.h b/tools/perform/sio_standalone.h
index 4eb1ded..8f52eba 100644
--- a/tools/perform/sio_standalone.h
+++ b/tools/perform/sio_standalone.h
@@ -322,18 +322,7 @@ H5_DLL int HDrand(void);
 #define HDread(F,M,Z)           read(F,M,Z)
 #define HDreaddir(D)            readdir(D)
 #define HDrealloc(M,Z)          realloc(M,Z)
-#ifdef H5_VMS
-#ifdef __cplusplus
-extern "C" {
-#endif
-int HDremove_all(const char * fname);
-#ifdef __cplusplus
-}
-#endif
-#define HDremove(S)             HDremove_all(S)
-#else
 #define HDremove(S)             remove(S)
-#endif /*H5_VMS*/
 #define HDrename(OLD,NEW)       rename(OLD,NEW)
 #define HDrewind(F)             rewind(F)
 #define HDrewinddir(D)          rewinddir(D)
diff --git a/tools/perform/zip_perf.c b/tools/perform/zip_perf.c
index f73ba40..d025602 100644
--- a/tools/perform/zip_perf.c
+++ b/tools/perform/zip_perf.c
@@ -30,15 +30,6 @@
 
 #include <zlib.h>
 
-#ifdef VMS
-#  define unlink        delete
-#endif  /* VMS */
-
-#ifdef RISCOS
-#  define unlink        remove
-#  define fileno(file)  file->__file
-#endif  /* RISCOS */
-
 #define ONE_KB              1024
 #define ONE_MB              (ONE_KB * ONE_KB)
 #define ONE_GB              (ONE_MB * ONE_KB)
diff --git a/tools/testfiles/tnofilename-with-packed-bits.ddl b/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
similarity index 100%
rename from tools/testfiles/tnofilename-with-packed-bits.ddl
rename to tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
diff --git a/tools/testfiles/tpbitsArray.ddl b/tools/testfiles/pbits/tpbitsArray.ddl
similarity index 100%
rename from tools/testfiles/tpbitsArray.ddl
rename to tools/testfiles/pbits/tpbitsArray.ddl
diff --git a/tools/testfiles/tpbitsCharLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsCharLengthExceeded.ddl
rename to tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl
diff --git a/tools/testfiles/tpbitsCharOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsCharOffsetExceeded.ddl
rename to tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl
diff --git a/tools/testfiles/tpbitsCompound.ddl b/tools/testfiles/pbits/tpbitsCompound.ddl
similarity index 100%
rename from tools/testfiles/tpbitsCompound.ddl
rename to tools/testfiles/pbits/tpbitsCompound.ddl
diff --git a/tools/testfiles/tpbitsIncomplete.ddl b/tools/testfiles/pbits/tpbitsIncomplete.ddl
similarity index 100%
rename from tools/testfiles/tpbitsIncomplete.ddl
rename to tools/testfiles/pbits/tpbitsIncomplete.ddl
diff --git a/tools/testfiles/tpbitsIntLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsIntLengthExceeded.ddl
rename to tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl
diff --git a/tools/testfiles/tpbitsIntOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsIntOffsetExceeded.ddl
rename to tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl
diff --git a/tools/testfiles/tpbitsLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsLengthExceeded.ddl
rename to tools/testfiles/pbits/tpbitsLengthExceeded.ddl
diff --git a/tools/testfiles/tpbitsLengthPositive.ddl b/tools/testfiles/pbits/tpbitsLengthPositive.ddl
similarity index 100%
rename from tools/testfiles/tpbitsLengthPositive.ddl
rename to tools/testfiles/pbits/tpbitsLengthPositive.ddl
diff --git a/tools/testfiles/tpbitsLongLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsLongLengthExceeded.ddl
rename to tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl
diff --git a/tools/testfiles/tpbitsLongOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsLongOffsetExceeded.ddl
rename to tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl
diff --git a/tools/testfiles/tpbitsMax.ddl b/tools/testfiles/pbits/tpbitsMax.ddl
similarity index 100%
rename from tools/testfiles/tpbitsMax.ddl
rename to tools/testfiles/pbits/tpbitsMax.ddl
diff --git a/tools/testfiles/tpbitsMaxExceeded.ddl b/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsMaxExceeded.ddl
rename to tools/testfiles/pbits/tpbitsMaxExceeded.ddl
diff --git a/tools/testfiles/tpbitsOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
similarity index 100%
rename from tools/testfiles/tpbitsOffsetExceeded.ddl
rename to tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
diff --git a/tools/testfiles/tpbitsOffsetNegative.ddl b/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
similarity index 100%
rename from tools/testfiles/tpbitsOffsetNegative.ddl
rename to tools/testfiles/pbits/tpbitsOffsetNegative.ddl
diff --git a/tools/testfiles/tpbitsOverlapped.ddl b/tools/testfiles/pbits/tpbitsOverlapped.ddl
similarity index 100%
rename from tools/testfiles/tpbitsOverlapped.ddl
rename to tools/testfiles/pbits/tpbitsOverlapped.ddl
diff --git a/tools/testfiles/tpbitsSigned.ddl b/tools/testfiles/pbits/tpbitsSigned.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSigned.ddl
rename to tools/testfiles/pbits/tpbitsSigned.ddl
diff --git a/tools/testfiles/tpbitsSigned2.ddl b/tools/testfiles/pbits/tpbitsSigned2.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSigned2.ddl
rename to tools/testfiles/pbits/tpbitsSigned2.ddl
diff --git a/tools/testfiles/tpbitsSigned4.ddl b/tools/testfiles/pbits/tpbitsSigned4.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSigned4.ddl
rename to tools/testfiles/pbits/tpbitsSigned4.ddl
diff --git a/tools/testfiles/tpbitsSignedInt.ddl b/tools/testfiles/pbits/tpbitsSignedInt.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedInt.ddl
rename to tools/testfiles/pbits/tpbitsSignedInt.ddl
diff --git a/tools/testfiles/tpbitsSignedInt4.ddl b/tools/testfiles/pbits/tpbitsSignedInt4.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedInt4.ddl
rename to tools/testfiles/pbits/tpbitsSignedInt4.ddl
diff --git a/tools/testfiles/tpbitsSignedInt8.ddl b/tools/testfiles/pbits/tpbitsSignedInt8.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedInt8.ddl
rename to tools/testfiles/pbits/tpbitsSignedInt8.ddl
diff --git a/tools/testfiles/tpbitsSignedIntWhole.ddl b/tools/testfiles/pbits/tpbitsSignedIntWhole.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedIntWhole.ddl
rename to tools/testfiles/pbits/tpbitsSignedIntWhole.ddl
diff --git a/tools/testfiles/tpbitsSignedLong.ddl b/tools/testfiles/pbits/tpbitsSignedLong.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLong.ddl
rename to tools/testfiles/pbits/tpbitsSignedLong.ddl
diff --git a/tools/testfiles/tpbitsSignedLong16.ddl b/tools/testfiles/pbits/tpbitsSignedLong16.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLong16.ddl
rename to tools/testfiles/pbits/tpbitsSignedLong16.ddl
diff --git a/tools/testfiles/tpbitsSignedLong8.ddl b/tools/testfiles/pbits/tpbitsSignedLong8.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLong8.ddl
rename to tools/testfiles/pbits/tpbitsSignedLong8.ddl
diff --git a/tools/testfiles/tpbitsSignedLongLong.ddl b/tools/testfiles/pbits/tpbitsSignedLongLong.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLongLong.ddl
rename to tools/testfiles/pbits/tpbitsSignedLongLong.ddl
diff --git a/tools/testfiles/tpbitsSignedLongLong16.ddl b/tools/testfiles/pbits/tpbitsSignedLongLong16.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLongLong16.ddl
rename to tools/testfiles/pbits/tpbitsSignedLongLong16.ddl
diff --git a/tools/testfiles/tpbitsSignedLongLong32.ddl b/tools/testfiles/pbits/tpbitsSignedLongLong32.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLongLong32.ddl
rename to tools/testfiles/pbits/tpbitsSignedLongLong32.ddl
diff --git a/tools/testfiles/tpbitsSignedLongLongWhole.ddl b/tools/testfiles/pbits/tpbitsSignedLongLongWhole.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLongLongWhole.ddl
rename to tools/testfiles/pbits/tpbitsSignedLongLongWhole.ddl
diff --git a/tools/testfiles/tpbitsSignedLongLongWhole1.ddl b/tools/testfiles/pbits/tpbitsSignedLongLongWhole1.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLongLongWhole1.ddl
rename to tools/testfiles/pbits/tpbitsSignedLongLongWhole1.ddl
diff --git a/tools/testfiles/tpbitsSignedLongLongWhole63.ddl b/tools/testfiles/pbits/tpbitsSignedLongLongWhole63.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLongLongWhole63.ddl
rename to tools/testfiles/pbits/tpbitsSignedLongLongWhole63.ddl
diff --git a/tools/testfiles/tpbitsSignedLongWhole.ddl b/tools/testfiles/pbits/tpbitsSignedLongWhole.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedLongWhole.ddl
rename to tools/testfiles/pbits/tpbitsSignedLongWhole.ddl
diff --git a/tools/testfiles/tpbitsSignedWhole.ddl b/tools/testfiles/pbits/tpbitsSignedWhole.ddl
similarity index 100%
rename from tools/testfiles/tpbitsSignedWhole.ddl
rename to tools/testfiles/pbits/tpbitsSignedWhole.ddl
diff --git a/tools/testfiles/tpbitsUnsigned.ddl b/tools/testfiles/pbits/tpbitsUnsigned.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsigned.ddl
rename to tools/testfiles/pbits/tpbitsUnsigned.ddl
diff --git a/tools/testfiles/tpbitsUnsigned2.ddl b/tools/testfiles/pbits/tpbitsUnsigned2.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsigned2.ddl
rename to tools/testfiles/pbits/tpbitsUnsigned2.ddl
diff --git a/tools/testfiles/tpbitsUnsigned4.ddl b/tools/testfiles/pbits/tpbitsUnsigned4.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsigned4.ddl
rename to tools/testfiles/pbits/tpbitsUnsigned4.ddl
diff --git a/tools/testfiles/tpbitsUnsignedInt.ddl b/tools/testfiles/pbits/tpbitsUnsignedInt.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedInt.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedInt.ddl
diff --git a/tools/testfiles/tpbitsUnsignedInt4.ddl b/tools/testfiles/pbits/tpbitsUnsignedInt4.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedInt4.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedInt4.ddl
diff --git a/tools/testfiles/tpbitsUnsignedInt8.ddl b/tools/testfiles/pbits/tpbitsUnsignedInt8.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedInt8.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedInt8.ddl
diff --git a/tools/testfiles/tpbitsUnsignedIntWhole.ddl b/tools/testfiles/pbits/tpbitsUnsignedIntWhole.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedIntWhole.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedIntWhole.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLong.ddl b/tools/testfiles/pbits/tpbitsUnsignedLong.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLong.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLong.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLong16.ddl b/tools/testfiles/pbits/tpbitsUnsignedLong16.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLong16.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLong16.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLong8.ddl b/tools/testfiles/pbits/tpbitsUnsignedLong8.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLong8.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLong8.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLongLong.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLong.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLongLong.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLongLong.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLongLong16.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLong16.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLongLong16.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLongLong16.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLongLong32.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLong32.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLongLong32.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLongLong32.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLongLongWhole.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLongLongWhole.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLongLongWhole.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLongLongWhole1.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole1.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLongLongWhole1.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLongLongWhole1.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLongLongWhole63.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole63.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLongLongWhole63.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLongLongWhole63.ddl
diff --git a/tools/testfiles/tpbitsUnsignedLongWhole.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongWhole.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedLongWhole.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedLongWhole.ddl
diff --git a/tools/testfiles/tpbitsUnsignedWhole.ddl b/tools/testfiles/pbits/tpbitsUnsignedWhole.ddl
similarity index 100%
rename from tools/testfiles/tpbitsUnsignedWhole.ddl
rename to tools/testfiles/pbits/tpbitsUnsignedWhole.ddl
diff --git a/tools/testfiles/tldouble.h5 b/tools/testfiles/tldouble.h5
index 56f673f..eb031e7 100644
Binary files a/tools/testfiles/tldouble.h5 and b/tools/testfiles/tldouble.h5 differ

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/hdf5.git



More information about the Pkg-grass-devel mailing list