diff --git a/ParaViewCore/ServerManager/SMApplication/Resources/filters.xml b/ParaViewCore/ServerManager/SMApplication/Resources/filters.xml
index 4d623ea..a0140d2 100644
--- a/ParaViewCore/ServerManager/SMApplication/Resources/filters.xml
+++ b/ParaViewCore/ServerManager/SMApplication/Resources/filters.xml
@@ -7553,6 +7553,141 @@ found and the point will be rejected.</Documentation>
       </IntVectorProperty>
     </SourceProxy>
     <!-- ==================================================================== -->
+
+    <!-- Legacy filter to handle temporal particle data. We should consider
+      writing a generic "sweep" filter that handles temporal particles, lines and surfaces
+     - Leo 12/30/2012  -->
+
+    <SourceProxy name="ParticlePathLines"
+	      class="vtkTemporalPathLineFilter"
+	      label="Temporal Particles To Pathlines">
+      <Documentation
+	 long_help="Creates polylines representing pathlines of animating particles"
+	 short_help="Particle Pathlines">
+	Particle Pathlines takes any dataset as input, it extracts the
+	point locations of all cells over time to build up a polyline
+	trail.  The point number (index) is used as the 'key' if the points
+	are randomly changing their respective order in the points list,
+	then you should specify a scalar that represents the unique
+	ID. This is intended to handle the output of a filter such as the
+	TemporalStreamTracer.
+      </Documentation>
+
+      <OutputPort name="Pathlines" index="0" />
+      <OutputPort name="Particles" index="1" />
+
+      <InputProperty
+	 name="Input"
+	 command="SetInputConnection">
+	<ProxyGroupDomain name="groups">
+	  <Group name="sources"/>
+	  <Group name="filters"/>
+	</ProxyGroupDomain>
+	<DataTypeDomain name="input_type">
+	  <DataType value="vtkPointSet"/>
+	</DataTypeDomain>
+	<InputArrayDomain name="input_array" attribute_type="point"
+			  optional="1"/>
+	<Documentation>
+	  The input cells to create pathlines for.
+	</Documentation>
+      </InputProperty>
+
+      <InputProperty
+	 name="Selection"
+	 command="SetSelectionConnection">
+	<ProxyGroupDomain name="groups">
+	  <Group name="sources"/>
+	  <Group name="filters"/>
+	</ProxyGroupDomain>
+	<DataTypeDomain name="input_type">
+	  <DataType value="vtkDataSet"/>
+	</DataTypeDomain>
+	<Hints>
+	  <Optional />
+	</Hints>
+	<Documentation>
+	  Set a second input, which is a selection. Particles with the same
+	  Id in the selection as the primary input will be chosen for
+	  pathlines Note that you must have the same IdChannelArray in the
+	  selection as the input
+	</Documentation>
+      </InputProperty>
+
+      <IntVectorProperty
+	  name="MaskPoints"
+	  command="SetMaskPoints"
+	  number_of_elements="1"
+	  default_values="100" >
+	<Documentation>
+	  Set the number of particles to track as a ratio of the input.
+	  Example: setting MaskPoints to 10 will track every 10th point.
+	</Documentation>
+      </IntVectorProperty>
+
+      <IntVectorProperty
+	  name="MaxTrackLength"
+	  command="SetMaxTrackLength"
+	  number_of_elements="1"
+	  default_values="25" >
+	<Documentation>
+	  If the Particles being traced animate for a long time, the trails
+	  or traces will become long and stringy. Setting the
+	  MaxTraceTimeLength will limit how much of the trace is
+	  displayed. Tracks longer then the Max will disappear and the
+	  trace will apppear like a snake of fixed length which progresses
+	  as the particle moves.  This length is given with respect to
+	  timesteps.
+	</Documentation>
+      </IntVectorProperty>
+
+      <DoubleVectorProperty
+	 name="MaxStepDistance"
+	 command="SetMaxStepDistance"
+	 number_of_elements="3"
+	 animateable="1"
+	 default_values="1.0 1.0 1.0" >
+	<DoubleRangeDomain name="range"/>
+	<Documentation>
+	  If a particle disappears from one end of a simulation and
+	  reappears on the other side, the track left will be
+	  unrepresentative.  Set a MaxStepDistance{x,y,z} which acts as a
+	  threshold above which if a step occurs larger than the value (for
+	  the dimension), the track will be dropped and restarted after the
+	  step. (ie the part before the wrap around will be dropped and the
+	  newer part kept).
+	</Documentation>
+      </DoubleVectorProperty>
+
+      <StringVectorProperty
+	  name="IdChannelArray"
+	  command="SetIdChannelArray"
+	  number_of_elements="1"
+	  default_values="Global or Local IDs"
+	  animateable="0">
+	  <ArrayListDomain
+	    name="array_list" attribute_type="Scalars"
+	    none_string="Global or Local IDs">
+	    <RequiredProperties>
+	      <Property name="Input" function="Input"/>
+	    </RequiredProperties>
+	  </ArrayListDomain>
+	<Documentation>
+	  Specify the name of a scalar array which will be used to fetch
+	  the index of each point. This is necessary only if the particles
+	  change position (Id order) on each time step. The Id can be used
+	  to identify particles at each step and hence track them properly.
+	  If this array is set to "Global or Local IDs", the global point
+	  ids are used if they exist or the point index is otherwise.
+	</Documentation>
+      </StringVectorProperty>
+
+   </SourceProxy>
+
+   <!-- End TemporalPathLineFilter -->
+
+   <!-- ==================================================================== -->
+
     <SourceProxy class="vtkStructuredGridOutlineFilter"
                  label="Outline Curvilinear DataSet"
                  name="StructuredGridOutlineFilter">
