diff --git a/ltk.cabal b/ltk.cabal
--- a/ltk.cabal
+++ b/ltk.cabal
@@ -1,5 +1,5 @@
 name: ltk
-version: 0.13.1.0
+version: 0.13.2.0
 cabal-version: >= 1.8
 build-type: Simple
 license: GPL
@@ -14,6 +14,10 @@
 category: GUI
 author: Juergen "jutaro" Nicklisch-Franken
 tested-with: GHC ==6.10 || ==6.12 || ==7.0
+
+source-repository head
+  type:     git
+  location: https://github.com/leksah/ltk
 
 Flag gtk3
     description: Use Gtk3
diff --git a/src/Graphics/UI/Editor/Composite.hs b/src/Graphics/UI/Editor/Composite.hs
--- a/src/Graphics/UI/Editor/Composite.hs
+++ b/src/Graphics/UI/Editor/Composite.hs
@@ -711,24 +711,18 @@
 dependencyEditor :: [PackageIdentifier] -> Editor Dependency
 dependencyEditor packages para noti = do
     (wid,inj,ext) <- pairEditor
-        ((eitherOrEditor (comboSelectionEditor ((sort . nub) (map (display . pkgName) packages)) id
+        (comboEntryEditor ((sort . nub) (map (display . pkgName) packages))
             , paraName <<<- ParaName "Select" $ emptyParams)
-            (stringEditor (const True) True, paraName <<<- ParaName "Enter" $ emptyParams)
-            "Select from list?"), paraName <<<- ParaName "Name"$ emptyParams)
         (versionRangeEditor,paraName <<<- ParaName "Version" $ emptyParams)
         (paraDirection <<<- ParaDirection Vertical $ para)
         noti
-    let pinj (Dependency pn@(PackageName s) v) = if elem s (map (display . pkgName) packages)
-                                                    then inj (Left s,v)
-                                                    else inj (Right s,v)
+    let pinj (Dependency pn@(PackageName s) v) = inj (s,v)
     let pext = do
         mbp <- ext
         case mbp of
             Nothing -> return Nothing
-            Just (Left "",v) -> return Nothing
-            Just (Left s,v) -> return (Just $ Dependency (PackageName s) v)
-            Just (Right "",v) -> return Nothing
-            Just (Right s,v) -> return (Just $ Dependency (PackageName s) v)
+            Just ("",v) -> return Nothing
+            Just (s,v) -> return (Just $ Dependency (PackageName s) v)
     return (wid,pinj,pext)
 
 dependenciesEditor :: [PackageIdentifier] -> Editor [Dependency]
diff --git a/src/Graphics/UI/Editor/Simple.hs b/src/Graphics/UI/Editor/Simple.hs
--- a/src/Graphics/UI/Editor/Simple.hs
+++ b/src/Graphics/UI/Editor/Simple.hs
@@ -26,6 +26,7 @@
 ,   fontEditor
 ,   colorEditor
 ,   comboSelectionEditor
+,   comboEntryEditor
 ,   staticListEditor
 ,   staticListMultiEditor
 ,   multiselectionEditor
@@ -55,6 +56,7 @@
         genericGUIEvents, activateEvent, Editor)
 import Control.Exception as E (catch, IOException)
 import Control.Monad.IO.Class (MonadIO(..))
+import Control.Applicative ((<$>))
 
 -- ------------------------------------------------------------
 -- * Simple Editors
@@ -379,7 +381,6 @@
 --
 -- | Editor for the selection of some element from a static list of elements in the
 -- | form of a combo box
-
 comboSelectionEditor :: Eq beta => [beta] -> (beta -> String) -> Editor beta
 comboSelectionEditor list showF parameters notifier = do
     coreRef <- newIORef Nothing
@@ -417,6 +418,52 @@
                     case ind of
                         (-1)   -> return Nothing
                         otherwise  -> return (Just (list !! ind)))
+        parameters
+        notifier
+
+-- | Like comboSelectionEditor but allows entry of text not in the list
+comboEntryEditor :: [String] -> Editor String
+comboEntryEditor list parameters notifier = do
+    coreRef <- newIORef Nothing
+    mkEditor
+        (\widget obj -> do
+            core <- readIORef coreRef
+            case core of
+                Nothing  -> do
+                    combo <- comboBoxNewWithEntry
+                    comboBoxSetModelText combo
+                    widgetSetSizeRequest combo 200 (-1)
+                    mapM_ (comboBoxAppendText combo) list
+                    widgetSetName combo (getParameter paraName parameters)
+                    mapM_ (activateEvent (castToWidget combo) notifier Nothing) genericGUIEvents
+                    activateEvent (castToWidget combo) notifier
+                        (Just (\ w h -> do
+                            res     <-  on (castToComboBox w) changed (h >> return ())
+                            return (unsafeCoerce res))) MayHaveChanged
+                    comboBoxSetActive combo 1
+                    containerAdd widget combo
+                    let ind = elemIndex obj list
+                    case ind of
+                        Just i -> comboBoxSetActive combo i
+                        Nothing -> do
+                            mbEntry <- binGetChild combo
+                            case mbEntry of
+                                Nothing -> return ()
+                                Just entry -> entrySetText (castToEntry entry) obj
+                    writeIORef coreRef (Just combo)
+                Just combo -> do
+                    let ind = elemIndex obj list
+                    case ind of
+                        Just i -> comboBoxSetActive combo i
+                        Nothing -> return ())
+        (do core <- readIORef coreRef
+            case core of
+                Nothing -> return Nothing
+                Just combo -> do
+                    mbEntry <- binGetChild combo
+                    case mbEntry of
+                        Nothing -> return Nothing
+                        Just entry -> Just <$> entryGetText (castToEntry entry))
         parameters
         notifier
 
