diff --git a/CiftiLib.pc.in b/CiftiLib.pc.in
index 13cd78c..8db6c46 100644
--- a/CiftiLib.pc.in
+++ b/CiftiLib.pc.in
@@ -5,6 +5,6 @@ Name: CiftiLib
 Description: C++ Library for reading and writing CIFTI-2 and CIFTI-1 files
 Version: @CIFTILIB_VERSION@
 URL: https://github.com/Washington-University/CiftiLib
-Cflags: -I${includedir}/CiftiLib @CIFTILIB_PKGCONFIG_DEFINE@
+Cflags: -I${includedir}/CiftiLib @CIFTILIB_PKGCONFIG_DEFINE@ @OpenMP_CXX_FLAGS@
 Libs: -L${libdir} -lCifti
 @CIFTILIB_PKGCONFIG_REQUIRES_LINE@
diff --git a/debian/changelog b/debian/changelog
index d89521c..168ca6f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,16 @@
-ciftilib (1.5.3-2) UNRELEASED; urgency=medium
+ciftilib (1.5.3+git20190401.108ddc2-1) UNRELEASED; urgency=medium
 
+  [ Ghislain Antony Vaillant ]
   * gbp.conf: drop pq settings
   * Cherry-pick upstream fix for FTBFS on big endian.
     Thanks to Adrian Bunk for reporting (Closes: #921555)
 
- -- Ghislain Antony Vaillant <ghisvail@gmail.com>  Tue, 02 Apr 2019 21:49:25 +0200
+  [ Debian Janitor ]
+  * New upstream snapshot.
+  * Drop patch 0001-force-endian-of-datatype-example-to-make-tests-pass-
+    .patch, present upstream.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Sat, 07 Sep 2019 13:21:27 +0000
 
 ciftilib (1.5.3-1) unstable; urgency=medium
 
diff --git a/debian/patches/0001-force-endian-of-datatype-example-to-make-tests-pass-.patch b/debian/patches/0001-force-endian-of-datatype-example-to-make-tests-pass-.patch
deleted file mode 100644
index fc49e2d..0000000
--- a/debian/patches/0001-force-endian-of-datatype-example-to-make-tests-pass-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Tim Coalson <tsc5yc@mst.edu>
-Date: Mon, 1 Apr 2019 16:56:12 -0500
-Subject: force endian of datatype example to make tests pass on bigendian
- systems
-
----
- example/datatype.cxx | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/example/datatype.cxx b/example/datatype.cxx
-index a293856..1da380b 100644
---- a/example/datatype.cxx
-+++ b/example/datatype.cxx
-@@ -19,14 +19,14 @@ int main(int argc, char** argv)
-     if (argc < 3)
-     {
-         cout << "usage: " << argv[0] << " <input cifti> <output cifti>" << endl;
--        cout << "  rewrite the input cifti file to the output filename, using uint8 and data scaling." << endl;
-+        cout << "  rewrite the input cifti file to the output filename, using uint8 and data scaling, little-endian." << endl;
-         return 1;
-     }
-     try
-     {
-         CiftiFile inputFile(argv[1]);//on-disk reading by default
-         inputFile.setWritingDataTypeAndScaling(NIFTI_TYPE_UINT8, -1.0, 6.0);//tells it to use this datatype to best represent this specified range of values [-1.0, 6.0] whenever this instance is written
--        inputFile.writeFile(argv[2]);//if this is the same filename as the input, CiftiFile actually detects this and reads the input into memory first
-+        inputFile.writeFile(argv[2], CiftiVersion(), CiftiFile::LITTLE);//if this is the same filename as the input, CiftiFile actually detects this and reads the input into memory first
-         //otherwise, it will read and write one row at a time, using very little memory
-         //inputFile.setWritingDataTypeNoScaling(NIFTI_TYPE_FLOAT32);//this is how you would revert back to writing as float32 without rescaling
-     } catch (CiftiException& e) {
diff --git a/debian/patches/series b/debian/patches/series
index 1348bdb..e69de29 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +0,0 @@
-0001-force-endian-of-datatype-example-to-make-tests-pass-.patch
diff --git a/example/datatype.cxx b/example/datatype.cxx
index a293856..1da380b 100644
--- a/example/datatype.cxx
+++ b/example/datatype.cxx
@@ -19,14 +19,14 @@ int main(int argc, char** argv)
     if (argc < 3)
     {
         cout << "usage: " << argv[0] << " <input cifti> <output cifti>" << endl;
-        cout << "  rewrite the input cifti file to the output filename, using uint8 and data scaling." << endl;
+        cout << "  rewrite the input cifti file to the output filename, using uint8 and data scaling, little-endian." << endl;
         return 1;
     }
     try
     {
         CiftiFile inputFile(argv[1]);//on-disk reading by default
         inputFile.setWritingDataTypeAndScaling(NIFTI_TYPE_UINT8, -1.0, 6.0);//tells it to use this datatype to best represent this specified range of values [-1.0, 6.0] whenever this instance is written
-        inputFile.writeFile(argv[2]);//if this is the same filename as the input, CiftiFile actually detects this and reads the input into memory first
+        inputFile.writeFile(argv[2], CiftiVersion(), CiftiFile::LITTLE);//if this is the same filename as the input, CiftiFile actually detects this and reads the input into memory first
         //otherwise, it will read and write one row at a time, using very little memory
         //inputFile.setWritingDataTypeNoScaling(NIFTI_TYPE_FLOAT32);//this is how you would revert back to writing as float32 without rescaling
     } catch (CiftiException& e) {
diff --git a/example/xmlinfo.cxx b/example/xmlinfo.cxx
index 6958665..3f2c755 100644
--- a/example/xmlinfo.cxx
+++ b/example/xmlinfo.cxx
@@ -21,7 +21,7 @@ int main(int argc, char** argv)
     }
     try
     {
-        CiftiFile inputFile(argv[1]);//on-disk reading by default, and we only need the XML header anyway
+        CiftiFile inputFile((string(argv[1])));//on-disk reading by default, and we only need the XML header anyway
         const CiftiXML& myXML = inputFile.getCiftiXML();
         for (int whichDim = 0; whichDim < myXML.getNumberOfDimensions(); ++whichDim)
         {
diff --git a/src/Common/AString.h b/src/Common/AString.h
index 6a0f695..269cacb 100644
--- a/src/Common/AString.h
+++ b/src/Common/AString.h
@@ -42,7 +42,26 @@
 #include <QString>
 namespace cifti
 {
-    typedef QString AString;
+    struct AString : public QString
+    {//QT doesn't convert from std::string, and conversions have to be member functions
+        AString() {}
+        
+        //make common copy case simple by not going through the below mess
+        AString(const AString& rhs) : QString(rhs) { }
+        
+        //some QString constructors are explicit, so instead only make conversion constructors for whatever works with assignment to QString
+        //the cast is required to avoid recursing through AString
+        template <typename T>
+        AString(const T& rhs) : QString()
+        {
+            *(static_cast<QString*>(this)) = rhs;
+        }
+        
+        AString(const std::string& rhs) : QString()
+        {
+            (*this) = fromStdString(rhs);
+        }
+    };
 #define ASTRING_TO_CSTR(mystr) ((mystr).toLocal8Bit().constData())
 #define ASTRING_UTF8_RAW(mystr) ((mystr).toUtf8().constData())
     inline std::string AString_to_std_string(const AString& mystr)
diff --git a/src/NiftiIO.h b/src/NiftiIO.h
index fd514df..965e9ff 100644
--- a/src/NiftiIO.h
+++ b/src/NiftiIO.h
@@ -305,13 +305,14 @@ namespace cifti
     template<typename TO, typename FROM>
     TO NiftiIO::clamp(const FROM& in)
     {
-        std::numeric_limits<TO> mylimits;
-        if (mylimits.max() < in) return mylimits.max();
-        if (mylimits.is_integer)//c++11 can use lowest() instead of this mess
+        typedef std::numeric_limits<TO> mylimits;
+        if (mylimits::has_infinity && std::isinf(in)) return (TO)in;//in case we use this on float types at some point
+        if (mylimits::max() < in) return mylimits::max();
+        if (mylimits::is_integer)//c++11 can use lowest() instead of this mess
         {
-            if (mylimits.min() > in) return mylimits.min();
+            if (mylimits::min() > in) return mylimits::min();
         } else {
-            if (-mylimits.max() > in) return -mylimits.max();
+            if (-mylimits::max() > in) return -mylimits::max();
         }
         return (TO)in;
     }