I posted a question similar to this one before, but it seemed to die out.

Here is my problem: I have two classes using a singleton design pattern, and everything works fine. For our purposes one of the classes is called GameManager. The problem comes when I try to get the static instance of the GameManager from another class, let's say, Camera. I get a lot of parse errors before "*" from g++. Here are the parts of Camera and GameManager that i believe are causing problems:

GameManager.h

Code:
#ifndef AC_GAMEMANAGER_H_
#define AC_GAMEMANAGER_H_

#ifdef _WINDOWS
#include <windows.h>
#endif

#include <GL/gl.h>
#include <GL/glu.h>
#include <math.h>

#include "SDL.h"
#include "types.h"
#include "UIManager.h"
#include "Error.h"
#include "Scene.h"
#include "Keys.h"

class GameManager
{
    static GameManager *_instance;
    UIManager *uimanager;
    Scene scene;
    Keys keys;
    

    ac_int init(ac_void);
    ac_void loopGame(ac_void);
    ac_void renderScene(ac_void);
    
    GameManager() {}
public:
    static GameManager *instance(ac_void);

    ac_void beginGameLoop(ac_void);

    
    /* Get and Set */
     
     /**
     * @return the <code>Scene</code> object
     */   
    Scene getScene(ac_void) const { return scene; }
    
    /**
     * @return the <code>Keys</code> object
     */    
    Keys getKeys(ac_void) { return keys; }
};


#endif /* AC_GAMEMANAGER_H_ */
And the instance function for the GameManager:

Code:
GameManager *GameManager::_instance = 0;

GameManager *GameManager::instance()
{
    if (!_instance)
    {	
        _instance = new GameManager();
        _instance->init();
    }
    
    return _instance; 
}
Here are the problem parts in Camera:

Camera.h

Code:
#ifndef AC_CAMERA_H_
#define AC_CAMERA_H_

#include <GL/gl.h>
#include <GL/glu.h>

#include <stdio.h>
#include "SDL.h"
#include <math.h>

#include "UIManager.h"
#include "GameManager.h"
#include "MainFrame.h"
#include "Keys.h"
#include "Error.h"
#include "version.h"

class Camera {
/* ... */   
    
    GameManager *gameManager;
public:
/* ... */
};
#endif
And the places I use the gameManager in the Camera.cpp file:
Code:
Camera::Camera()
{
/* ... */
    
    gameManager = GameManager::instance();
}

/** And inside a movement function: */
    if(gameManager->getKeys().isActionDown("+forward")) {             

        MoveCamera(speed);              
    }
Here is the compiler output:

Code:
cd '/home/max/programming/c++/gl/angelchronicles/angelchronicles/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k -j1 
compiling angelchronicles.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Camera.h:104: error: syntax error before `*' token
compiling LoadManager.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Camera.h:104: error: syntax error before `*' token
compiling Game.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Camera.h:104: error: syntax error before `*' token
compiling GameManager.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Camera.h:104: error: syntax error before `*' token
compiling Camera.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameSceneRender.h:29: error: ' Camera' is used as a type, but is not defined as a type.
compiling Scene.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:43: error: ' Scene' is used as a type, but is not defined as a type.
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:63: error: parse error before `)' token
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:68: error: ISO C++ forbids defining types within return type
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/GameManager.h:68: error: syntax error before `(' token
compiling GameSceneRender.cpp (g++)
/home/max/programming/c++/gl/angelchronicles/angelchronicles/src/Scene.h:51: error: syntax error before `*' token
*** Exited with status: 2 ***
Note: The problem goes away when I don't use GameManager in Camera.

Thanks alot, and if you need more code just ask. Any suggestions? Thanks!