diff --git a/HsImport/Args.hs b/HsImport/Args.hs
--- a/HsImport/Args.hs
+++ b/HsImport/Args.hs
@@ -29,5 +29,5 @@
    &= helpArg [explicit, name "help", name "h"]
    &= versionArg [explicit, name "version", name "v", summary versionInfo]
    where
-      versionInfo = "hsimport version 0.1"
+      versionInfo = "hsimport version 0.1.1"
       summaryInfo = ""
diff --git a/HsImport/Main.hs b/HsImport/Main.hs
--- a/HsImport/Main.hs
+++ b/HsImport/Main.hs
@@ -16,31 +16,38 @@
 hsImport :: ImportSpec -> IO ()
 hsImport spec =
    case importChange (spec ^. moduleToImport) (spec ^. symbolToImport) (spec ^. parsedSrcFile) of
-        ReplaceImport importDecl -> do
-           let numDrops = HS.srcLine . HS.importLoc $ importDecl
-               numTakes = max 0 (numDrops - 1)
-
-           modifyImports importDecl (spec ^. sourceFile) (outputFile spec) numTakes numDrops
+        ReplaceImport importDecl ->
+           modifyLines $ \lines_ ->
+              let importLine = HS.prettyPrint importDecl
+                  numDrops   = HS.srcLine . HS.importLoc $ importDecl
+                  numTakes   = max 0 (numDrops - 1)
+                  in take numTakes lines_ ++ [importLine] ++ drop numDrops lines_
 
-        AddImport importDecl -> do
-           let numTakes = HS.srcLine . HS.importLoc $ importDecl
-               numDrops = numTakes
+        AddImport importDecl ->
+           modifyLines $ \lines_ ->
+              let importLine = HS.prettyPrint importDecl
+                  numTakes   = HS.srcLine . HS.importLoc $ importDecl
+                  numDrops   = numTakes
+                  in take numTakes lines_ ++ [importLine] ++ drop numDrops lines_
 
-           modifyImports importDecl (spec ^. sourceFile) (outputFile spec) numTakes numDrops
+        AddImportAtEnd importDecl ->
+           modifyLines $ \lines_ ->
+              let importLine = HS.prettyPrint importDecl
+                  in lines_ ++ [importLine]
 
         NoImportChange
            | Just saveTo <- spec ^. saveToFile -> copyFile (spec ^. sourceFile) saveTo
            | otherwise                         -> return ()
    where
-      modifyImports importDecl inputFile outputFile numTakes numDrops = do
-         file <- TIO.readFile inputFile
-         let importLine = HS.prettyPrint importDecl
-             lines_     = lines . T.unpack $ file
-             lines_'    = take numTakes lines_ ++ [importLine] ++ drop numDrops lines_
-             file'      = T.pack . unlines $ lines_'
+      modifyLines f = do
+         file <- TIO.readFile $ spec ^. sourceFile
+         let lines_  = lines . T.unpack $ file
+             lines_' = f lines_
+             file'   = T.pack . unlines $ lines_'
 
-         TIO.writeFile outputFile file'
+         TIO.writeFile (outputFile spec) file'
 
-      outputFile spec
-         | Just file <- spec ^. saveToFile = file
-         | otherwise                       = spec ^. sourceFile
+         where
+            outputFile spec
+               | Just file <- spec ^. saveToFile = file
+               | otherwise                       = spec ^. sourceFile
diff --git a/hsimport.cabal b/hsimport.cabal
--- a/hsimport.cabal
+++ b/hsimport.cabal
@@ -1,5 +1,5 @@
 Name:          hsimport
-Version:       0.1
+Version:       0.1.1
 License:       BSD3
 License-file:  LICENSE
 Author:        Daniel Trstenjak
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -14,7 +14,8 @@
 
 moduleTests :: TestTree
 moduleTests = testGroup "Module Tests"
-   [ hsImportTest "ModuleTest1" "Foo.Bar" ""
+   [ hsImportTest "ModuleTest0" "Foo.Bar" "" 
+   , hsImportTest "ModuleTest1" "Foo.Bar" ""
    , hsImportTest "ModuleTest2" "Foo.Bar.Blub" ""
    , hsImportTest "ModuleTest3" "Control.Monad" ""
    , hsImportTest "ModuleTest4" "Ugah.Argh2" ""
@@ -23,12 +24,22 @@
    , hsImportTest "ModuleTest7" "Control.Monad" ""
    , hsImportTest "ModuleTest8" "Control.Monad" ""
    , hsImportTest "ModuleTest9" "Control.Monad" ""
+   , hsImportTest "ModuleTest10" "Control.Monad" ""
+   , hsImportTest "ModuleTest11" "Control.Monad" ""
+   , hsImportTest "ModuleTest12" "Control.Monad" ""
+   , hsImportTest "ModuleTest13" "Control.Monad" ""
+   , hsImportTest "ModuleTest14" "Control.Monad" ""
+   , hsImportTest "ModuleTest15" "Control.Monad" ""
+   , hsImportTest "ModuleTest16" "Control.Monad" ""
+   , hsImportTest "ModuleTest17" "Control.Monad" ""
+   , hsImportTest "ModuleTest18" "Control.Monad" ""
    ]
 
 
 symbolTests :: TestTree
 symbolTests = testGroup "Symbol Tests"
-   [ hsImportTest "SymbolTest1" "Foo.Bar" "foo"
+   [ hsImportTest "SymbolTest0" "Foo.Bar" "foo"
+   , hsImportTest "SymbolTest1" "Foo.Bar" "foo"
    , hsImportTest "SymbolTest2" "Foo.Bar.Blub" "foo"
    , hsImportTest "SymbolTest3" "Control.Monad" "when"
    , hsImportTest "SymbolTest4" "Ugah.Argh2" "argh"
