diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,5 @@
+2019-11-22 Ivan Perez <ivan.perez@nianet.org>
+        * Version bump (3.1).
+        * Remove ExternFun (#6).
+        * Fix bug in code generation for local expression (#15).
+        * Implement code generation for labels (trivially) (#14).
diff --git a/copilot-c99.cabal b/copilot-c99.cabal
--- a/copilot-c99.cabal
+++ b/copilot-c99.cabal
@@ -1,6 +1,6 @@
 cabal-version             : >= 1.10
 name                      : copilot-c99
-version                   : 3.0.2
+version                   : 3.1
 synopsis                  : A compiler for Copilot targeting C99.
 description               :
   This package is a back-end from Copilot to C.
@@ -21,6 +21,7 @@
 category                  : Language, Embedded
 build-type                : Simple
 extra-source-files        : README.md
+                          , CHANGELOG
 
 author                    : Frank Dedden
                           , Alwyn Goodloe
@@ -40,7 +41,7 @@
                           , mtl                 >= 2.2 && < 2.3
                           , pretty              >= 1.1 && < 1.2
 
-                          , copilot-core        >= 3.0.1 && < 3.1
+                          , copilot-core        >= 3.1   && < 3.2
                           , language-c99        >= 0.1.1 && < 0.2
                           , language-c99-util   >= 0.1.1 && < 0.2
                           , language-c99-simple >= 0.1.1 && < 0.2
diff --git a/src/Copilot/Compile/C99/CodeGen.hs b/src/Copilot/Compile/C99/CodeGen.hs
--- a/src/Copilot/Compile/C99/CodeGen.hs
+++ b/src/Copilot/Compile/C99/CodeGen.hs
@@ -137,6 +137,7 @@
   Op1 _ e1              -> exprtypes e1
   Op2 _ e1 e2           -> exprtypes e1 `union` exprtypes e2
   Op3 _ e1 e2 e3        -> exprtypes e1 `union` exprtypes e2 `union` exprtypes e3
+  Label ty _ _          -> typetypes ty
 
 -- | List all types of an type, returns items uniquely.
 typetypes :: Typeable a => Type a -> [UType]
diff --git a/src/Copilot/Compile/C99/External.hs b/src/Copilot/Compile/C99/External.hs
--- a/src/Copilot/Compile/C99/External.hs
+++ b/src/Copilot/Compile/C99/External.hs
@@ -42,4 +42,5 @@
     Op1 _ e             -> rec e
     Op2 _ e1 e2         -> rec e1 `extunion` rec e2
     Op3 _ e1 e2 e3      -> rec e1 `extunion` rec e2 `extunion` rec e3
+    Label _ _ e         -> rec e
     _                   -> []
diff --git a/src/Copilot/Compile/C99/Translate.hs b/src/Copilot/Compile/C99/Translate.hs
--- a/src/Copilot/Compile/C99/Translate.hs
+++ b/src/Copilot/Compile/C99/Translate.hs
@@ -15,12 +15,12 @@
 
 transexpr (Local ty1 _ name e1 e2) = do
   e1' <- transexpr e1
-  e2' <- transexpr e2
   let cty1 = transtype ty1
       init = Just $ C.InitExpr e1'
   statetell ([C.VarDecln Nothing cty1 name init], [])
-  return $ e2'
 
+  transexpr e2
+
 transexpr (Var _ n) = return $ C.Ident n
 
 transexpr (Drop _ amount sid) = do
@@ -33,9 +33,7 @@
 
 transexpr (ExternVar _ name _) = return $ C.Ident (excpyname name)
 
-transexpr (ExternFun _ _ _ _ _) = undefined
-
-transexpr (Label _ _ _) = undefined
+transexpr (Label _ _ e) = transexpr e -- ignore label
 
 transexpr (Op1 op e) = do
   e' <- transexpr e
