diff --git a/SuperBuild/patches/OSSIM/ossim-4-trac_2354-linux.diff b/SuperBuild/patches/OSSIM/ossim-4-trac_2354-linux.diff
new file mode 100755
index 0000000000000000000000000000000000000000..b24dd823a006acb884d677fe3956224538f38619
--- /dev/null
+++ b/SuperBuild/patches/OSSIM/ossim-4-trac_2354-linux.diff
@@ -0,0 +1,51 @@
+Description: Fix build failure with GCC 6: no match for 'operator<<'.
+Author: Rashad M <rashadkm@gmail.com>
+Origin: https://trac.osgeo.org/ossim/attachment/ticket/2354/fix-ossim-trac-2354.diff
+Bug-Debian: https://bugs.debian.org/811851
+Bug: https://trac.osgeo.org/ossim/ticket/2354
+
+--- a/ossim/src/ossim/elevation/ossimElevManager.cpp
++++ b/ossim/src/ossim/elevation/ossimElevManager.cpp
+@@ -643,14 +643,26 @@ std::ostream& ossimElevManager::print(os
+          << "\nm_useGeoidIfNullFlag = "<<m_useGeoidIfNullFlag
+          << "\nm_currentDatabaseIdx = "<<m_currentDatabaseIdx
+          << "\nm_dbRoundRobin.size = "<<m_dbRoundRobin.size();
++
+    for (ossim_uint32 i=0; i<m_dbRoundRobin.size(); ++i)
+    {
+       out<<"\nm_dbRoundRobin["<<i<<"].size = "<<m_dbRoundRobin[i].size()<<endl;
+       for (ossim_uint32 j=0; j<m_dbRoundRobin[i].size(); ++j)
+-         out<<"m_dbRoundRobin["<<i<<"]["<<j<<"] = "<<m_dbRoundRobin[i][j]->print(out)<<endl;
++      {
++         out<<"m_dbRoundRobin["<<i<<"]["<<j<<"] = ";
++         // GP: We have to separate this line.  On MS it will not compile                                                                                            
++         // otherwise                                                                                                                                                
++         m_dbRoundRobin[i][j]->print(out);
++
++      }
++         out<<endl;
+    }
+-   cout<<"\n"<<ossimElevSource::print(cout);
++   out<<"\n";
++   ossimElevSource::print(out);
+    return out;
++
++
++
+ }
+ 
+ 
+--- a/ossim/src/ossim/elevation/ossimElevSource.cpp
++++ b/ossim/src/ossim/elevation/ossimElevSource.cpp
+@@ -269,8 +269,9 @@ std::ostream& ossimElevSource::print(std
+          << "\ntheMaxHeightAboveMSL = "<<theMaxHeightAboveMSL
+          << "\ntheNullHeightValue = "<<theNullHeightValue
+          << "\ntheSeaLevelValue = "<<theSeaLevelValue
+-         << "\ntheGroundRect = "<<theGroundRect
+-         << ossimSource::print(out);
++         << "\ntheGroundRect = "<<theGroundRect;
++         // GP: need this by itself.  MS errors out
++         ossimSource::print(out);
+    return out;
+ }
+ 
diff --git a/SuperBuild/patches/QT4/qt4-3-force-std98-linux.diff b/SuperBuild/patches/QT4/qt4-3-force-std98-linux.diff
new file mode 100755
index 0000000000000000000000000000000000000000..9baf1895663471b0671a44ee622f274259cc7603
--- /dev/null
+++ b/SuperBuild/patches/QT4/qt4-3-force-std98-linux.diff
@@ -0,0 +1,12 @@
+diff -burN qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/linux.conf qt-everywhere-opensource-src-4.8.7/mkspecs/common/linux.conf
+--- qt-everywhere-opensource-src-4.8.7.orig/mkspecs/common/linux.conf	2016-12-07 11:19:59.964124979 +0100
++++ qt-everywhere-opensource-src-4.8.7/mkspecs/common/linux.conf	2016-12-07 11:22:29.116132748 +0100
+@@ -1,7 +1,7 @@
+ #
+ # qmake configuration for common linux
+ #
+-
++QMAKE_CXXFLAGS += -w -std=c++98
+ QMAKE_CFLAGS_THREAD	+= -D_REENTRANT
+ QMAKE_CXXFLAGS_THREAD	+= $$QMAKE_CFLAGS_THREAD
+