diff --git a/Framework/Algorithms/inc/MantidAlgorithms/ApplyDetailedBalance.h b/Framework/Algorithms/inc/MantidAlgorithms/ApplyDetailedBalance.h
index 8066fca48493a1aedb8b824688e92b3cbd190ace..3404285d7693912cc6586eb53e7409bc29996315 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/ApplyDetailedBalance.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/ApplyDetailedBalance.h
@@ -49,7 +49,7 @@ public:
   /// Algorithm's version for identification
   virtual int version() const { return 1; };
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Inelastic"; }
+  virtual const std::string category() const { return "Inelastic\\Corrections"; }
 
 private:
   /// Initialise the properties
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/CorrectFlightPaths.h b/Framework/Algorithms/inc/MantidAlgorithms/CorrectFlightPaths.h
index fec939235f861e9d42b73d457b19d330487971bb..fdf84863bfaceeddb50be8acdb6e056a9727a657 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/CorrectFlightPaths.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/CorrectFlightPaths.h
@@ -59,7 +59,7 @@ public:
   virtual int version() const { return 1; }
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const {
-    return "Inelastic;CorrectionFunctions\\InstrumentCorrections";
+    return "Inelastic\\Corrections;CorrectionFunctions\\InstrumentCorrections";
   }
 
 private:
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/CorrectKiKf.h b/Framework/Algorithms/inc/MantidAlgorithms/CorrectKiKf.h
index 2ba7f7f24fedb3047bd31f34b49e8a702c22d007..7f34bb2341ea36336506075f76cca12205cc1aba 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/CorrectKiKf.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/CorrectKiKf.h
@@ -77,7 +77,7 @@ public:
   virtual int version() const { return 1; }
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const {
-    return "Inelastic;CorrectionFunctions\\SpecialCorrections";
+    return "Inelastic\\Corrections;CorrectionFunctions\\SpecialCorrections";
   }
 
 private:
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/DetectorEfficiencyCor.h b/Framework/Algorithms/inc/MantidAlgorithms/DetectorEfficiencyCor.h
index fb04a5798109743d4df59576460ceaa481a33397..b704249198ea1298b07fb579b0990c132186b59e 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/DetectorEfficiencyCor.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/DetectorEfficiencyCor.h
@@ -99,7 +99,7 @@ public:
   virtual int version() const { return 1; }
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const {
-    return "CorrectionFunctions\\EfficiencyCorrections;Inelastic";
+    return "CorrectionFunctions\\EfficiencyCorrections;Inelastic\\Corrections";
   }
 
 private:
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/ElasticWindow.h b/Framework/Algorithms/inc/MantidAlgorithms/ElasticWindow.h
index e39755c66092c0bd131970d59f1b63cc5064ca50..fbe8726b3c96f77128c4537a196429d0cc7366cc 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/ElasticWindow.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/ElasticWindow.h
@@ -55,7 +55,7 @@ public:
   /// Algorithm's version
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Inelastic"; }
+  virtual const std::string category() const { return "Inelastic\\Indirect"; }
 
 private:
   /// Initialisation code
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/GetAllEi.h b/Framework/Algorithms/inc/MantidAlgorithms/GetAllEi.h
index 155d8fc2d45d2c6bfa0310962dcfe8cef81e6614..032a4e243a82751e6f67e0766b7dbac2645b0820 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/GetAllEi.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/GetAllEi.h
@@ -50,7 +50,7 @@ public:
   /// Algorithm's version for identification. @see Algorithm::version
   virtual int version() const { return 1; };
   /// Algorithm's category for identification. @see Algorithm::category
