diff --git a/phasecalculator/io/phasetransferxmlcreator.py b/phasecalculator/io/phasetransferxmlcreator.py
index dce1d740356b26ed458523196c904e02427f6b29..affa4fbbba9c2df24d3a34b215b0000c0b799f4c 100755
--- a/phasecalculator/io/phasetransferxmlcreator.py
+++ b/phasecalculator/io/phasetransferxmlcreator.py
@@ -30,40 +30,6 @@ logging.basicConfig()
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.WARN)
 
-def create_phase_and_solvent_files(mole_fraction_dict_list, temperature_info, solvent_filename, phase_filename, **kwargs):
-    """Create phase XML and solvent XML files for given composiiton and
-    temperature information.
-
-    Parameters
-    ----------
-    mole_fraction_dict_list : list of dicts
-        List of dictionaries of name: mole fraction pairs per phase/solvent to
-        create.
-    temperature_info : list of dicts
-        Temperature information with dictionaries containing value and unit.
-    solvent_filename : str
-        Solvent XML output filename.
-    phase_filename : str
-        Phase XML output filename.
-    solvent_filename : str, optional
-        Filename for file containing solvent information. Defaults to file in
-        phasexmlcreator module.
-    ssip_filename_list : list of str, optional
-        Filenames for SSIP XML files. Defaults to SSIP files in pureinformation
-        module.
-    name_inchikey_map : dict, optional
-        inchikey: name pairs. Defaults to names of solvents in pureinformation
-        module.
-
-    Returns
-    -------
-    None.
-
-    """
-    solvent_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs)
-    write_solvent_file(solvent_info_list, solvent_filename)
-    write_phase_file(solvent_info_list, temperature_info, phase_filename)
-
 def create_solvent_file(mole_fraction_dict_list, solvent_filename, **kwargs):
     """Create solvent XML file for given compositions.
 
@@ -92,7 +58,7 @@ def create_solvent_file(mole_fraction_dict_list, solvent_filename, **kwargs):
     solvent_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs)
     write_solvent_file(solvent_info_list, solvent_filename)
 
-def create_phase_file(mole_fraction_dict_list, temperature_info, phase_filename, **kwargs):
+def create_phase_file(mole_fraction_dict_list_by_temp, phase_filename, **kwargs):
     """Create phase XML file for given compositions and temperatures.
 
     Parameters
@@ -119,8 +85,11 @@ def create_phase_file(mole_fraction_dict_list, temperature_info, phase_filename,
     None.
 
     """
-    phase_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs)
-    write_phase_file(phase_info_list, temperature_info, phase_filename)
+    phase_info_by_temp = []
+    for temperature_info, mole_fraction_dict_list in mole_fraction_dict_list_by_temp:
+        phase_info_list = generate_solv_info_list(mole_fraction_dict_list, **kwargs)
+        phase_info_by_temp.append([temperature_info, phase_info_list])
+    write_phase_file(phase_info_by_temp, phase_filename)
 
 def write_solvent_file(solvent_info_list, solvent_filename):
     """Write solvent XML file for given compositions.
@@ -141,16 +110,17 @@ def write_solvent_file(solvent_info_list, solvent_filename):
     solvmake.write_solvent_information_to_file(solvent_info_list, solvent_filename)
 
 
-def write_phase_file(phase_info_list, temperature_info, phase_filename):
+def write_phase_file(phase_info_list_by_temp, phase_filename):
     """Write phase XML file for given compositions and temperatures.
 
     Parameters
     ----------
-    phase_info_list : list of dicts
-        List of dictionaries of information to create XML for given phase
-        compositions.
-    temperature_info : list of dicts
-        Temperature information with dictionaries containing value and unit.
+    phase_info_list_by_temp : list of lists
+        List of lists. Each element of top level list contains a temperature_info
+        dictionary and a list of dictionaries of phase composition information.
+        Temperature information dictionary contains temperature value and unit.
+        This is to create XML for given phase compositions at the accompanying
+        temperature.
     phase_filename : str
         Output filename.
 
@@ -159,7 +129,7 @@ def write_phase_file(phase_info_list, temperature_info, phase_filename):
     None.
 
     """
-    phasemake.write_phase_information_to_file(phase_info_list, temperature_info, phase_filename)
+    phasemake.write_phase_information_to_file_diff_temp(phase_info_list_by_temp, phase_filename)
 
 def generate_solv_info_list(mole_fraction_dict_list, **kwargs):
     """Generate solvent info from read in SSIP files and solvent information.
diff --git a/phasecalculator/test/iotest/phasetransferxmlcreatortest.py b/phasecalculator/test/iotest/phasetransferxmlcreatortest.py
index 23660ad4e62e589e1a59cd7673dcdd8c155dc4f1..e301282614fbcb9905375b59c61613be1ac762e9 100755
--- a/phasecalculator/test/iotest/phasetransferxmlcreatortest.py
+++ b/phasecalculator/test/iotest/phasetransferxmlcreatortest.py
@@ -171,27 +171,8 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
             os.remove(self.phase_filename)
         if os.path.isfile(self.solvent_filename):
             os.remove(self.solvent_filename)
-    def test_create_phase_and_solvent_files(self):
-        """Test
-
-        Returns
-        -------
-        None.
-
-        """
-        phasexmlmaker.create_phase_and_solvent_files(self.mole_fraction_dict_list, self.temperature_info, self.solvent_filename, self.phase_filename)
-        with open(self.phase_filename, "r") as act_file:
-            actual_contents = act_file.read()
-            with open(self.expected_phase_file, "r") as exp_file:
-                expected_contents = exp_file.read()
-                self.assertMultiLineEqual(expected_contents, actual_contents)
-        with open(self.solvent_filename, "r") as act_file:
-            actual_contents = act_file.read()
-            with open(self.expected_solvent_file, "r") as exp_file:
-                expected_contents = exp_file.read()
-                self.assertMultiLineEqual(expected_contents, actual_contents)
     def test_create_solvent_file(self):
-        """Test 
+        """Test expected file produced.
 
         Returns
         -------
@@ -205,21 +186,21 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
     def test_create_phase_file(self):
-        """Test 
+        """Test expected file produced.
 
         Returns
         -------
         None.
 
         """
-        phasexmlmaker.create_phase_file(self.mole_fraction_dict_list, self.temperature_info, self.phase_filename)
+        phasexmlmaker.create_phase_file([[self.temperature_info, self.mole_fraction_dict_list]], self.phase_filename)
         with open(self.phase_filename, "r") as act_file:
             actual_contents = act_file.read()
             with open(self.expected_phase_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
     def test_write_solvent_file(self):
-        """Test 
+        """Test expected file produced.
 
         Returns
         -------
@@ -233,21 +214,21 @@ class PhasetransferXMLCreatorTestCase(unittest.TestCase):
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
     def test_write_phase_file(self):
-        """Test 
+        """Test expected file produced.
 
         Returns
         -------
         None.
 
         """
-        phasexmlmaker.write_phase_file(self.solvent_info_list, self.temperature_info, self.phase_filename)
+        phasexmlmaker.write_phase_file([[self.temperature_info, self.solvent_info_list]], self.phase_filename)
         with open(self.phase_filename, "r") as act_file:
             actual_contents = act_file.read()
             with open(self.expected_phase_file, "r") as exp_file:
                 expected_contents = exp_file.read()
                 self.assertMultiLineEqual(expected_contents, actual_contents)
     def test_generate_solv_info_list(self):
-        """Test 
+        """Test expected list produced.
 
         Returns
         -------