diff -urp alfresco/alfresco.module alfresco-new/alfresco.module
--- alfresco/alfresco.module	2009-01-14 18:30:16.000000000 +0100
+++ alfresco-new/alfresco.module	2009-01-27 12:03:10.000000000 +0100
@@ -40,6 +40,10 @@ define('ALFRESCO_FILE_DOWNLOADS_TICKET',
 define('ALFRESCO_TYPE_CONTENT', '{http://www.alfresco.org/model/content/1.0}content');
 define('ALFRESCO_TYPE_FOLDER',  '{http://www.alfresco.org/model/content/1.0}folder');
 
+// Regex string for any variety of ISO and DATETIME formats
+// (from date_api.module)
+define('ALFRESCO_DATE_REGEX_LOOSE', '/(\d{4})-?(\d{2})-?(\d{2})([T\s]?(\d{2}):?(\d{2}):?(\d{2})?(\.\d+)?(Z|[\+\-]\d{2}:?\d{2})?)?/');
+
 // Include required files
 if (function_exists('drupal_get_path')) {
   $path = drupal_get_path('module', 'alfresco');
@@ -458,6 +462,47 @@ function alfresco_exists_node($reference
   return FALSE;
 }
 
+/**
+ * Shorten the title when it is too long.
+ */
+function alfresco_truncate_title($title, $max_length = 255) {
+
+  $title = trim($title);
+  if (drupal_strlen($title) > $max_length) {
+    return drupal_substr($title, 0, $max_length - 3) .'...';
+  }
+
+  return $title;
+}
+
+/**
+ * Date conversion helper function (from date_api.module)
+ * No timezone conversion is done in this operation.
+ */
+function alfresco_date_convert($date) {
+
+  if (empty($date) && !$date === 0) {
+    return NULL;
+  }
+
+  if (!preg_match(ALFRESCO_DATE_REGEX_LOOSE, $date, $regs)) {
+    return NULL;
+  }
+
+  $date = array(
+    'year'   => isset($regs[1]) ? intval($regs[1]) : '',
+    'month'  => isset($regs[2]) ? intval($regs[2]) : '',
+    'day'    => isset($regs[3]) ? intval($regs[3]) : '',
+    'hour'   => isset($regs[5]) ? intval($regs[5]) : '',
+    'minute' => isset($regs[6]) ? intval($regs[6]) : '',
+    'second' => isset($regs[7]) ? intval($regs[7]) : '',
+  );
+
+  return sprintf("%04d-%02d-%02d %02d:%02d:%02d",
+    $date['year'], $date['month'],  $date['day'],
+    $date['hour'], $date['minute'], $date['second']);
+}
+
 // ------------------------------------------------------------------
 // =8 Debug helper functions
 // ------------------------------------------------------------------
diff -urp alfresco/alfresco.ws.inc alfresco-new/alfresco.ws.inc
--- alfresco/alfresco.ws.inc	2009-01-14 18:30:16.000000000 +0100
+++ alfresco-new/alfresco.ws.inc	2009-01-27 12:03:10.000000000 +0100
@@ -103,13 +103,13 @@ function alfresco_service_load_propertie
   $properties = array();
 
   try {
-    $properties['cm_name']        = $node->cm_name;
-    $properties['cm_title']       = $node->cm_title;
+    $properties['cm_name']        = alfresco_truncate_title($node->cm_name);
+    $properties['cm_title']       = alfresco_truncate_title($node->cm_title);
     $properties['cm_description'] = $node->cm_description;
     $properties['cm_author']      = $node->cm_author;
-    $properties['cm_created']     = $node->cm_created;
+    $properties['cm_created']     = alfresco_date_convert($node->cm_created);
     $properties['cm_creator']     = $node->cm_creator;
-    $properties['cm_modified']    = $node->cm_modified;
+    $properties['cm_modified']    = alfresco_date_convert($node->cm_modified);
     $properties['cm_modifier']    = $node->cm_modifier;
     $properties['cm_author']      = $node->cm_author;
 