-  virtual const std::string category() const { return "Inelastic"; };
+  virtual const std::string category() const { return "Inelastic\\Ei"; };
   /// Cross-check properties with each other @see IAlgorithm::validateInputs
   virtual std::map<std::string, std::string> validateInputs();
 
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/GetEi.h b/Framework/Algorithms/inc/MantidAlgorithms/GetEi.h
index 338da8197165b521b4208513e317a9d5824a18d2..72d65602d6e8375174f44a7c38a8f7e0e119a305 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/GetEi.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/GetEi.h
@@ -64,7 +64,7 @@ public:
   virtual int version() const { return 1; }
   /// Algorithm's category for identification overriding a virtual method
   virtual const std::string category() const {
-    return "Inelastic";
+    return "Inelastic\\Ei";
   }
 
 private:
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/GetEi2.h b/Framework/Algorithms/inc/MantidAlgorithms/GetEi2.h
index 04cd146e7cf984fc094795db2ac7bb63c938d35f..a10e88a84a8710d1f6b8766f8ef961921ffb5353 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/GetEi2.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/GetEi2.h
@@ -69,7 +69,7 @@ public:
   /// Algorithm's version for identification overriding a virtual method
   virtual int version() const { return 2; }
   /// Algorithm's category for identification overriding a virtual method
