Substitute a string with itself! Substitute a string with itself

Your goal is to substitute a string with itself by replacing each character in the original string with the one before it, starting with the first character and wrapping around. Here are some examples to show what I mean:

1st example:

Input: program
Output: apgopra

How:
Program -&gt; mrogram (replace p by m in program)
-&gt; mpogpam (replace r by p in mrogram)
-&gt; mprgpam (replace o by r in mpogpam)
-&gt; mpropam (replace g by o in mprgpam)
-&gt; mpgopam (replace r by g in mpropam)
-&gt; mpgoprm (replace a by r in mpgopam)
-&gt; apgopra (replace m by a in mpgoprm)


2nd example: 

Input: robot
Output: orbro

How:
Robot -&gt; tobot (replace r by t in robot)
-&gt; trbrt (replace o by r in tobot)
-&gt; trort (replace b by o in trbrt)
-&gt; trbrt (replace o by b in trort)
-&gt; orbro (replace t by o in trbrt)


3rd example:

Input: x
Output: x

How:
x -&gt; x (replace x by x in x)


4th example:

Input: xy
Output: xx

How:
xy -&gt; yy (replace x by y in xy)
-&gt; xx (replace y by x in yy)


Sidenotes:


The string x will only contain lowercase alphanumeric characters and spaces
This is code-golf so shortest code in bytes wins!
CJam, 11 bytes

q__1m&gt;.{er}


Test it here.

Explanation

q__    e# Read input and make two copies.
1m&gt;    e# Rotate the second copy one character to the right.
.{er}  e# For each pair of characters from the second and third string,
       e# replace occurrences of the first with the second.