diff --git a/server/djrandom/model/markov.py b/server/djrandom/model/markov.py
index baaeb33dd491e492ed7d25bd47601741971aefcf..ac2f7da58ac770993fdb9dee8309e16d435653bf 100644
--- a/server/djrandom/model/markov.py
+++ b/server/djrandom/model/markov.py
@@ -79,6 +79,17 @@ class MarkovModel(object):
             if off > r:
                 return self._i2hash[value]
 
+    def generate_sequence(self, prev, n, count):
+        if len(prev) < n:
+            prev = ([None] * (n - len(prev))) + prev
+        out = []
+        for i in xrange(count):
+            song = self.suggest(prev)
+            prev.pop(0)
+            prev.append(song)
+            out.append(song)
+        return out
+
 
 def main():
     parser = optparse.OptionParser()
diff --git a/server/djrandom/model/mp3.py b/server/djrandom/model/mp3.py
index 91f280dd5fb5e2c963f28d05a2cf5827947cc205..0e570ab3bbe4369a7ca649c5192de94f6962c738 100644
--- a/server/djrandom/model/mp3.py
+++ b/server/djrandom/model/mp3.py
@@ -58,7 +58,7 @@ class PlayLog(Base):
             if plog.prev:
                 hashes = plog.prev.split(',')[:n]
                 if len(hashes) < n:
-                    hashes.extend([None] * (n - len(hashes)))
+                    hashes = ([None] * (n - len(hashes))) + hashes
             else:
                 hashes = [None] * n
             yield (plog.sha1, hashes)