diff --git a/src/modules/_Crypto/Makefile b/src/modules/_Crypto/Makefile
index ab8dc9adc2bda48579cad8e55cfd6e0d512d6a35..1618c29cb164830c2e345fd90af48f7bf8b87323 100644
--- a/src/modules/_Crypto/Makefile
+++ b/src/modules/_Crypto/Makefile
@@ -22,7 +22,7 @@ CFLAGS=-Wall -O -shared -fpic $(IFLAGS) $(CPPFLAGS) -pedantic -Wall
 LDFLAGS=-shared -fpic -R$(SSLROOT)/lib -L$(SSLROOT)/lib
 LOADLIBES=-lcrypto -lssl
 
-OBJS=crypto.o md5.o md2.o idea.o des.o invert.o
+OBJS=crypto.o md5.o md2.o idea.o des.o invert.o cbc.o
 
 # The actual rules
 
diff --git a/src/modules/_Crypto/precompiled_crypto.h b/src/modules/_Crypto/precompiled_crypto.h
index a250a7d302a30569768d6910e8964d39c1625172..1a9138680f838a47760e7d3601ee269344ff3171 100644
--- a/src/modules/_Crypto/precompiled_crypto.h
+++ b/src/modules/_Crypto/precompiled_crypto.h
@@ -32,9 +32,8 @@
 struct pike_crypto {
   struct object *object;
   INT32 block_size;
-  INT32 overflow_len;
-  unsigned char *iv;
-  unsigned char *overflow;
+  INT32 backlog_len;
+  unsigned char *backlog;
 };
 
 struct pike_md2 {
@@ -50,8 +49,7 @@ struct pike_md5 {
 };
 
 struct pike_idea {
-  unsigned char key[8];
-  IDEA_KEY_SCHEDULE e_key, d_key;
+  IDEA_KEY_SCHEDULE key;
 };
 
 struct pike_des {
@@ -63,6 +61,13 @@ struct pike_des {
   unsigned overflow_len;
 };
 
+struct pike_cbc {
+  struct object *object;
+  unsigned char *iv;
+  INT32 block_size;
+  INT32 mode;
+};
+
 /*
  * Defines
  */
@@ -75,6 +80,8 @@ struct pike_des {
 #define PIKE_IDEA	((struct pike_idea *)(fp->current_storage))
 #define PIKE_DES	((struct pike_des *)(fp->current_storage))
 
+#define PIKE_CBC	((struct pike_cbc *)(fp->current_storage))
+
 /*
  * Globals
  */
@@ -83,6 +90,8 @@ struct pike_des {
  * Prototypes
  */
 
+void assert_is_crypto_module(struct object *);
+
 /*
  * Module linkage
  */
@@ -112,4 +121,9 @@ void init_invert_efuns(void);
 void init_invert_programs(void);
 void exit_invert(void);
 
+/* /precompiled/crypto/cbc */
+void init_cbc_efuns(void);
+void init_cbc_programs(void);
+void exit_cbc(void);
+
 #endif /* PRECOMPILED_X_H */