--- smpp_pdu.c	2003-05-15 18:35:52 +0400
+++ /home/yuryx/tools/gateway/gw/smsc/smpp_pdu.c	2003-09-17 15:56:30 +0400
@@ -13,7 +13,7 @@
 #define MAX_SMPP_PDU_LEN    (7424) 
 
 
-static long decode_integer(Octstr *os, long pos, int octets)
+long decode_integer(Octstr *os, long pos, int octets)
 {
     unsigned long u;
     int i;
@@ -29,7 +29,7 @@
 }
 
 
-static void append_encoded_integer(Octstr *os, unsigned long u, long octets)
+void append_encoded_integer(Octstr *os, unsigned long u, long octets)
 {
     long i;
 
@@ -151,11 +151,11 @@
             if (opt_val != NULL) {                                                      \
                 long opt_len = octstr_len(opt_val);                                     \
                 debug("smpp_pdu", 0, "Packing optional parameter "                      \
-                                     "(tag = %d, val = %s, len = %ld)",                 \
+                                     "(tag = 0x%04lx, val = 0x%04lx, len = %ld)",       \
                       tag_id, octstr_get_cstr(opt_val), opt_len);                       \
                 gw_assert(min_len == -1 || (min_len <= opt_len && opt_len <= max_len)); \
-                octstr_append(os, opt_tag);                                             \
-                octstr_append_data(os, (char*) &opt_len, 2);                            \
+                append_encoded_integer(os,tag_id,2);                                    \
+		append_encoded_integer(os,opt_len,2);                                   \
                 octstr_append(os, opt_val);                                             \
             }                                                                           \
             octstr_destroy(opt_tag);                                                    \
