diff --git a/HLT/Services/JiveXMLServer/src/JiveXMLServer.cxx b/HLT/Services/JiveXMLServer/src/JiveXMLServer.cxx
index 0eed59a64eccf4f8277eb9e28d47c6d83cb44663..d9268f7ea315d08548bd974ac221bad5d58fd514 100644
--- a/HLT/Services/JiveXMLServer/src/JiveXMLServer.cxx
+++ b/HLT/Services/JiveXMLServer/src/JiveXMLServer.cxx
@@ -125,7 +125,15 @@ namespace JiveXML {
 
     // Now issue the call with a timeout
     struct timeval timeout; timeout.tv_sec = 1; timeout.tv_usec = 0;
+// xdr_void is defined inconsistently in xdr.h and gets a warning from gcc8.
+#if __GNUC__ >= 8
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wcast-function-type"
+#endif
     clnt_call(client, NULLPROC, (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_void, NULL, timeout);
+#if __GNUC__ >= 8
+# pragma GCC diagnostic pop
+#endif
 
     // A pointer to the return value of the thread
     void* ret = NULL;
@@ -238,7 +246,7 @@ namespace JiveXML {
       //Now add the new event
       m_eventStreamMap.insert(EventStreamPair(evtStreamID,event));
     
-    } catch ( std::exception e ) {
+    } catch ( const std::exception& e ) {
       ERS_ERROR("Exception caught while updating event for stream "
                 << evtStreamID.StreamName() << ": " << e.what());
       //Also release the lock in this case