Index: trunk/psLib/src/collections/psScalar.c
===================================================================
--- trunk/psLib/src/collections/psScalar.c	(revision 1453)
+++ trunk/psLib/src/collections/psScalar.c	(revision 1648)
@@ -9,6 +9,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-08-10 19:27:47 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-08-27 23:34:05 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -130,4 +130,5 @@
 psScalar* psScalarCopy(psScalar *scalar)
 {
+    psElemType dataType;
     psScalar *newScalar = NULL;
 
@@ -136,7 +137,44 @@
     }
 
-    newScalar =  psScalarAlloc(scalar->data.C64, scalar->type.type);
-    if (newScalar == NULL) {
-        psAbort(__func__, " : Line %d - Failed to allocate memory", __LINE__);
+    dataType = scalar->type.type;
+    switch (dataType) {
+    case PS_TYPE_S8:
+        newScalar =  psScalarAlloc(scalar->data.S8, dataType);
+        break;
+    case PS_TYPE_U8:
+        newScalar =  psScalarAlloc(scalar->data.U8, dataType);
+        break;
+    case PS_TYPE_S16:
+        newScalar =  psScalarAlloc(scalar->data.S16, dataType);
+        break;
+    case PS_TYPE_U16:
+        newScalar =  psScalarAlloc(scalar->data.U16, dataType);
+        break;
+    case PS_TYPE_S32:
+        newScalar =  psScalarAlloc(scalar->data.S32, dataType);
+        break;
+    case PS_TYPE_U32:
+        newScalar =  psScalarAlloc(scalar->data.U32, dataType);
+        break;
+    case PS_TYPE_S64:
+        newScalar =  psScalarAlloc(scalar->data.S64, dataType);
+        break;
+    case PS_TYPE_U64:
+        newScalar =  psScalarAlloc(scalar->data.U64, dataType);
+        break;
+    case PS_TYPE_F32:
+        newScalar =  psScalarAlloc(scalar->data.F32, dataType);
+        break;
+    case PS_TYPE_F64:
+        newScalar =  psScalarAlloc(scalar->data.F64, dataType);
+        break;
+    case PS_TYPE_C32:
+        newScalar =  psScalarAlloc(scalar->data.C32, dataType);
+        break;
+    case PS_TYPE_C64:
+        newScalar =  psScalarAlloc(scalar->data.C64, dataType);
+        break;
+    default:
+        psError(__func__, ": Line %d - Invalid PS_TYPE: %d", __LINE__, dataType);
     }
 