-  virtual const std::string category() const { return "Inelastic"; }
+  virtual const std::string category() const { return "Inelastic\\Ei"; }
 
 private:
   /// Calculate Ei from the initial guess given
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/SofQW.h b/Framework/Algorithms/inc/MantidAlgorithms/SofQW.h
index c3b992b717f8f042fd10567bf0f15860d5ab61ac..fedd8db995e038b4f5d1e5f754847344c62fab7d 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/SofQW.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/SofQW.h
@@ -58,7 +58,7 @@ public:
   /// Algorithm's version
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Inelastic"; }
+  virtual const std::string category() const { return "Inelastic\\SofQW"; }
   /// Create the output workspace
   static API::MatrixWorkspace_sptr
   setUpOutputWorkspace(API::MatrixWorkspace_const_sptr inputWorkspace,
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/SofQWCentre.h b/Framework/Algorithms/inc/MantidAlgorithms/SofQWCentre.h
index edc3788489edc44fadc6c411ce37150758766570..2c58ba1eea516ba62260e78d0d83452cac27fef6 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/SofQWCentre.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/SofQWCentre.h
@@ -67,7 +67,7 @@ public:
   /// Algorithm's version
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Inelastic"; }
+  virtual const std::string category() const { return "Inelastic\\SofQW"; }
   /// Create the output workspace
   static API::MatrixWorkspace_sptr
   setUpOutputWorkspace(API::MatrixWorkspace_const_sptr inputWorkspace,
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/SofQWPolygon.h b/Framework/Algorithms/inc/MantidAlgorithms/SofQWPolygon.h
index d64338d96828e11982b536d697323ff977c13800..7a2e5a6096cec12f6d9a2f783cb75b581c37816f 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/SofQWPolygon.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/SofQWPolygon.h
@@ -72,7 +72,7 @@ public:
   /// Algorithm's version for identification
   virtual int version() const { return 1; }
   /// Algorithm's category for identification
-  virtual const std::string category() const { return "Inelastic"; }
+  virtual const std::string category() const { return "Inelastic\\SofQW"; }
 
 private:
   /// Initialize the algorithm
diff --git a/Framework/Algorithms/src/DetectorEfficiencyCorUser.cpp b/Framework/Algorithms/src/DetectorEfficiencyCorUser.cpp
index 88085ac6165e01bc82d870d1f087876049b6f9a2..35f01d9ab32b06457b07900e2006ccb368f49e53 100644
--- a/Framework/Algorithms/src/DetectorEfficiencyCorUser.cpp
+++ b/Framework/Algorithms/src/DetectorEfficiencyCorUser.cpp
@@ -38,7 +38,7 @@ int DetectorEfficiencyCorUser::version() const { return 1; }
 
 /// Algorithm's category for identification. @see Algorithm::category
 const std::string DetectorEfficiencyCorUser::category() const {
-  return "CorrectionFunctions\\EfficiencyCorrections;Inelastic";
+  return "CorrectionFunctions\\EfficiencyCorrections;Inelastic\\Corrections";
 }
 
 //----------------------------------------------------------------------------------------------
diff --git a/Framework/Algorithms/src/SofQWNormalisedPolygon.cpp b/Framework/Algorithms/src/SofQWNormalisedPolygon.cpp
index c48fcbc91855000f1ee1d893cf3fc60fe6ad978a..139c3356f855038c783a37f7ecc7554eff70fba0 100644
--- a/Framework/Algorithms/src/SofQWNormalisedPolygon.cpp
+++ b/Framework/Algorithms/src/SofQWNormalisedPolygon.cpp
@@ -48,7 +48,7 @@ int SofQWNormalisedPolygon::version() const { return 1; }
  * @return the category list for the Algorithm
  */
 const std::string SofQWNormalisedPolygon::category() const {
-  return "Inelastic";
+  return "Inelastic\\SofQW";
 }
 
 /**
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadDaveGrp.h b/Framework/DataHandling/inc/MantidDataHandling/LoadDaveGrp.h
index 047dde6139024b464f2fbe492ea9aeaff795fcbc..21e04b825361dba4b1eeb058d0c5a114169b6c32 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadDaveGrp.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadDaveGrp.h
@@ -59,7 +59,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\Text;Inelastic";
+    return "DataHandling\\Text;Inelastic\\DataHandling";
   }
   /// Returns a confidence value that this algorithm can load a file
   virtual int confidence(Kernel::FileDescriptor &descriptor) const;
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadNXSPE.h b/Framework/DataHandling/inc/MantidDataHandling/LoadNXSPE.h
index 5fb03b7c63c62cd9202d61d18843490f170b9f00..128a93ce59be578fc63ab43ae58bf02c42e66202 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadNXSPE.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadNXSPE.h
@@ -56,7 +56,7 @@ public:
   virtual int version() const { return 1; };
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\Nexus;DataHandling\\SPE;Inelastic";
+    return "DataHandling\\Nexus;DataHandling\\SPE;Inelastic\\DataHandling";
   }
 
   /// Returns a confidence value that this algorithm can load a file
diff --git a/Framework/DataHandling/inc/MantidDataHandling/LoadSPE.h b/Framework/DataHandling/inc/MantidDataHandling/LoadSPE.h
index e78cd4562b534d834d04797aa220a18bd11e66e4..b46031ae1eaf8373056eaa4b932f4785dde7d3b0 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/LoadSPE.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/LoadSPE.h
@@ -58,7 +58,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\SPE;Inelastic";
+    return "DataHandling\\SPE;Inelastic\\DataHandling";
   }
   /// Returns a confidence value that this algorithm can load a file
   virtual int confidence(Kernel::FileDescriptor &descriptor) const;
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveDaveGrp.h b/Framework/DataHandling/inc/MantidDataHandling/SaveDaveGrp.h
index e98f037e7503d98d0fa0981b33dbaed603314aae..1f2b3f768c79c28508e9898dbd0a05baade537c7 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveDaveGrp.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveDaveGrp.h
@@ -59,7 +59,7 @@ public:
   virtual int version() const { return 1; };
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\Text;Inelastic";
+    return "DataHandling\\Text;Inelastic\\DataHandling";
   }
   /// Algorithm's aliases
   virtual const std::string alias() const { return "SaveDASC"; }
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveNXSPE.h b/Framework/DataHandling/inc/MantidDataHandling/SaveNXSPE.h
index 1df805df1501cfcc3c9b8cd8e87c898720115f40..d31cb3deee2c612f0007623490447035514b9f80 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveNXSPE.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveNXSPE.h
@@ -49,7 +49,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\Nexus;DataHandling\\SPE;Inelastic";
+    return "DataHandling\\Nexus;DataHandling\\SPE;Inelastic\\DataHandling";
   }
 
 private:
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SavePAR.h b/Framework/DataHandling/inc/MantidDataHandling/SavePAR.h
index de68965d40c8a9f95d3446da72479d316e205b9e..b29923912e80e1474d9330b6917fe85833f075ee 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SavePAR.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SavePAR.h
@@ -74,7 +74,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\SPE;Inelastic";
+    return "DataHandling\\SPE;Inelastic\\DataHandling";
   }
   /** the method used in tests. It requested the ChildAlgorithm, which does the
    detectors
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SavePHX.h b/Framework/DataHandling/inc/MantidDataHandling/SavePHX.h
index cb07afa5026f6e1273db82a7b3146cefe6fa086b..5fda68e14f4f657ef6bf72b351655f227adfebb8 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SavePHX.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SavePHX.h
@@ -59,7 +59,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\SPE;Inelastic";
+    return "DataHandling\\SPE;Inelastic\\DataHandling";
   }
 
   /** the method used in tests. It requested the ChildAlgorithm, which does the
diff --git a/Framework/DataHandling/inc/MantidDataHandling/SaveSPE.h b/Framework/DataHandling/inc/MantidDataHandling/SaveSPE.h
index bf60f23d1837c1bdf6ecb70b965cfea020bad0ba..e8a38a65bcd0da421bac018192b2fdecf372cf9c 100644
--- a/Framework/DataHandling/inc/MantidDataHandling/SaveSPE.h
+++ b/Framework/DataHandling/inc/MantidDataHandling/SaveSPE.h
@@ -55,7 +55,7 @@ public:
   virtual int version() const { return (1); }
   /// Algorithm's category for identification
   virtual const std::string category() const {
-    return "DataHandling\\SPE;Inelastic";
+    return "DataHandling\\SPE;Inelastic\\DataHandling";
   }
 
   /// the mask flag (=-1e30) from the SPE specification
diff --git a/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp b/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp
index d9e2a957b1f7411b3848390a8cbe22415ea1609b..1df64204e212accdf459bc86594e5971c8fc26ff 100644
--- a/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp
+++ b/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp
@@ -56,7 +56,7 @@ int CalculateCoverageDGS::version() const { return 1; }
 
 /// Algorithm's category for identification. @see Algorithm::category
 const std::string CalculateCoverageDGS::category() const {
-  return "Inelastic;MDAlgorithms";
+  return "Inelastic\\Planning;MDAlgorithms";
 }
 
 /// Algorithm's summary for use in the GUI and help. @see Algorithm::summary
diff --git a/Framework/PythonInterface/plugins/algorithms/BASISReduction.py b/Framework/PythonInterface/plugins/algorithms/BASISReduction.py
index cd417d49f50dfe9455c9d0db337b78f167c9df90..0d2da2adc3b5674a248af100fffadc5fc730c064 100644
--- a/Framework/PythonInterface/plugins/algorithms/BASISReduction.py
+++ b/Framework/PythonInterface/plugins/algorithms/BASISReduction.py
@@ -36,7 +36,7 @@ class BASISReduction(PythonAlgorithm):
     _samSqwWs = None
 
     def category(self):
-        return "Inelastic"
+        return "Inelastic\\Reduction"
 
     def name(self):
         return "BASISReduction"
diff --git a/Framework/PythonInterface/plugins/algorithms/BASISReduction311.py b/Framework/PythonInterface/plugins/algorithms/BASISReduction311.py
index d2d89348b049d1e138f2c9eae1ff612a51e58b14..420cbbfc54777e1e532f1f2ac2d77f5d5859e5b3 100644
--- a/Framework/PythonInterface/plugins/algorithms/BASISReduction311.py
+++ b/Framework/PythonInterface/plugins/algorithms/BASISReduction311.py
@@ -38,7 +38,7 @@ class BASISReduction311(PythonAlgorithm):
     _samSqwWs = None
 
     def category(self):
-        return "Inelastic"
+        return "Inelastic\\Reduction"
 
     def name(self):
         return "BASISReduction311"
diff --git a/Framework/PythonInterface/plugins/algorithms/ConvertSnsRoiFileToMask.py b/Framework/PythonInterface/plugins/algorithms/ConvertSnsRoiFileToMask.py
index 1e5bb9bc0f5abd736d1240110e517df23a1647db..b7a80b5aa694829d0926b74e0c1c0c54ee1de8f2 100644
--- a/Framework/PythonInterface/plugins/algorithms/ConvertSnsRoiFileToMask.py
+++ b/Framework/PythonInterface/plugins/algorithms/ConvertSnsRoiFileToMask.py
@@ -26,7 +26,7 @@ class ConvertSnsRoiFileToMask(api.PythonAlgorithm):
         """
         Set the category for the algorithm.
         """
-        return "Inelastic"
+        return "Inelastic\\Utility"
 
     def name(self):
         """
diff --git a/Framework/PythonInterface/plugins/algorithms/DPDFreduction.py b/Framework/PythonInterface/plugins/algorithms/DPDFreduction.py
index 5f8163cedbafc51fc04c3b5badd64bf8b9090f1b..c6d940d8648d5a07bf81191a2e2cf8e8ed2dbc28 100644
--- a/Framework/PythonInterface/plugins/algorithms/DPDFreduction.py
+++ b/Framework/PythonInterface/plugins/algorithms/DPDFreduction.py
@@ -26,7 +26,7 @@ class DPDFreduction(PythonAlgorithm):
     _ebins = None
 
     def category(self):
-        return "Inelastic;Utility\\Development"
+        return "Inelastic\\Reduction;Utility\\Development"
 
     def name(self):
         return 'DPDFreduction'
diff --git a/Framework/PythonInterface/plugins/algorithms/DSFinterp.py b/Framework/PythonInterface/plugins/algorithms/DSFinterp.py
index b52f34614cbb14cf72527b2241679eddedeb6aa7..e7b80d10c4c82fcf5148a921cf3ded7496a6d342 100644
--- a/Framework/PythonInterface/plugins/algorithms/DSFinterp.py
+++ b/Framework/PythonInterface/plugins/algorithms/DSFinterp.py
@@ -9,7 +9,7 @@ class DSFinterp(PythonAlgorithm):
     channelgroup = None
 
     def category(self):
-        return "Transforms\\Smoothing;Utility"
+        return "Transforms\\Smoothing"
 
     def name(self):
         return 'DSFinterp'
diff --git a/Framework/PythonInterface/plugins/algorithms/GenerateGroupingSNSInelastic.py b/Framework/PythonInterface/plugins/algorithms/GenerateGroupingSNSInelastic.py
index e483f1dd83cce3d0fadd0f478e3887929fe7d2b1..d97c8c78ef99fb88df0479178240c6411dba99c3 100644
--- a/Framework/PythonInterface/plugins/algorithms/GenerateGroupingSNSInelastic.py
+++ b/Framework/PythonInterface/plugins/algorithms/GenerateGroupingSNSInelastic.py
@@ -13,7 +13,7 @@ class GenerateGroupingSNSInelastic(mantid.api.PythonAlgorithm):
     def category(self):
         """ Mantid required
         """
-        return "Inelastic;Transforms\\Grouping"
+        return "Inelastic\\Utility;Transforms\\Grouping"
 
     def name(self):
         """ Mantid required
diff --git a/Framework/PythonInterface/plugins/algorithms/GetEiMonDet.py b/Framework/PythonInterface/plugins/algorithms/GetEiMonDet.py
index 628f67085c331e9e7905e41566188ae3ce5dfa4a..72cf89ea2e5468ba94987f9b75640b2d94595512 100644
--- a/Framework/PythonInterface/plugins/algorithms/GetEiMonDet.py
+++ b/Framework/PythonInterface/plugins/algorithms/GetEiMonDet.py
@@ -11,7 +11,7 @@ class GetEiMonDet(PythonAlgorithm):
     def category(self):
         """ Return category
         """
-        return "Inelastic"
+        return "Inelastic\\Ei"
 
     def name(self):
         """ Return name
diff --git a/Framework/PythonInterface/plugins/algorithms/GetEiT0atSNS.py b/Framework/PythonInterface/plugins/algorithms/GetEiT0atSNS.py
index a1c794ec79e0f517d53609dbff4f342dffa8a8b5..ca51c4c09fb92c4ab9c88bd774b76f5db3129930 100644
--- a/Framework/PythonInterface/plugins/algorithms/GetEiT0atSNS.py
+++ b/Framework/PythonInterface/plugins/algorithms/GetEiT0atSNS.py
@@ -7,7 +7,7 @@ class GetEiT0atSNS(mantid.api.PythonAlgorithm):
     def category(self):
         """ Return category
         """
-        return "Inelastic"
+        return "Inelastic\\Ei"
 
     def name(self):
         """ Return name
diff --git a/Framework/PythonInterface/plugins/algorithms/LoadNMoldyn3Ascii.py b/Framework/PythonInterface/plugins/algorithms/LoadNMoldyn3Ascii.py
index 46bc88791231e96f83541dce6998628a9bd3f5fd..f7ad63e900f8acf2ae0027ef7fbe256e3aeea998 100644
--- a/Framework/PythonInterface/plugins/algorithms/LoadNMoldyn3Ascii.py
+++ b/Framework/PythonInterface/plugins/algorithms/LoadNMoldyn3Ascii.py
@@ -87,7 +87,7 @@ class LoadNMoldyn3Ascii(PythonAlgorithm):
 #-------------------------------------------------------------------------------
 
     def category(self):
-        return 'Inelastic;Simulation'
+        return 'Inelastic\\DataHandling;Simulation'
 
 #-------------------------------------------------------------------------------
 
diff --git a/Framework/PythonInterface/plugins/algorithms/LoadNMoldyn4Ascii.py b/Framework/PythonInterface/plugins/algorithms/LoadNMoldyn4Ascii.py
index cc55193d995d5224aa546e2ca0243ceda5c0cfc8..80fed4719c8ed80ff2e12879c5b1a33ef5b5ce79 100644
--- a/Framework/PythonInterface/plugins/algorithms/LoadNMoldyn4Ascii.py
+++ b/Framework/PythonInterface/plugins/algorithms/LoadNMoldyn4Ascii.py
@@ -31,7 +31,7 @@ class LoadNMoldyn4Ascii(PythonAlgorithm):
 #------------------------------------------------------------------------------
 
     def category(self):
-        return 'Inelastic;Simulation'
+        return 'Inelastic\\DataHandling;Simulation'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/MaskBTP.py b/Framework/PythonInterface/plugins/algorithms/MaskBTP.py
index 6741f74f4bf06943ee56ba1793062abb759e12db..f6e70c9b371290122797cd9eeb8f50b17c0a7be1 100644
--- a/Framework/PythonInterface/plugins/algorithms/MaskBTP.py
+++ b/Framework/PythonInterface/plugins/algorithms/MaskBTP.py
@@ -16,7 +16,7 @@ class MaskBTP(mantid.api.PythonAlgorithm):
     def category(self):
         """ Mantid required
         """
-        return "Transforms\\Masking;Inelastic"
+        return "Transforms\\Masking;Inelastic\\Utility"
 
     def name(self):
         """ Mantid required
diff --git a/Framework/PythonInterface/plugins/algorithms/SuggestTibCNCS.py b/Framework/PythonInterface/plugins/algorithms/SuggestTibCNCS.py
index 12b3104fae3cb2db1aac5e81e0a149ca420bdf4b..1ed4b3ac50fcea2fb85874fa49fff79b30c79492 100644
--- a/Framework/PythonInterface/plugins/algorithms/SuggestTibCNCS.py
+++ b/Framework/PythonInterface/plugins/algorithms/SuggestTibCNCS.py
@@ -25,7 +25,7 @@ class SuggestTibCNCS(PythonAlgorithm):
     def category(self):
         """ Return category
         """
-        return "Utility;Inelastic"
+        return "Inelastic\\Utility"
 
     def name(self):
         """ Return name
diff --git a/Framework/PythonInterface/plugins/algorithms/SuggestTibHYSPEC.py b/Framework/PythonInterface/plugins/algorithms/SuggestTibHYSPEC.py
index c770ff5c227a21a3dabbc5293c38b1494fd9ddbb..6d315608e74f9c7cd05d65890dd38db46d540b12 100644
--- a/Framework/PythonInterface/plugins/algorithms/SuggestTibHYSPEC.py
+++ b/Framework/PythonInterface/plugins/algorithms/SuggestTibHYSPEC.py
@@ -10,7 +10,7 @@ class SuggestTibHYSPEC(PythonAlgorithm):
     def category(self):
         """ Return category
         """
-        return "Utility;Inelastic"
+        return "Inelastic\\Utility"
 
     def name(self):
         """ Return name
diff --git a/Framework/PythonInterface/plugins/algorithms/UpdatePeakParameterTableValue.py b/Framework/PythonInterface/plugins/algorithms/UpdatePeakParameterTableValue.py
index 22ded06b41f5aa309eb20ce4035f9f2e187641f9..8642675f3f802272c562061c1b409909d4a37bb6 100644
--- a/Framework/PythonInterface/plugins/algorithms/UpdatePeakParameterTableValue.py
+++ b/Framework/PythonInterface/plugins/algorithms/UpdatePeakParameterTableValue.py
@@ -14,7 +14,7 @@ class UpdatePeakParameterTableValue(mantid.api.PythonAlgorithm):
     def category(self):
         """ Mantid required
         """
-        return "Inelastic;Transforms\\Grouping"
+        return "Inelastic\\Utility;Transforms\\Grouping"
 
     def name(self):
         """ Mantid require
diff --git a/Framework/PythonInterface/plugins/algorithms/VesuvioResolution.py b/Framework/PythonInterface/plugins/algorithms/VesuvioResolution.py
index 5d5090dd2dd5748c590a778aa76739921d745dd1..f62153fbb38ef1893c5844366b503f2954821095 100644
--- a/Framework/PythonInterface/plugins/algorithms/VesuvioResolution.py
+++ b/Framework/PythonInterface/plugins/algorithms/VesuvioResolution.py
@@ -11,7 +11,7 @@ class VesuvioResolution(PythonAlgorithm):
     _mass = None
 
     def category(self):
-        return 'Inelastic'
+        return 'Inelastic\\Utility'
 
     def summary(self):
         return 'Calculates the resolution function for VESUVIO'
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ElasticWindowMultiple.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ElasticWindowMultiple.py
index d5fe9980bc0cd09def4d0b7c9bc603d151816246..bb4f3648854caae82c3bc0ee5740726c90c55d27 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ElasticWindowMultiple.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ElasticWindowMultiple.py
@@ -39,7 +39,7 @@ class ElasticWindowMultiple(DataProcessorAlgorithm):
 
 
     def category(self):
-        return 'Workflow\\Inelastic;Inelastic'
+        return 'Workflow\\Inelastic;Inelastic\\Indirect'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ILLIN16BCalibration.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ILLIN16BCalibration.py
index 24e25ec7925d2f0da5079a64f7cc7db55e2a332e..5721324cc0906bd23d34d8dd71b3609018db257e 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ILLIN16BCalibration.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ILLIN16BCalibration.py
@@ -16,7 +16,7 @@ class ILLIN16BCalibration(DataProcessorAlgorithm):
 
 
     def category(self):
-        return 'Workflow\\Inelastic;Inelastic'
+        return 'Workflow\\Inelastic;Inelastic\\Calibration'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectEnergyTransfer.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectEnergyTransfer.py
index 5e1a53ce14026dbbcd70624054fe939488ed3dfd..c02d2ac4c0c66abdbee35448c04622e841f59636 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectEnergyTransfer.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/ISISIndirectEnergyTransfer.py
@@ -41,7 +41,7 @@ class ISISIndirectEnergyTransfer(DataProcessorAlgorithm):
 
 
     def category(self):
-        return 'Workflow\\Inelastic;Inelastic'
+        return 'Workflow\\Inelastic;Inelastic\\Indirect'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectCalibration.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectCalibration.py
index 8f3f96bcccc5fe989e36f0866fd9ae29dd464bb5..b988df3c04d0178342b554261e35a5b6d5bab3e3 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectCalibration.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectCalibration.py
@@ -18,7 +18,7 @@ class IndirectCalibration(DataProcessorAlgorithm):
 
 
     def category(self):
-        return 'Workflow\\Inelastic;Inelastic'
+        return 'Workflow\\Inelastic;Inelastic\\Calibration'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectILLReduction.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectILLReduction.py
index bc43563f1cea9a9a42bb2e9d7d2132d715d229ed..c16e587ed7884e8809648f9368650333c92634d6 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectILLReduction.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectILLReduction.py
@@ -27,7 +27,7 @@ class IndirectILLReduction(DataProcessorAlgorithm):
     _calibration_workspace = None
 
     def category(self):
-        return "Workflow\\MIDAS;Inelastic"
+        return "Workflow\\MIDAS;Inelastic\\Reduction"
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectResolution.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectResolution.py
index ce4e0f42b4dbb97db0ccf96218931b2d2c55fed7..0c75bb15d5dcb9a89c5d858aea6e18b5ab431af3 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectResolution.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectResolution.py
@@ -19,7 +19,7 @@ class IndirectResolution(DataProcessorAlgorithm):
 
 
     def category(self):
-        return 'Workflow\\Inelastic;Inelastic'
+        return 'Workflow\\Inelastic;Inelastic\\Indirect'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectTransmissionMonitor.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectTransmissionMonitor.py
index c1f3656f3be3d1040df4e730bbc184d8817fbca9..bb7fd64e69cca23170f40e2d11f39c78de04f315 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectTransmissionMonitor.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/IndirectTransmissionMonitor.py
@@ -14,7 +14,7 @@ class IndirectTransmissionMonitor(PythonAlgorithm):
 
 
     def category(self):
-        return "Workflow\\Inelastic;Inelastic"
+        return "Workflow\\Inelastic;Inelastic\\Indirect"
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/MolDyn.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/MolDyn.py
index 089efcff1a3a7494eea07b3336ea801d8514c635..b6b07a5b84b8dba1d510413678ffe79f3e7a6e1f 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/MolDyn.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/MolDyn.py
@@ -12,7 +12,7 @@ class MolDyn(PythonAlgorithm):
 
 
     def category(self):
-        return 'Workflow\\Inelastic;Inelastic;Simulation'
+        return 'Workflow\\Inelastic;Inelastic\\DataHandling;Simulation'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TOSCABankCorrection.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TOSCABankCorrection.py
index f74872701c9dcd02357d5d29a407f02ce3ab04be..fff35fbf4419f769c19441e2b6eed9cda95ccfc4 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TOSCABankCorrection.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TOSCABankCorrection.py
@@ -15,7 +15,7 @@ class TOSCABankCorrection(DataProcessorAlgorithm):
 
 
     def category(self):
-        return 'Inelastic;CorrectionFunctions\\SpecialCorrections'
+        return 'Inelastic\\Corrections;CorrectionFunctions\\SpecialCorrections'
 
 
     def summary(self):
diff --git a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TimeSlice.py b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TimeSlice.py
index cf244b8d2b05d656740be00d48619db1d9541eb0..8b29268a248935f7d752866b6e440f7c0d5bd902 100644
--- a/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TimeSlice.py
+++ b/Framework/PythonInterface/plugins/algorithms/WorkflowAlgorithms/TimeSlice.py
@@ -57,7 +57,7 @@ class TimeSlice(PythonAlgorithm):
     _out_ws_group = None
 
     def category(self):
-        return 'Inelastic'
+        return 'Inelastic\\Utility'
 
 
     def summary(self):