updated for version 7.4.264
Problem:    Can't define a function starting with "g:".  Can't assign a
            funcref to a buffer-local variable.
Solution:   Skip "g:" at the start of a function name.  Don't check for colons
            when assigning to a variable.
diff --git a/src/testdir/test_eval.in b/src/testdir/test_eval.in
index cb94201..4919694 100644
--- a/src/testdir/test_eval.in
+++ b/src/testdir/test_eval.in
@@ -144,7 +144,7 @@
 :delcommand AR
 :call garbagecollect(1)
 :"
-:" function name includes a colon
+:" function name not starting with capital
 :try
 :func! g:test()
 :echo "test"
@@ -153,6 +153,15 @@
 :$put =v:exception
 :endtry
 :"
+:" function name includes a colon
+:try
+:func! b:test()
+:echo "test"
+:endfunc
+:catch
+:$put =v:exception
+:endtry
+:"
 :" function name folowed by #
 :try
 :func! test2() "#
@@ -162,6 +171,13 @@
 :$put =v:exception
 :endtry
 :"
+:" function name starting with/without "g:", buffer-local funcref.
+:function! g:Foo()
+:  $put ='called Foo()'
+:endfunction
+:let b:my_func = function('Foo')
+:call b:my_func()
+:"
 :/^start:/+1,$wq! test.out
 :" vim: et ts=4 isk-=\: fmr=???,???
 :call getchar()