diff --git a/zero-framework.el b/zero-framework.el
index 1119b316ed50613d29be78e83732b6b06dbf9e77..73d03c6dc0a63f34b7d70c47e623662e0135a1f7 100644
--- a/zero-framework.el
+++ b/zero-framework.el
@@ -35,7 +35,7 @@
 ;; dependencies
 ;;==============
 
-(require 'cl-macs)
+(eval-when-compile (require 'cl-macs))
 (require 's)
 (require 'zero-panel)
 
@@ -140,7 +140,7 @@ If item is not in lst, return nil."
 
 ;; zero-el version
 (defvar zero-version nil "zero-el package version.")
-(setq zero-version "1.2.1")
+(setq zero-version "1.2.2")
 
 ;; FSM state
 (defconst *zero-state-im-off* 'IM-OFF)
diff --git a/zero-pinyin-service.el b/zero-pinyin-service.el
index 0ee66c3ad68105cfbf82f5c2415b5720b9d8f47e..8b1189ea8ed6ed3657753926a83396e0218c5e11 100644
--- a/zero-pinyin-service.el
+++ b/zero-pinyin-service.el
@@ -22,7 +22,6 @@
 ;;================
 
 (require 'dbus)
-(require 'cl-lib)
 
 (defun zero-pinyin-service-error-handler (event error)
   "Handle dbus errors."
@@ -115,7 +114,7 @@ DELETE-CANDIDATE-COMPLETE the async handler function."
 ;; some app test
 ;;================
 
-(require 'cl-macs)
+(eval-when-compile (require 'cl-macs))
 
 (ert-deftest zero-pinyin-service-get-candidates ()
   (cl-destructuring-bind (cs ls &rest rest)
diff --git a/zero-pinyin.el b/zero-pinyin.el
index 36b70cdc4eaa5e6bce33ec7c7d580e0350f051ca..bbea2e305a6ca39ee1487768d018516ce4655a17 100644
--- a/zero-pinyin.el
+++ b/zero-pinyin.el
@@ -30,7 +30,6 @@
 (require 's)
 (require 'zero-framework)
 (require 'zero-pinyin-service)
-(require 'cl-lib)
 
 ;;===============================
 ;; basic data and emacs facility