diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/FileProperty.h b/Code/Mantid/Framework/API/inc/MantidAPI/FileProperty.h
index 8d084a6ba9a1af4614b38dd1aa21c9ba9833e794..33376847326b8fd04bd4445c9a7de34df0675f3c 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/FileProperty.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/FileProperty.h
@@ -47,7 +47,7 @@ public:
                const std::string & ext, unsigned int direction = Kernel::Direction::Input);
 
   /// 'Virtual copy constructor
-  Kernel::Property* clone() { return new FileProperty(*this); }
+  virtual FileProperty* clone() { return new FileProperty(*this); }
 
   /// Check if this is a load type property.
   bool isLoadProperty() const;
@@ -64,6 +64,9 @@ public:
   /// Returns the main file extension that's used 
   std::string getDefaultExt() const {return m_defaultExt;}
 
+  // Unhide the PropertyWithValue assignment operator
+  using Kernel::PropertyWithValue<std::string>::operator=;
+
  private:
   void setUp(const std::string & defExt);
   /// Do the allowed values match the facility preference extensions for run files
@@ -82,6 +85,9 @@ public:
   std::string m_defaultExt;
   /// Is this property for run files?
   bool m_runFileProp;
+
+  /// Private, unimplemented copy assignment operator
+  FileProperty& operator=( const FileProperty& right );
 };
 
 }
diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/MultipleFileProperty.h b/Code/Mantid/Framework/API/inc/MantidAPI/MultipleFileProperty.h
index aa9d00311432f538a4116eaac751b4226bae7013..3dca5a1d70eee22f564bb142baa56f4497c187d4 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/MultipleFileProperty.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/MultipleFileProperty.h
@@ -10,12 +10,8 @@ namespace Mantid
 namespace API
 {
 
-  /** A property to allow a user to select multiple
-   * files to load.
+  /** A property to allow a user to select multiple files to load.
     
-    @author Janik Zikovsky
-    @date 2011-08-17
-
     Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory
 
     This file is part of Mantid.
@@ -53,6 +49,9 @@ namespace API
     const std::set<std::string> & getExts() const
     { return m_exts; }
 
+    // Unhide the PropertyWithValue assignment operator
+    using Kernel::ArrayProperty<std::string>::operator=;
+
   private:
     /// Suggested extensions
     std::set<std::string> m_exts;
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/MaskedProperty.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/MaskedProperty.h
index dcdfc7a28a529b89b5850bfc6b73e3ee50d09491..3534ecc35a8d26367e47ada854256925a1ce5aa5 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/MaskedProperty.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/MaskedProperty.h
@@ -85,6 +85,10 @@ namespace Mantid
         * @return do not remember masked property values
         */
         virtual bool remember() const { return false; };
+
+        // Unhide the PropertyWithValue assignment operator
+        using Kernel::PropertyWithValue<TYPE>::operator=;
+
 		private:
 
 			/** This method creates masked value for a property
diff --git a/Code/Mantid/QtPropertyBrowser/CMakeLists.txt b/Code/Mantid/QtPropertyBrowser/CMakeLists.txt
index 047797fe5e2982a4841c049051683c46027c405f..e60feb908f123dfe57f8bac682804f115f13d143 100644
--- a/Code/Mantid/QtPropertyBrowser/CMakeLists.txt
+++ b/Code/Mantid/QtPropertyBrowser/CMakeLists.txt
@@ -139,6 +139,9 @@ endif ( WIN32 )
 # warning that crops up a lot in this package
 if ( ${CMAKE_CXX_COMPILER_ID} MATCHES "Intel" )
   add_definitions ( -wd1125 )
+# Also make sure the equivalent gcc warning is turned off
+elseif ( ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU" )
+  add_definitions ( -Wno-overloaded-virtual )
 endif ()
 
 ###########################################################################