diff --git a/morph.cabal b/morph.cabal
--- a/morph.cabal
+++ b/morph.cabal
@@ -2,7 +2,7 @@
 --  see http://haskell.org/cabal/users-guide/
 
 name:                  morph
-version:               0.1.0.0
+version:               0.1.0.1
 synopsis:              A simple database migrator for PostgreSQL
 description:           Morph is a tool to migrate your PostgreSQL databases
                        safely which supports rollbacks.
@@ -16,7 +16,7 @@
 source-repository head
   type:                darcs
   location:            http://darcs.redspline.com/morph
-  tag:                 0.1.0.0
+  tag:                 0.1.0.1
 
 library
   hs-source-dirs:      src
diff --git a/src/Morph/Migrator.hs b/src/Morph/Migrator.hs
--- a/src/Morph/Migrator.hs
+++ b/src/Morph/Migrator.hs
@@ -9,8 +9,8 @@
 
 import Control.Monad
 
+import Data.Function
 import Data.List
-import Data.Maybe
 import Data.Monoid
 import Data.String
 
@@ -19,7 +19,6 @@
 import System.IO
 
 import Database.PostgreSQL.Simple
-import Database.PostgreSQL.Simple.FromRow
 
 -- | A migration can either be read from file and contain both sides or from the
 -- database and contain only the down side.
@@ -112,10 +111,11 @@
       toRollbackIdentifiers = doneIdentifiers \\ goalIdentifiers
       toDoIdentifiers       = goalIdentifiers \\ doneIdentifiers
 
-      toRollback = filter ((`elem` toRollbackIdentifiers) . migrationIdentifier)
-                          doneMigrations
-      toDo       = filter ((`elem` toDoIdentifiers)       . migrationIdentifier)
-                          goalMigrations
+      toRollback = sortBy (flip (compare `on` migrationIdentifier)) $
+        filter ((`elem` toRollbackIdentifiers) . migrationIdentifier)
+               doneMigrations
+      toDo = filter ((`elem` toDoIdentifiers) . migrationIdentifier)
+                    goalMigrations
 
   withTransaction conn $ do
     forM_ toRollback $ rollbackMigration conn
